Веб сервер на ЦентОС 8 са пхп7, ноде.јс и редис

Предговор

Прошло је 2 дана од објављивања нове верзије ЦентОС оперативног система, односно ЦентОС 8. И до сада има доста чланака на интернету о томе како се ствари раде у њему, па сам одлучио да попуним ову празнину. Штавише, рећи ћу вам не само о томе како да инсталирате овај пар програма, већ и о томе како генерално видим инсталирање Линука у виртуелном окружењу у савременом свету за типичне задатке, укључујући партиционисање дискова и тако даље.

Али на почетку желим укратко да кажем зашто је вредно прећи на ову верзију са свих претходних, а за то постоје два разлога:

  1. пхп7! У претходној верзији ЦентОС-а инсталиран је „православни“ пхп5.4...

    Добро, да будем мало озбиљнији, много пакета је масовно скочило кроз неколико верзија. Ми (љубитељи оперативних система налик црвеном шеширу) смо коначно ушли, ако не у будућност, онда барем у садашњост. А присталице Убунтуа нам се више неће смејати и упирати прстом у нас, па... бар неко време ;).

  2. Прелазак са иум на днф. Главна разлика је у томе што је сада званично подржан рад са неколико верзија пакета одједном. Право у осмом, никада нисам сматрао да је ово корисно, али звучи обећавајуће.

Направите виртуелну машину

Постоје различити хипервизори и ја немам циљ да прилагођавам читаоца одређеном, рећи ћу вам о општим принципима.

меморија

Прво... Да бисте сигурно инсталирали ЦентОС систем почевши од 7, а по мом мишљењу то је био случај и у 6 („али ово није сигурно“), потребно је минимум 2 ГБ РАМ-а. Зато вам саветујем да прво дате толико.

Али ако ништа друго, након инсталације величина меморије се може смањити. На 1 ГБ голи систем ради прилично добро, проверио сам.

диск

За нормалну инсталацију, требало би да направите виртуелни диск капацитета 20-30 ГБ. Ово је довољно за систем. И други диск за податке. Може се додати иу фази креирања виртуелне машине и после. Обично га додам касније.

процесор

На једном језгру, голи систем не успорава. А пошто су ресурси слободно скалабилни, не видим никакву сврху да дајем више у фази инсталације (осим ако савршено познајете захтеве и превише сте лијени да поново улазите у конфигуратор)

Остало се обично може оставити као подразумевано.

Стварна инсталација

Дакле... Хајде да покренемо инсталатер... Лично, такве сервисе већ дуго инсталирам само у виду виртуелних машина, тако да нећу описивати све врсте дистрибутивних записа на флеш диску - ја само монтирајте ИСО као ЦД у мој омиљени хипервизор, преузмите и идемо.

Основна инсталација је прилично типична, задржаћу се само на неколико тачака.

Избор извора

Од изласка осме верзије, огледало из Јандекса је лежало данима. Па, то јест, периодично расте, а онда поново почиње да показује грешку. Сигуран сам да је то због превеликог оптерећења услуге. Дакле, да бих назначио извор, морао сам лично, уместо да унесем уобичајену адресу, да одем овде, тамо изаберите огледало које ми се свиђа и ручно унесите адресу у прозор инсталатера. Овде је важно запамтити да је потребно да наведете путању до фасцикле у којој се налази директоријум реподата. На пример, миррор.цорбина.нет/пуб/Линук/центос/8/БасеОС/к86_64/ос.

Партиционисање диска

Ово питање је по мом мишљењу прилично религиозно. Сваки администратор има свој став по овом питању. Али ипак ћу поделити своје гледиште о овом питању.

Да, у принципу, можете доделити цео простор корену и то ће радити, најчешће чак и прилично добро. Зашто онда оградити башту са различитим деловима? — По мом мишљењу, постоје два главна разлога за то: квоте и преносивост.

На пример, ако нешто крене наопако и дође до грешака на главној партицији података, желите да и даље будете у могућности да покренете систем и спроведете мере оживљавања. Стога, ја лично додељујем засебну партицију за /боот. Постоји кернел и боотлоадер. Обично је довољно 500 мегабајта, али у ретким случајевима може бити потребно и више, а с обзиром на то да смо већ навикли да меримо простор у терабајтима, за ову секцију издвајам 2 ГБ. И важно је да се то не може урадити лвм.

Следеће долази корен система. За нормалну инсталацију, никада ми није било потребно више од 4 ГБ по систему, али током заказаних догађаја често користим /тмп директоријум да распакујем дистрибуције и не видим никакву сврху да га посветим посебној партицији - у модерним системима аутоматски се чисти, тако да се не пуни. Тако да издвајам 8 ГБ за роот.

Замена... Углавном, мало је практичне користи од тога. Ако почнете да користите свап на свом серверу, данас у стварном свету то само значи да сервер треба да дода више РАМ-а. У супротном, проблеми са перформансама су загарантовани (или неки програм „пропушта“ меморију). Стога је овај одељак потребан само у дијагностичке сврхе. Дакле, 2 ГБ је одличан број. Да, без обзира на то колико меморије има на серверу. Да, прочитао сам све те чланке где пише о односу запремине меморије и запремине свап-а... ИМХО, застарели су. За 10 година праксе ово ми никада није требало. Пре 15 година сам их користио, да.

ИМХО, свако може сам да одлучи да ли да додели /хоме у посебну партицију. Ако ће неко на серверу активно користити овај директоријум, боље је да га додели. Ако нико, нема потребе.

Следеће, /вар. По мом мишљењу, то свакако треба истаћи. За почетак, можете се ограничити на 4 ГБ и видети како иде. И да, под "како то иде" мислим на то

  1. Прво, увек можете да монтирате други диск у поддиректоријум /вар (што ћу касније показати на примеру)
  2. Друго, имамо лвм - увек га можете додати. И обично морате да га додате када превише трупаца почне да сипа унутра. Али никада нисам могао да предвидим ову цифру унапред, па почињем са 2 ГБ и онда гледам.

Недодељени простор ће остати слободан у групи волумена и увек се може користити касније.

ЛВМ

Све Има смисла направити партиције које нису /боот у ЛВМ-у. Да, укључујући замену. Да, према свим саветима, свап треба да буде на почетку диска, али у случају ЛВМ-а његова локација се у принципу не може одредити. Али као што сам горе написао, ваш систем не би требало уопште користите замену. Стога, није важно где се он налази. Па не живимо ’95, искрено!

Даље, у ЛВМ-у постоји неколико основних ентитета са којима морате да живите:

  • физички волумен
  • запреминска група
  • логички обим

Физички волумени се комбинују у групе, а сваки физички волумен може бити у само једној групи, а група се може налазити на неколико физичких волумена одједном.
А логички свесци су сваки у једној групи.

Али... Проклетство, опет је 21. век. А сервери су виртуелни. Нема смисла примењивати на њих исте механизме који су примењени на физичке. А за виртуелне је важно имати податке одвојено од система! Ово је веома важно, посебно за могућност брзог пребацивања података на другу виртуелну машину (на пример, приликом преласка на нови ОС) и уопште за све врсте корисних добара (на пример, одвојене резервне копије по партицијама помоћу алата за хипервизор) . Дакле, једна група волумена се користи за систем и нужно друга се користи за податке! Ова логична подела много помаже у животу!

Ако сте креирали само један виртуелни чврсти диск приликом креирања виртуелне машине, ту се конфигурација завршава. А ако их има два, само немојте још означавати другу.

Почнимо са инсталацијом.

Пост-инсталација

Дакле, новоинсталирани систем се коначно покренуо. Прва ствар коју треба да проверите је Интернет.

ping ya.ru

Има ли одговора? - Одлично, притисните Цтрл-Ц.
Ако не, идите и поставите мрежу, без овога нема живота, али мој чланак није о томе.

Сада ако још нисмо под роот-ом, иди под роот, јер куцамо ово број команди са судо ме је лично сломио (и нека ми опросте параноични администратори):

sudo -i

Сада прво што радимо је да куцамо

dnf -y update

А ако читате овај чланак 2019. године, највероватније се ништа неће догодити, али вредело је покушати.

Сада да конфигуришемо преостали диск

Рецимо да је партиција са системом била квда, онда ће диск са подацима бити квдб. ОК.

Већина савета ће почети са „Покрени фдиск и креирај партицију...“

Дакле, ово је погрешно!

Рећи ћу поново јер је тако важно! У овом случају, радити са ЛВМ-ом, који заузима цео један виртуелни диск, стварање партиција на њему је штетно! Свака реч у овој фрази је важна. Ако радимо без ЛВМ-а, морамо. Ако имамо систем и податке на диску, потребни су нам. Ако из неког разлога морамо да оставимо половину диска празну, требало би и ми. Али обично су све ове претпоставке чисто теоријске. Јер ако одлучимо да додамо простор постојећој партицији, онда је најлакши начин да то урадимо са овом конфигурацијом. А лакоћа администрације толико надмашује многе друге ствари да се намерно крећемо ка овој конфигурацији.

А погодност је у томе што ако желите да проширите партицију података, једноставно додате размаке виртуелној партицији, а затим проширите групу користећи вгектенд и то је то! У ретким случајевима може бити потребно нешто друго, али барем нећете морати да ширите логички волумен на почетку, што је већ лепо. Иначе, да би проширили баш овај обим, препоручују прво да обришете постојећи, па да направите нови на врху... Што не изгледа баш лепо и не може да се ради уживо, али проширење по сценарију који сам навео може бити изведено „у ходу“ чак и без демонтаже преграде.

Дакле, креирамо физички волумен, затим групу волумена која га укључује, а затим партицију за наш сервер:

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

Овде, уместо великог слова „Л“ (и величине у ГБ), можете да наведете мало, а затим уместо апсолутне величине, наведете релативну, на пример, да бисте користили половину тренутно слободног простора у групу волумена, потребно је да наведете „-л +50% БЕСПЛАТНО“

А последња команда форматира партицију у систему датотека ект4 (који до сада, по мом искуству, показује највећу стабилност у случају да се све поквари, па ми је драже).

Сада монтирамо партицију на право место. Да бисте то урадили, додајте исправну линију у /етц/фстаб:

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

И бирамо

mount /var/www

Ако дође до грешке, огласи се алармом! Јер то значи да имамо грешку у /етц/фстаб. И да ћемо при следећем поновном покретању имати веома велике проблеме. Систем се можда уопште неће покренути, што је често веома тужно за услуге у облаку. Због тога је неопходно или хитно исправити последњи додани ред или га потпуно избрисати! Зато нисмо ручно написали команду за монтирање - тада не бисмо имали тако одличну прилику да одмах проверимо конфигурацију.

Сада заправо инсталирамо све што смо желели и отварамо портове за веб:

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

Ако желите, овде можете ставити и базу података, али лично се трудим да је држим одвојено од веб сервера. Иако је држање близу ње брже, да. Брзина виртуелних мрежних адаптера је обично око гигабита, а када се ради на истој машини, позиви се јављају скоро тренутно. Али то је мање безбедно. Шта је коме важније?

Сада додајемо параметар у конфигурациону датотеку (креирамо нови, модерна идеологија ЦентОС-а је оваква)

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

Поново покрећемо сервер.
У коментарима су ме укорили што ми је саветовао да искључим СеЛинук, па ћу се исправити и писати о томе да након овога треба да се сетите да конфигуришете СеЛинук.
У ствари, профит! 🙂

Извор: ввв.хабр.цом

Додај коментар