Reta servilo sur CentOS 8 kun php7, node.js kaj redis

Antaŭparolo

Pasis 2 tagoj ekde la apero de nova versio de la mastruma sistemo CentOS, nome CentOS 8. Kaj ĝis nun estas sufiĉe da artikoloj en la Interreto pri kiel oni faras aferojn en ĝi, do mi decidis plenigi ĉi tiun mankon. Plie, mi rakontos al vi ne nur pri kiel instali ĉi tiun paron da programoj, sed ankaŭ pri kiel mi ĝenerale vidas instali Linukso en virtuala medio en la moderna mondo por tipaj taskoj, inkluzive de dispartigo de diskoj ktp.

Sed komence mi volas mallonge paroli pri kial indas ŝanĝi al ĉi tiu versio de ĉiuj antaŭaj, kaj estas du kialoj por tio:

  1. php7! En la antaŭa versio de CentOS, la "Ortodoksa" php5.4 estis instalita...

    Bone, por esti iom pli seriozaj, amase multe da pakaĵoj saltis tra pluraj versioj. Ni (fanoj de redhat-similaj OS-oj) finfine eniris, se ne en la estontecon, do almenaŭ en la nuntempon. Kaj subtenantoj de Ubuntu ne plu ridos pri ni kaj montros al ni fingrojn, nu... almenaŭ dum iom da tempo ;).

  2. Transiro de yum al dnf. La ĉefa diferenco estas, ke nun ĝi estas oficiale subtenata por labori kun pluraj versioj de pakaĵoj samtempe. Ĝuste en la ok, mi neniam trovis ĉi tion utila, sed ĝi sonas promesplena.

Kreu virtualan maŝinon

Estas malsamaj hiperviziiloj kaj mi ne havas celon adapti la leganton al specifa, mi rakontos al vi pri la ĝeneralaj principoj.

memoro

Unue... Por instali CentOS-sistemon ekde 7 certe, kaj laŭ mi tio estis ankaŭ en 6 ("sed ĉi tio ne estas certa"), vi bezonas minimumo 2 GB RAM. Tial mi konsilas al vi unue doni tiom multe.

Sed se io ajn, post instalado la memorgrandeco povas esti reduktita. Je 1 GB la nuda sistemo funkcias sufiĉe bone, mi kontrolis.

disko

Por normala instalado, vi devus krei virtualan diskon kun kapablo de 20-30 GB. Ĉi tio sufiĉas por la sistemo. Kaj dua disko por datumoj. Ĝi povas esti aldonita ambaŭ en la stadio de kreado de virtuala maŝino kaj poste. Mi kutime aldonas ĝin poste.

procesoron

Sur unu kerno, la nuda sistemo ne malrapidiĝas. Kaj ĉar resursoj estas libere skaleblaj, mi ne sentas ian signifon doni pli en la instalofazo (krom se vi konas la postulojn perfekte kaj estas tro maldiligenta por denove eniri la agordilon)

La resto kutime povas esti lasita kiel defaŭlta.

La reala instalado

Do... Ni lanĉu la instalilon... Persone, mi jam delonge instalas tiajn servojn nur en la formo de virtualaj maŝinoj, do mi ne priskribos ĉiajn distribuajn registrojn sur flash drive - mi nur muntas la ISO kiel KD en mia plej ŝatata hiperviziero, elŝutu kaj iru.

La baza instalado estas sufiĉe tipa, mi nur priparolos kelkajn punktojn.

Elekto de fonto

Ekde la publikigo de la oka versio, la spegulo de Yandex kuŝas dum tagoj. Nu, tio estas, ĝi periode altiĝas, kaj poste denove komencas montri eraron. Mi certas, ke ĝi estas pro troa ŝarĝo de la servo. Tial, por indiki la fonton, mi persone devis, anstataŭ enigi la kutiman adreson, iri tie, elektu la spegulon, kiun mi ŝatas tie kaj permane enigu la adreson en la instalilfenestro. Gravas memori ĉi tie, ke vi devas specifi la vojon al la dosierujo kie troviĝas la dosierujo repodata. Ekzemple mirror.corbina.net/pub/Linux/centos/8/BaseOS/x86_64/os.

Diskpartigo

Ĉi tiu demando estas sufiĉe religia laŭ mi. Ĉiu administranto havas sian propran pozicion pri ĉi tiu afero. Sed mi ankoraŭ dividos mian vidpunkton pri la afero.

Jes, principe, vi povas asigni la tutan spacon al la radiko kaj ĝi funkcios, plej ofte eĉ sufiĉe bone. Kial do bari ĝardenon kun malsamaj sekcioj? — Laŭ mi, estas du ĉefaj kialoj por tio: kvotoj kaj porteblo.

Ekzemple, se io misfunkcias kaj okazas eraroj sur la ĉefa datuma sekcio, vi volas ankoraŭ povi ekŝalti la sistemon kaj efektivigi reanimajn mezurojn. Tial mi persone asignas apartan subdiskon por /boot. Estas kerno kaj ekŝargilo. Kutime 500 megabajtoj sufiĉas, sed en maloftaj okazoj eble pli necesas, kaj pro tio, ke ni jam kutimas mezuri spacon en terabajtoj, mi asignas 2GB por ĉi tiu sekcio. Kaj la grava afero ĉi tie estas, ke ĝi ne povas esti farita lvm.

Poste venas la radiko de la sistemo. Por normala instalo, mi neniam bezonis pli ol 4 GB per sistemo, sed dum planitaj eventoj mi ofte uzas la dosierujon /tmp por malpaki distribuojn, kaj mi ne vidas ian signifon dediĉi ĝin al aparta diskparto - en modernaj sistemoj. ĝi estas aŭtomate purigita, do ĝi ne estas plenigita. Do mi asignas 8GB por la radiko.

Interŝanĝi... Ĝenerale, estas malmulte da praktika uzo de ĝi. Se vi komencas uzi interŝanĝon en via servilo, hodiaŭ en la reala mondo tio signifas nur, ke la servilo bezonas aldoni pli da RAM. Alie, problemoj kun rendimento estas garantiitaj (aŭ iu programo "likas" memoron). Tial ĉi tiu sekcio estas bezonata nur por diagnozaj celoj. Tial, 2 GB estas bonega nombro. Jes, sendepende de kiom da memoro estas sur la servilo. Jes, mi legis ĉiujn tiujn artikolojn, kie estas skribite pri la proporcio de memorvolumo al interŝanĝa volumo... IMHO, ili estas malmodernaj. En 10 jaroj da praktiko mi neniam bezonis ĉi tion. Antaŭ 15 jaroj mi uzis ilin, jes.

MIHO, ĉiu povas decidi mem ĉu asigni /hejmon en apartan sekcion. Se iu en la servilo aktive uzos ĉi tiun dosierujon, estas pli bone asigni ĝin. Se neniu, ne necesas.

Poste, /var. Laŭ mi, ĝi nepre devus esti emfazita. Komence, vi povas limigi vin al 4 GB, kaj vidi kiel ĝi iras. Kaj jes, per "kiel ĝi iras" mi celas tion

  1. Unue, vi ĉiam povas munti alian diskon en la subdosierujo /var (kiun mi montros poste kun ekzemplo)
  2. Due, ni havas lvm - vi ĉiam povas aldoni ĝin. Kaj oni kutime devas aldoni ĝin kiam tro da ŝtipoj komencas enverŝi tie. Sed mi neniam povis antaŭdiri ĉi tiun ciferon, do mi komencas kun 2 GB kaj poste rigardas.

La neasignita spaco restos libera en la volumena grupo kaj ĉiam povas esti uzata poste.

LVM

ĉiuj Ĝi havas sencon fari sekciojn krom /boot en LVM. Jes, inkluzive de interŝanĝo. Jes, laŭ ĉiuj konsiloj, interŝanĝo devus esti komence de la disko, sed en la kazo de LVM ĝia loko principe ne povas esti determinita. Sed kiel mi skribis supre, via sistemo ne devus uzu interŝanĝon entute. Tial, ne gravas kie li estas. Nu, ni ne loĝas en ’95, sincere!

Plue, en LVM ekzistas pluraj bazaj estaĵoj kun kiuj vi devas povi vivi:

  • fizika volumeno
  • volumena grupo
  • logika volumeno

Fizikaj volumoj estas kombinitaj en grupojn, kaj ĉiu fizika volumeno povas esti en nur unu grupo, kaj grupo povas troviĝi sur pluraj fizikaj volumoj samtempe.
Kaj la logikaj volumoj estas ĉiu en unu grupo.

Sed... Damne, denove estas la 21-a jarcento. Kaj la serviloj estas virtualaj. Ne havas sencon apliki al ili la samajn mekanismojn, kiuj estis aplikataj al fizikaj. Kaj por virtualaj estas grave havi datumojn aparte de la sistemo! Ĉi tio estas tre grava, precipe por la kapablo rapide ŝanĝi datumojn al alia virtuala maŝino (ekzemple, kiam oni ŝanĝas al nova OS) kaj ĝenerale por ĉiaj utilaj bonaĵoj (apartaj sekurkopioj per subdiskoj uzante hipervizirajn ilojn, ekzemple) . Tial, unu volumgrupo estas uzata por la sistemo kaj nepre alia estas uzata por datumoj! Ĉi tiu logika divido multe helpas en la vivo!

Se vi kreis nur unu virtualan malmolan diskon dum kreado de virtuala maŝino, ĉi tie finiĝas la agordo. Kaj se estas du, tiam simple ne marku la duan ankoraŭ.

Ni komencu la instaladon.

Post-instalado

Do, la lastatempe instalita sistemo finfine startis. La unua afero, kiun vi devas kontroli, estas interreto.

ping ya.ru

Ĉu estas respondo? - Bonege, premu Ctrl-C.
Se ne, iru starigi reton, ne ekzistas vivo sen ĉi tio, sed ne pri tio temas mia artikolo.

Nun se ni ankoraŭ ne estas sub radiko, iru sub radiko, ĉar tajpante tia la nombro da komandoj kun sudo persone rompis min (kaj la paranojaj administrantoj pardonu min):

sudo -i

Nun la unua afero, kiun ni faras, estas tajpi

dnf -y update

Kaj se vi legas ĉi tiun artikolon en 2019, plej verŝajne nenio okazos, sed valoris provi.

Nun ni agordu la restantan diskon

Ni diru, ke la subdisko kun la sistemo estis xvda, tiam la datumdisko estos xvdb. BONE.

Plej multaj konsiloj komenciĝos per "Rulu fdisk kaj kreu sekcion..."

Do ĉi tio estas malĝuste!

Mi diros ĝin denove ĉar ĝi estas tre grava! En ĉi tiu kazo, labori kun LVM, kiu okupas unu tutan virtualan diskon, krei subdiskojn sur ĝi estas malutila! Ĉiu vorto en ĉi tiu frazo estas grava. Se ni laboras sen LVM, ni bezonas. Se ni havas sistemon kaj datumojn sur la disko, ni bezonas ĝin. Se ial ni bezonas lasi duonon de la disko malplena, ankaŭ ni devus. Sed kutime ĉiuj ĉi tiuj supozoj estas pure teoriaj. Ĉar se ni decidas aldoni spacon al ekzistanta diskparto, tiam la plej facila maniero fari ĝin estas per ĉi tiu agordo. Kaj facileco de administrado tiom superas multajn aliajn aferojn, ke ni celkonscie iras al ĉi tiu agordo.

Kaj la komforto estas, ke se vi volas vastigi la datumsekcion, vi simple aldonu spacojn al la virtuala sekcio, tiam vastigu la grupon per vgextend kaj jen ĝi! En maloftaj kazoj, io alia povas esti postulata, sed almenaŭ vi ne devos pligrandigi la logikan volumon komence, kio jam estas bela. Alie, por pligrandigi ĉi tiun ĉi volumon, oni rekomendas unue forigi la ekzistantan, kaj poste krei novan supre... Kio ne aspektas tre bele kaj ne povas esti realigita, sed pligrandigo laŭ la scenaro, kiun mi indikis, povas esti. efektivigita "sur la flugo" sen eĉ malmunti la vando.

Do, ni kreas fizikan volumon, tiam volumgrupon kiu inkluzivas ĝin, kaj poste sekcion por nia servilo:

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

Ĉi tie, anstataŭ majuskla litero “L” (kaj la grandeco en GB), vi povas specifi malgrandan, kaj tiam anstataŭ absoluta grandeco, specifi relativan, ekzemple, por uzi duonon de la nuntempe libera spaco en volumena grupo, vi devas specifi "-l +50% SENPAGA"

Kaj la lasta komando formatas la subdiskon en la dosiersistemo ext4 (kiu ĝis nun, laŭ mia sperto, montras la plej grandan stabilecon, se ĉio rompiĝos, do mi preferas ĝin).

Nun ni muntas la vando en la ĝusta loko. Por fari tion, aldonu la ĝustan linion al /etc/fstab:

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

Kaj ni telefonas

mount /var/www

Se okazas eraro, sonigu la alarmon! Ĉar tio signifas, ke ni havas eraron en /etc/fstab. Kaj ke ĉe la venonta rekomenco ni havos tre grandajn problemojn. La sistemo eble tute ne startas, kio ofte estas tre malĝoja por nubaj servoj. Tial necesas aŭ urĝe korekti la lastan linion aldonitan, aŭ tute forigi ĝin! Tial ni ne skribis la muntan komandon permane - tiam ni ne havus tiel bonegan ŝancon kontroli la agordon tuj.

Nun ni efektive instalas ĉion, kion ni volis kaj malfermas la havenojn por la reto:

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

Se vi deziras, vi ankaŭ povas meti datumbazon ĉi tie, sed persone mi provas teni ĝin aparta de la retservilo. Kvankam teni ŝin proksime estas pli rapide, jes. La rapideco de virtualaj retaj adaptiloj estas kutime ĉirkaŭ gigabito, kaj kiam oni laboras sur la sama maŝino, vokoj okazas preskaŭ tuj. Sed ĝi estas malpli sekura. Kio estas pli grava por kiu?

Nun ni aldonas la parametron al la agorda dosiero (ni kreas novan, la moderna ideologio de CentOS estas tia)

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

Ni rekomencas la servilon.
En la komentoj, mi estis riproĉita pro konsilo al mi malŝalti SeLinux, do mi korektos min kaj skribos pri tio, ke post tio vi devas memori agordi SeLinux.
Efektive, profito! 🙂

fonto: www.habr.com

Aldoni komenton