CentOS 8 tīmekļa servers ar php7, node.js un redis

Ievads

Pavisam nesen ir iznākusi jaunā operētājsistēmas CentOS versija, proti, CentOS 8. Un pagaidām internetā ir diezgan maz rakstu par to, kā tajā kaut ko darīt, tāpēc es nolēmu aizpildīt šo robu. Esmu iecerējis ne tikai pastāstīt, kā uzstādīt šo programmu pāri, bet arī izklāstīt, kā es vispār redzu Linux uzstādīšanu virtuālajā vidē mūsdienu pasaulē tipiskām lietām, tostarp disku sadalīšanu un citu.

Tomēr vispirms gribu īsi pastāstīt par divām galvenajām iemeslam, kāpēc vajadzētu pāriet uz šo versiju no visām iepriekšējām:

  1. php7! Iepriekšējā CentOS versijā tika uzstādīts "pareizais" php5.4...

    Labi, ja runājam nedaudz nopietnāk, tad ļoti daudz pakotņu ir pakāpušās pāri vairākiem versiju līmeņiem. Mēs (redhat- līdzīgu OS atbalstītāji) beidzot esam iegājuši, ja ne nākotnē, tad vismaz tagadnē. Un Ubuntu atbalstītāji vairs nesmejas par mums un nerāda ar pirkstiem, nu... vismaz uz kādu laiku ;).

  2. Pāreja no yum uz dnf. Galvenā atšķirība ir tā, ka tagad oficiāli tiek atbalstīta darbība ar vairākiem pakotņu versiju izdevumiem. Tieši astotajā versijā man tas vēl nav bijis nepieciešams, bet izklausās solīgi.

Virtuālas mašīnas izveide

Ir dažādi hipervizori, un mans mērķis nav pielāgot lasītāju konkrētajam, bet pastāstīt par vispārējiem principiem.

Atmiņa

Pirmais... Lai uzstādītu sistēmu CentOS, sākot no 7. versijas, uzskatu, ka arī 6. versijā tas tā bija "bet tas nav tieši", ir nepieciešams minimāli 2 GB operatīvās atmiņas. Tāpēc iesaku sākumā izsniegt tieši tik.

Bet ja nu kas, pēc uzstādīšanas atmiņas apjomu var samazināt. Uz 1 GB tīrā sistēma darbojas pilnīgi normāli, esmu pārbaudījis.

Disks

Normālai uzstādīšanai ir jāizveido virtuālais disks ar apjomu 20-30 GB. Tam pietiks sistēmai. Un otrs disks datiem. To var pievienot gan virtuālās mašīnas izveides posmā, gan vēlāk. Es parasti pievienoju vēlāk.

Procesors

Uz viena kodola tīrā sistēma nepārkarst. Un, ņemot vērā, ka resursi brīvi var tikt paplašināti, uzstādīšanas laikā piešķirt vairāk nav jēgas (izņemot, ja jūs precīzi zināt prasības un slinkums vēlreiz iet uz konfiguratoru)

Pārējais parasti var palikt pēc noklusējuma.

Faktiski uzstādīšana

Tātad... Sākam instalētāju... Es personīgi jau sen instalēju šādus pakalpojumus tikai kā virtuālās mašīnas, tāpēc par visām tur izplatīšanas ieraksta uz USB aprakstīšanu neizteikšos – vienkārši montēju ISO kā CD disku savā iecienītajā hipervizorā, uzsākam ielādēšanu un darāmies.

Pamatinstalācija norit diezgan tipiski, apstāšos tikai pie dažiem aspektiem.

Avota izvēle

Kopš astotās versijas izlaišanas mirror no Yandex jau kādu dienu nedarbojas. Nu, tas periodiski atkal paceļas, bet pēc tam atkal sāk rādīt kļūdu. Esmu drošs, ka tā ir rezultāts pārlieku lielai noslodzei uz pakalpojumu. Tāpēc avota norādīšanai man personīgi nācās nevis ievadīt ierasto adresi, bet šeit, izvēlēties tur pieejamo mirror, kas man patīk, un manuāli ievadīt adresi instalētāja logā. Šeit ir svarīgi atcerēties, ka jānorāda ceļš uz to mapi, kurā atrodas katalogs repodata. Piemēram, mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Disku sadalījums

Šis jautājums manā skatījumā ir drīzāk reliģisks. Katram administratoram ir sava nostāja šajā jautājumā. Bet tomēr es dalīšos ar savu skatījumu uz to.

Jā, principā, var visu vietu piešķirt saknei un tas darbosies, bieži pat diezgan labi. Kāpēc tad veidot pamatus ar dažādiem nodalījumiem? — Galvenie iemesli, manuprāt, ir 2: kvotas un pārnēsājamo iespēju nodrošināšana.

Piemēram, ja kaut kas notiek ne tā un galvenajā datu nodalījumā parādās kļūdas, es vēlos, lai man joprojām būtu iespēja ielādēt sistēmu un veikt rehabilitācijas pasākumus. Tāpēc es personīgi piešķiru atsevišķu nodalījumu uz /boot. Tur atrodas kodols un ielādētājs. Parasti pietiek ar 500 MB, bet reti var būt nepieciešams vairāk, bet ņemot vērā, ka esam pieraduši mērīt vietu terabaitos, es piešķiru šim nodalījumam 2 GB. Un šeit ir svarīgi, ka to nevar izveidot kā lvm.

Tālāk seko sistēmas sakne. Normālai instalēšanai man nekad nav nepieciešams vairāk par 4 GB tieši sistēmai, bet plānojot es bieži izmantoju katalogu /tmp izplatījumu izsaiņošanai, un nav jēgas to piešķirt atsevišķam nodalījumam — mūsdienu sistēmās tas automātiski tiek attīrīts, tāpēc nepiepildās. Tādējādi saknei es piešķiru 8 GB.

Swap... Galvenokārt no tā ir maz praktiskas jēgas. Ja jūsu serveris sāk lietot swap, mūsdienu pasaulē tas nozīmē tikai to, ka serverim jāpapildina RAM. Pretējā gadījumā ātrdarbības problēmas ir garantētas (vai kādai programmai "noplūst" atmiņa). Tādēļ šī sadaļa ir vajadzīga tikai diagnostikai. Tāpēc 2 GB ir lieliska skaitļa vērtība. Jā, neatkarīgi no tā, cik daudz atmiņas ir serverī. Jā, es esmu lasījis visus tos rakstus, kuros runāts par atmiņas apjoma attiecību pret swap apjomu… IMHO, tie ir novecojuši. Pēdējo 10 gadu laikā man tas nekad nav bijis nepieciešams. Pirms 15 gadiem es tos izmantoju, jā.

Vai izdalīt /home atsevišķā sadaļā IMHO katrs var izlemt pats. Ja kāds aktīvi izmantos šo katalogu serverī, labāk ir izdalīt. Ja neviens — nav jēgas.

Tālāk, /var. Manuprāt, to jāizdala obligāti. Sākumā var ierobežot līdz 4 GB, un pēc tam, kā būs. Un jā, zem "kā būs" es domāju, ka

  1. Pirmkārt, vienmēr var piestiprināt citu disku apakškatalogā /var (ko es vēlāk parādīšu, izmantojot piemēru)
  2. Otrkārt, mums jau ir lvm — vienmēr var pievienot. Un parasti jāpievieno tad, kad pārāk daudz žurnālu sāk tur krāties. Bet man nekad nav izdevies iepriekš prognozēt šo skaitli, tāpēc es sāku ar 2 GB un pēc tam skatos.

Nepārdalītā vieta paliks brīva apjoma grupā, to vēlāk vienmēr var izmantot.

LVM

Viss sadaļas, izņemot /boot, ir jēga izveidot LVM. Jā, iekļaujot swap. Jā, swap pēc visiem ieteikumiem jābūt diska sākumā, bet gadījumā ar LVM tā atrašanās vietu principā nevar noteikt. Bet kā es jau iepriekš minēju, jūsu sistēmai nedrīkst izmantot swap vispār. Tāpēc nav nozīmes, kur tas atrodas. Nu, ne 95. gadā mēs dzīvojam, patiesībā!

Tālāk, LVM ir vairākas pamata vienības, ar kurām jāspēj dzīvot:

  • fiziskais apjoms
  • apjoma grupa
  • loģiskais apjoms

Fiziskie apjomi tiek apvienoti grupās, un katrs fiziskais apjoms var būt tikai vienā grupā, bet grupa var atrasties uz vairākiem fiziskiem apjomiem.
Savukārt loģiskie apjomi atrodas katrs vienā grupā.

Taču... Mums, jāatzīst, ir 21. gadsimts. Un ir virtuālās serveris. Nav jēgas pielietot tos pašus mehānismus, kas tika izmantoti fiziskajiem serveriem. Un virtuālajiem ir svarīgi saglabāt datus atsevišķi no sistēmas! Tas ir ļoti svarīgi, it īpaši iespējas ātri pārvietot datus uz citu virtuālo mašīnu (piemēram, pārejot uz jaunu operētājsistēmu) un visādām citām lietderīgām funkcijām (atskaitītas dublējumus ar hipervizora palīdzību). Tāpēc viena volume group tiek izmantota sistēmai un obligāti cita tiek izmantota datiem! Šī loģiskā sadalīšana būtiski atvieglo ikdienu!

Ja jūs veidojāt virtuālo mašīnu, izveidojot tikai vienu virtuālo cieto disku, tad šī konfigurācija ir pabeigta. Bet, ja ir divi, tad vienkārši pagaidiet, nesadaliet otro disk.

Sāksim instalāciju.

Pēcinstalācija

Labi, beidzot ir ielādēta svaigi instalētā sistēma. Pirmais, kas jāpārbauda, ir internets.

ping ya.ru

Ir atbilde? — Lieliski, nospiežam Ctrl-C.
Ja nav — ejiet konfigurēt tīklu, bez tā dzīvot nav iespējams, bet mana raksts nav par to.

Tagad, ja mēs neesam root lietotājā, piesakāmies kā root, jo rakstīt tādu komandu skaitu ar sudo personīgi man ir apnicis (un lai piedod mani paranoiskie administratoriem):

sudo -i

Tagad vispirms ierakstām

dnf -y update

Un, ja jūs lasāt šo rakstu 2019. gadā, visdrīzāk nekas nenotiks, bet izmēģināt bija vērts.

Tagad konfigurēsim atlikušo disku.

Pieņemot, ka mūsu sistēmas nodalījums bija xvda, tad dati būs xvd. Labi.

Lielākā daļa ieteikumu sāksies ar vārdiem „Palaižiet fdisk un izveidojiet nodalījumu...”

Tātad tas nav pareizi!

Es vēlreiz atkārtošu, jo tas ir svarīgi! Šajā gadījumā, strādājot ar LVM, kas aizņem vienu veselu virtuālo disku, nodalījumu veidošana ir kaitīga! Šajā frāzē katrs vārds ir svarīgs. Ja mēs strādājam bez LVM — nepieciešams. Ja mūsu diskā ir, teiksim, sistēma un dati — nepieciešams. Ja mums kādā iemeslā ir jāatstāj puse diska tukša — arī nepieciešams. Bet parasti visi šie pieņēmumi ir tīri teorētiski. Jo, ja mēs nolemsim paplašināt esošo nodalījumu, to visvieglāk būs izdarīt tieši šādā konfigurācijā. Un ērtība administrācijā tik lielā mērā pārspēj daudz citas lietas, ka mēs mērķtiecīgi virzāmies uz šo konfigurāciju.

Ērtība ir tāda, ka, ja vēlaties paplašināt datu nošķiršanas sadaļu, jūs vienkārši pievienojat vietas virtuālajai sadaļai, pēc tam paplašināt grupu, izmantojot vgextend, un viss! Retos gadījumos var būt nepieciešams kaut kas cits, bet vismaz nebūs jāpaplašina loģiskā tilta sākumā, kas jau patīkami. Jo, lai paplašinātu šo tiltu, ieteicams vispirms izdzēst esošo un pēc tam izveidot jaunu virsū… Tas izskatās ne pārāk pievilcīgi, un to nevar izdarīt uz dzīvo, bet paplašināšanu, ko es norādīju, var veikt "lidojot", pat nemontējot sadaļu.

Tātad izveidojam fizisko tiltu, tad grupu ar šo tiltu, un pēc tam sadaļu mūsu serverim:

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

Šeit vietā lielās burta "L" (un lieluma GB) var norādīt mazo un tad, nevis absolūto lielumu, norādīt relatīvo, piemēram, lai izmantotu pusi brīvā vietas šobrīd grupā, jānospiež „-l +50%FREE”

Un pēdējā komanda formatē sadaļu ext4 failu sistēmā (kas, pēc manas pieredzes, pagaidām rāda vislielāko stabilitāti, ja viss sabrūk, tāpēc es to dodu priekšroku).

Tagad montējam sadaļu vajadzīgajā vietā. Tam pievienojam pareizo rindu /etc/fstab:

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

Un ierakstām

mount /var/www

Ja parādās kļūda — izsauciet trauksmi! Jo tas nozīmē, ka mums ir kļūda /etc/fstab. Un ka pie nākamās restartēšanas mums būs ļoti liela problēma. Sistēma var pat nenosākt, kas mākoņu pakalpojumiem bieži ir diezgan skumji. Tā kā mums ir jālabo pēdējā pievienotā rinda, vai arī jāizdzēš tā pavisam! Tādēļ mēs neiekļāvām montēšanas komandu manuāli — tad mēs neiegūtu tādu lielisku iespēju pārbaudīt konfigurāciju tieši tagad.

Tagad, būtībā, uzstādām visu, ko gribējām, un atveram portus tīmeklim:

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

Ja, pēc vēlēšanās šeit var ievietot arī DB, bet es personīgi cenšos to turēt atsevišķi no tīmekļa servera. Tomēr turēt to blakus ir ātrāk, jā. Virtuālo tīkla adapteru ātrums parasti ir ap vienu gigabitu, bet strādājot uz tās pašas mašīnas piekļuve notiek gandrīz acumirklī. Bet tas mazāk droši. Šeit katram ir svarīgākais, kas viņam ir svarīgāks.

Tagad pievienojam parametru konfigurācijas failā (izveidojam jaunu, moderna CentOS ideoloģija ir tāda)

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

Restartējiet serveri.
Komentāros mani kritizēja par ieteikumu izslēgt SeLinux, tāpēc es labošos un uzrakstīšu par to, ka pēc tam nevajadzētu aizmirst iestatīt SeLinux.
Faktiski, peļņa! 🙂

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster