Apache2 hagræðing afkasta

Margir nota apache2 sem vefþjón. Hins vegar hugsa fáir um að fínstilla frammistöðu þess, sem hefur bein hlutfallsleg áhrif á hleðsluhraða síðna á vefnum, hraða vinnslu forskrifta (sérstaklega php), auk aukins álags á örgjörva og aukningar á vinnsluminni sem notað er.

Þannig ætti eftirfarandi handbók að hjálpa byrjendum (en ekki aðeins) notendum.
Öll dæmin hér að neðan voru notuð á Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Svo, við skulum byrja.

1. Slökkva á ónotuðum einingar

Fyrsta aðferðin er einfaldlega að slökkva á einingar sem þú notar ekki:

Hægt er að skoða listann yfir þær einingar sem nú eru notaðar með skipuninni:

apache2ctl -M

Til að slökkva á einingunni skaltu nota skipunina:

a2dismod *название модуля*

Í samræmi við það, til að virkja eininguna, notaðu skipunina:

a2enmod *название модуля*

Vinsamlegast athugaðu að þegar þú notar a2dismod, nafn einingarinnar verður að vera skrifað án orðsins sjálfs.

Til dæmis, ef þú ert í úttak skipunarinnar apache2ctl -Mproxy_module, til að slökkva á því þarftu að nota skipunina - a2dismod umboð

Einingarnar sem hlaða kerfinu mest (af eigin reynslu) eru:

  • PHP, Ruby, Perl og aðrar einingar fyrir ýmis forskriftarmál
  • SSL
  • Umrita
  • CGI

Svo í þeim tilvikum þar sem þú þarft ekki þessar einingar, mæli ég með því að slökkva á þessum einingar.

Einnig, eftir að hafa slökkt á einhverri einingu, mæli ég með því að nota skipunina - apache2ctl configtest, sem mun athuga stillingar vefsvæða sem notaðar eru og ef einhver af óvirku einingunum var nauðsynleg fyrir þær mun það búa til villu.

2. Breyta MPM (Multi-Processing Module) og nota php-fpm

Sjálfgefið, eftir uppsetningu, notar apache2 MPM Prefork (1 þráður á 1 tengingu), sem dregur verulega úr afköstum, en á sama tíma bætir stöðugleika og öryggi.

En til að hámarka frammistöðu mæli ég með því að nota MPM Worker, sem gerir þér kleift að nota marga þræði á hverja tengingu.

Til að virkja það notum við eftirfarandi skipanir:

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

Hins vegar, þegar þú notar Worker gætirðu lent í vandræðum vegna þess að... php7.3 einingin fer eftir Prefork einingunni.

Til að leysa þetta vandamál skulum við setja upp php7.3-fpm eininguna, sem verður notuð til að keyra PHP forskriftir:

apt-get update && apt-get install php7.3-fpm  //Устанавливаем
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  //Добавляем в автозагрузку и запускаем
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  //Включаем модуль и конфиг для него

Það er athyglisvert að notkun php-fpm mun einnig draga úr vinnsluminni sem apache2 ferlið notar og flýta aðeins fyrir vinnslu PHP forskrifta.

3. Niðurstaða

Þannig gátum við með svo einföldum aðgerðum hámarkað afköst og dregið úr álagi á vélina (í þessu tilfelli RPI3).

Auðvitað eru til hundruðir annarra fínstillingarvalkosta, eins og að virkja þjöppun (sem er mjög gagnlegt, en flestir eru nú þegar virkjaðir sjálfgefið), breyta MPM stillingum (stillingarskrám), slökkva á Hostname Lookups o.s.frv., en í þessari grein reyndi ég að endurspegla Þetta eru þeir punktar sem hjálpuðu mér mest og ég vona að muni hjálpa öðrum.

Heimild: www.habr.com

Bæta við athugasemd