Apache2 jõudluse optimeerimine

Paljud inimesed kasutavad apache2 veebiserverina. Kuid vähesed inimesed mõtlevad selle jõudluse optimeerimisele, mis mõjutab otseselt proportsionaalselt saidi lehtede laadimiskiirust, skriptide (eriti php) töötlemise kiirust, aga ka protsessori koormuse suurenemist ja kasutatava RAM-i hulga suurenemist.

Seega peaks järgnev juhend aitama algajaid (ja mitte ainult) kasutajaid.
Kõiki allolevaid näiteid kasutati versioonides Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Итак, начнем.

1. Kasutamata moodulite keelamine

Esimene meetod on lihtsalt keelata moodulid, mida te ei kasuta:

Hetkel kasutatavate moodulite nimekirja saab vaadata käsuga:

apache2ctl -M

Mooduli keelamiseks kasutage käsku:

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

Seetõttu kasutage mooduli lubamiseks käsku:

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

Pange tähele, et kasutamisel a2dismod, tuleb mooduli nimi kirjutada ilma sõna moodul ise.

Näiteks kui olete käsu väljundis apache2ctl -M näinud puhverserveri_moodul, siis selle keelamiseks peate kasutama käsku - a2dismod puhverserver

Süsteemi kõige enam laadivad moodulid (isikliku kogemuse põhjal):

  • PHP, Ruby, Perl ja muud moodulid erinevatele skriptikeeltele
  • SSL
  • Ümber kirjutama
  • CGI

Nii et juhtudel, kui te neid mooduleid ei vaja, soovitan need moodulid keelata.

Samuti soovitan pärast mis tahes mooduli keelamist kasutada käsku - apache2ctl konfiguratsioonitest, mis kontrollib kasutatud saitide konfiguratsiooni ja kui mõni keelatud moodul oli nende jaoks vajalik, genereerib see vea.

2. MPM (Multi-Processing Module) muutmine ja php-fpm kasutamine

Vaikimisi kasutab apache2 pärast installimist MPM Preforki (1 lõime 1 ühenduse kohta), mis vähendab oluliselt jõudlust, kuid samal ajal parandab stabiilsust ja turvalisust.

Kuid jõudluse optimeerimiseks soovitan kasutada MPM Workerit, mis võimaldab ühe ühenduse kohta kasutada mitut lõime.

Selle lubamiseks kasutame järgmisi käske:

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

Siiski võib Workeri kasutamisel tekkida probleem, kuna... Php7.3 moodul oleneb Preforki moodulist.

Selle probleemi lahendamiseks installime php7.3-fpm mooduli, mida kasutatakse PHP skriptide käitamiseks:

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  //Включаем модуль и конфиг для него

Väärib märkimist, et php-fpm kasutamine vähendab ka apache2 protsessi kasutatava RAM-i hulka ja kiirendab veidi PHP skriptide töötlemist.

3. Järeldus

Seega saime selliste lihtsate toimingute abil optimeerida jõudlust ja vähendada masina koormust (antud juhul RPI3).

Muidugi on veel sadu muid optimeerimisvõimalusi, nagu tihendamise lubamine (mis on tõesti kasulik, kuid enamik on juba vaikimisi lubatud), MPM-i sätete muutmine (konfiguratsioonifailid), HostnameLookupsi keelamine jne, kuid selles artiklis proovisin peegeldama Need on punktid, mis mind kõige rohkem aitasid ja loodan, et need aitavad ka teisi.

Allikas: www.habr.com

Lisa kommentaar