Vefþjónn á CentOS 8 með php7, node.js og redis

Formáli

Það eru 2 dagar síðan ný útgáfa af CentOS stýrikerfinu kom út, nefnilega CentOS 8. Og enn sem komið er eru allmargar greinar á netinu um hvernig hlutirnir eru gerðir í því, svo ég ákvað að fylla í þetta skarð. Þar að auki mun ég segja þér ekki aðeins um hvernig á að setja upp þetta par af forritum, heldur einnig frá því hvernig ég sé almennt fyrir mér að setja upp Linux í sýndarumhverfi í nútíma heimi fyrir dæmigerð verkefni, þar með talið að skipta diskum og svo framvegis.

En í upphafi vil ég tala stuttlega um hvers vegna það er þess virði að skipta yfir í þessa útgáfu frá öllum fyrri, og það eru tvær ástæður fyrir því:

  1. php7! Í fyrri útgáfu CentOS var „rétttrúnaðar“ php5.4 sett upp...

    Allt í lagi, til að vera aðeins alvarlegri, margir pakkar hoppaðu í gegnum nokkrar útgáfur í massavís. Við (aðdáendur redhat-eins stýrikerfis) erum loksins komin inn í, ef ekki inn í framtíðina, þá að minnsta kosti inn í nútímann. Og Ubuntu stuðningsmenn munu ekki lengur hlæja að okkur og benda fingri á okkur, ja... að minnsta kosti um stund ;).

  2. Umskipti frá nammi yfir í dnf. Helsti munurinn er sá að nú er það opinberlega stutt að vinna með nokkrar útgáfur af pakka í einu. Rétt í átta, mér hefur aldrei fundist þetta gagnlegt, en það hljómar efnilegt.

Búðu til sýndarvél

Það eru mismunandi yfirsýnarar og ég hef ekkert markmið að sníða lesandann að ákveðnum, ég skal segja þér frá almennu meginreglunum.

minni

Fyrst... Til að setja upp CentOS kerfi sem byrjar örugglega frá 7, og að mínu mati var þetta líka raunin í 6 ("en þetta er ekki víst"), þú þarft lágmarki 2 GB vinnsluminni. Þess vegna ráðlegg ég þér að gefa það mikið út fyrst.

En ef eitthvað er, eftir uppsetningu er hægt að minnka minnisstærðina. Á 1 GB virkar bert kerfið nokkuð vel, ég athugaði.

diskur

Fyrir venjulega uppsetningu ættir þú að búa til sýndardisk með 20-30 GB afkastagetu. Þetta er nóg fyrir kerfið. Og annar diskur fyrir gögn. Það er hægt að bæta því við bæði á því stigi að búa til sýndarvél og eftir það. Ég bæti því venjulega við seinna.

Örgjörvi

Á einum kjarna hægir ekki á beru kerfinu. Og þar sem tilföng eru frjálslega stigstærð, þá sé ég engan tilgang í að gefa meira á uppsetningarstigi (nema þú þekkir kröfurnar fullkomlega og ert of latur til að fara inn í stillingarforritið aftur)

Venjulega er hægt að láta restina vera sjálfgefið.

Raunveruleg uppsetning

Svo... ræsum uppsetningarforritið... Persónulega hef ég verið að setja upp slíka þjónustu bara í formi sýndarvéla í langan tíma, svo ég lýsi ekki alls kyns dreifingarskrám á flash-drifi - ég festi bara ISO sem geisladisk í uppáhalds hypervisornum mínum, hlaðið niður og farið.

Grunnuppsetningin er nokkuð dæmigerð, ég mun aðeins dvelja við nokkur atriði.

Heimildaval

Frá útgáfu áttundu útgáfunnar hefur spegillinn frá Yandex legið í dögum saman. Jæja, það er, það hækkar reglulega og byrjar aftur að sýna villu. Ég er viss um að það er vegna of mikils álags á þjónustuna. Þess vegna, til að gefa til kynna upprunann, varð ég persónulega að fara, í stað þess að slá inn venjulega heimilisfangið hér, veldu spegilinn sem mér líkar þar og sláðu inn heimilisfangið handvirkt í uppsetningargluggann. Það er mikilvægt að muna hér að þú þarft að tilgreina slóðina að möppunni þar sem skrárinn er staðsettur endurupplýsingar. Til dæmis, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Disk skipting

Þessi spurning er frekar trúarleg að mínu mati. Hver stjórnandi hefur sína afstöðu í þessu máli. En ég mun samt segja mína skoðun á málinu.

Já, í grundvallaratriðum geturðu úthlutað öllu plássinu í rótina og það mun virka, oftast jafnvel nokkuð vel. Af hverju þá að girða garð með mismunandi köflum? — Að mínu mati eru tvær meginástæður fyrir þessu: kvótar og flytjanleiki.

Til dæmis, ef eitthvað fer úrskeiðis og villur koma upp á aðalgagnasneiðinni, viltu samt geta ræst kerfið og framkvæmt endurlífgunarráðstafanir. Þess vegna úthluta ég persónulega sérstakt skipting fyrir /boot. Það er kjarni og ræsiforrit. Venjulega duga 500 megabæti en í einstaka tilfellum gæti þurft meira og í ljósi þess að við erum nú þegar vön að mæla pláss í terabætum úthluta ég 2GB fyrir þennan hluta. Og það sem skiptir máli hér er að það er ekki hægt að gera lvm.

Næst kemur rót kerfisins. Fyrir venjulega uppsetningu hef ég aldrei þurft meira en 4 GB á hvert kerfi, en við áætlaða atburði nota ég oft /tmp möppuna til að pakka dreifingum upp og ég sé engan tilgang í að tileinka henni aðskildri skiptingu - í nútíma kerfum það er hreinsað sjálfkrafa, svo það er ekki fyllt. Svo ég úthluta 8GB fyrir rótina.

Skipta... Í stórum dráttum er lítið hagnýtt af því. Ef þú byrjar að nota swap á þjóninum þínum, í dag í hinum raunverulega heimi þýðir þetta aðeins að þjónninn þarf að bæta við meira vinnsluminni. Annars eru vandamál með frammistöðu tryggð (eða eitthvað forrit „lekur“ minni). Þess vegna er þessi hluti aðeins nauðsynlegur til greiningar. Þess vegna er 2 GB frábær tala. Já, óháð því hversu mikið minni er á þjóninum. Já, ég las allar þessar greinar þar sem það er skrifað um hlutfall minnismagns og skiptimagns... IMHO, þær eru gamaldags. Á 10 ára æfingu hef ég aldrei þurft á þessu að halda. Fyrir 15 árum síðan notaði ég þá, já.

IMHO, hver og einn getur ákveðið fyrir sig hvort hann úthlutar /heimi í sér skipting. Ef einhver á þjóninum mun virkan nota þessa möppu er betra að úthluta henni. Ef enginn, það er engin þörf.

Næst, /var. Það ætti að mínu mati klárlega að draga fram. Til að byrja með geturðu takmarkað þig við 4 GB og séð hvernig það gengur. Og já, með "hvernig það fer" meina ég það

  1. Í fyrsta lagi geturðu alltaf tengt annan disk í /var undirmöppunni (sem ég mun sýna síðar með dæmi)
  2. Í öðru lagi höfum við lvm - þú getur alltaf bætt því við. Og þú þarft venjulega að bæta því við þegar of margir stokkar byrja að streyma þar inn. En ég hef aldrei getað spáð fyrir um þessa tölu fyrirfram, svo ég byrja með 2 GB og horfi svo.

Óúthlutað pláss verður áfram laust í hljóðstyrkshópnum og er alltaf hægt að nota það síðar.

LVM

Allt Það er skynsamlegt að búa til önnur skipting en /boot í LVM. Já, þar á meðal skipti. Já, samkvæmt öllum ráðleggingum ætti skipti að vera í upphafi disksins, en í tilfelli LVM er ekki hægt að ákvarða staðsetningu hans í grundvallaratriðum. En eins og ég skrifaði hér að ofan, kerfið þitt ætti ekki nota swap yfirleitt. Þess vegna skiptir ekki máli hvar hann er. Jæja, við lifum ekki '95, satt að segja!

Ennfremur, í LVM eru nokkrir grunneiningar sem þú þarft til að geta lifað með:

  • líkamlegt rúmmál
  • bindi hópur
  • rökrétt bindi

Líkamlegt bindi er sameinað í hópa og hvert líkamlegt bindi getur aðeins verið í einum hópi og hópur getur verið staðsettur á nokkrum líkamlegum bindum í einu.
Og rökrétt bindi eru hvert í einum hópi.

En... Fjandinn, það er 21. öldin aftur. Og netþjónarnir eru sýndar. Það þýðir ekkert að beita þeim sömu aðferðum og var beitt á líkamlega. Og fyrir sýndarmyndir er mikilvægt að hafa gögn aðskilin frá kerfinu! Þetta er mjög mikilvægt, sérstaklega fyrir getu til að skipta fljótt yfir gögn yfir í aðra sýndarvél (til dæmis þegar skipt er yfir í nýtt stýrikerfi) og almennt fyrir alls kyns gagnlegt dót (aðskilin öryggisafrit með skiptingum með til dæmis hypervisor verkfærum) . Þess vegna er einn magnhópur notaður fyrir kerfið og endilega annar notaður fyrir gögn! Þessi rökrétta skipting hjálpar mikið í lífinu!

Ef þú bjóst aðeins til einn sýndarharðan disk þegar þú bjóst til sýndarvél, er þetta þar sem uppsetningin endar. Og ef það eru tveir, þá skaltu bara ekki merkja þann seinni ennþá.

Við skulum hefja uppsetninguna.

Eftir uppsetningu

Svo, nýuppsetta kerfið ræsti loksins. Það fyrsta sem þú þarft að athuga er internetið.

ping ya.ru

Er til svar? - Frábært, ýttu á Ctrl-C.
Ef ekki, farðu að setja upp net, það er ekkert líf án þessa, en það er ekki það sem greinin mín fjallar um.

Nú ef við erum ekki enn undir rót, farðu undir rót, því vélritun slíkt fjöldi skipana með sudo braut mig persónulega (og mega ofsóknaræðisstjórarnir fyrirgefa mér):

sudo -i

Nú er það fyrsta sem við gerum er að skrifa

dnf -y update

Og ef þú ert að lesa þessa grein árið 2019, mun líklega ekkert gerast, en það var þess virði að reyna.

Nú skulum við stilla diskinn sem eftir er

Segjum að skiptingin með kerfinu hafi verið xvda, þá verður gagnadiskurinn xvdb. Allt í lagi.

Flest ráð byrja á „Keyra fdisk og búa til skipting...“

Svo er þetta rangt!

Ég segi það aftur vegna þess að það er svo mikilvægt! Í þessu tilfelli, að vinna með LVM, sem tekur einn heilan sýndardisk, er skaðlegt að búa til skipting á honum! Hvert orð í þessari setningu er mikilvægt. Ef við vinnum án LVM þurfum við að gera það. Ef við erum með kerfi og gögn á disknum þurfum við það. Ef við þurfum af einhverjum ástæðum að skilja helming disksins eftir tóman, þá ættum við að gera það líka. En venjulega eru allar þessar forsendur eingöngu fræðilegar. Vegna þess að ef við ákveðum að bæta plássi við núverandi skipting, þá er auðveldasta leiðin til að gera það með þessari uppsetningu. Og auðveld stjórnun vegur svo þyngra en margt annað að við stefnum markvisst í átt að þessari uppsetningu.

Og þægindin eru að ef þú vilt stækka gagnasneiðina, bætirðu einfaldlega rýmum við sýndarsneiðina, stækkar síðan hópinn með vgextend og það er það! Í mjög sjaldgæfum tilfellum gæti eitthvað annað verið krafist, en að minnsta kosti þarftu ekki að auka rökrétt rúmmál í upphafi, sem er nú þegar gott. Annars, til að stækka einmitt þetta magn, mæla þeir með því að eyða því sem fyrir er fyrst og búa síðan til nýjan ofan á... Sem lítur ekki mjög vel út og er ekki hægt að gera það í beinni, en stækkun í samræmi við atburðarásina sem ég gaf til kynna getur verið framkvæmt „á flugi“ án þess þó að taka skilrúmið af.

Þannig að við búum til líkamlegt bindi, síðan bindihóp sem inniheldur það og síðan skipting fyrir netþjóninn okkar:

pvcreate /dev/xvdb
vgcreate data /dev/xvdb
lvcreate -n www -L40G data
mke2fs -t ext4 /dev/mapper/data-www

Hér, í stað stórs „L“ (og stærðina í GB), geturðu tilgreint lítinn, og síðan í stað algildrar stærðar, tilgreint afstæða, til dæmis til að nota helming þess lausa pláss í hljóðstyrkshóp, þú þarft að tilgreina „-l +50%FREE“

Og síðasta skipunin forsníðar skiptinguna í ext4 skráarkerfinu (sem hingað til, samkvæmt minni reynslu, sýnir mestan stöðugleika ef allt brotnar, svo ég vil frekar það).

Nú festum við skiptinguna á réttan stað. Til að gera þetta skaltu bæta réttri línu við /etc/fstab:

/dev/mapper/data-www    /var/www                ext4    defaults        1 2

Og við hringjum

mount /var/www

Ef villa kemur upp skaltu hringja í vekjaraklukkuna! Vegna þess að þetta þýðir að við höfum villu í /etc/fstab. Og að við næstu endurræsingu munum við eiga í mjög stórum vandamálum. Kerfið ræsir kannski ekki neitt, sem er oft mjög leiðinlegt fyrir skýjaþjónustu. Þess vegna er nauðsynlegt að annað hvort bráðlega leiðrétta síðustu línu sem bætt var við eða eyða henni alveg! Þess vegna skrifuðum við ekki mount skipunina handvirkt - þá hefðum við ekki fengið svona frábært tækifæri til að athuga stillinguna strax.

Nú setjum við í raun upp allt sem við vildum og opnum gáttirnar fyrir vefinn:

dnf groupinstall "Development Tools"
dnf -y install httpd @nodejs @redis php
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent

Ef þú vilt geturðu líka sett gagnagrunn hérna, en persónulega reyni ég að halda honum aðskildum frá vefþjóninum. Þó að það sé fljótlegra að halda henni nálægt, já. Hraði sýndarnets millistykki er venjulega í kringum gígabit og þegar unnið er á sömu vélinni koma símtöl nánast samstundis. En það er minna öruggt. Hvað er mikilvægara fyrir hvern?

Nú bætum við færibreytunni við stillingarskrána (við búum til nýja, nútíma hugmyndafræði CentOS er svona)

echo "vm.overcommit_memory = 1"> /etc/sysctl.d/98-sysctl.conf

Við endurræsum netþjóninn.
Í athugasemdum var ég skammaður fyrir að ráðleggja mér að slökkva á SeLinux, svo ég mun leiðrétta mig og skrifa um það að eftir þetta þurfið þið að muna að stilla SeLinux.
Reyndar, hagnaður! 🙂

Heimild: www.habr.com

Bæta við athugasemd