Optimizacija delovanja Apache2

Veliko ljudi uporablja apache2 kot spletni strežnik. Vendar le malo ljudi razmišlja o optimizaciji njegove učinkovitosti, kar neposredno sorazmerno vpliva na hitrost nalaganja strani spletnega mesta, hitrost obdelave skriptov (zlasti php), pa tudi na povečanje obremenitve procesorja in povečanje količine uporabljenega RAM-a.

Tako bi moral naslednji priročnik pomagati začetnikom (in ne le) uporabnikom.
Vsi spodnji primeri so bili uporabljeni na Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Torej, začnimo.

1. Onemogočanje neuporabljenih modulov

Prva metoda je preprosto onemogočanje modulov, ki jih ne uporabljate:

Seznam trenutno uporabljenih modulov si lahko ogledate z ukazom:

apache2ctl -M

Če želite onemogočiti modul, uporabite ukaz:

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

V skladu s tem, da omogočite modul, uporabite ukaz:

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

Upoštevajte, da pri uporabi a2dismod, mora biti ime modula zapisano brez same besede modul.

Na primer, če ste v izhodu ukaza apache2ctl -M žaga proxy_module, če ga želite onemogočiti, morate uporabiti ukaz - a2dismod proxy

Moduli, ki najbolj obremenjujejo sistem (iz osebnih izkušenj) so:

  • PHP, Ruby, Perl in drugi moduli za različne skriptne jezike
  • SSL
  • Prepiši
  • CGI

Zato v primerih, ko teh modulov ne potrebujete, priporočam, da jih onemogočite.

Tudi po onemogočanju katerega koli modula priporočam uporabo ukaza - apache2ctl configtest, ki bo preveril konfiguracijo uporabljenih strani in če je bil kateri od onemogočenih modulov potreben zanje, bo ustvaril napako.

2. Spreminjanje MPM (večprocesni modul) in uporaba php-fpm

Po namestitvi apache2 privzeto uporablja MPM Prefork (1 nit na 1 povezavo), kar znatno zmanjša zmogljivost, a hkrati izboljša stabilnost in varnost.

Toda za optimizacijo delovanja priporočam uporabo MPM Worker, ki omogoča uporabo več niti na povezavo.

Da ga omogočimo, uporabimo naslednje ukaze:

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

Vendar pa lahko pri uporabi Workerja naletite na težavo, ker ... Modul php7.3 je odvisen od modula Prefork.

Da bi rešili to težavo, namestimo modul php7.3-fpm, ki bo uporabljen za izvajanje PHP skriptov:

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

Omeniti velja, da bo uporaba php-fpm tudi zmanjšala količino RAM-a, ki ga uporablja proces apache2, in nekoliko pospešila obdelavo skriptov PHP.

3. Zaključek

Tako smo s tako preprostimi dejanji lahko optimizirali delovanje in zmanjšali obremenitev stroja (v tem primeru RPI3).

Seveda obstaja na stotine drugih možnosti optimizacije, kot je omogočanje stiskanja (ki je res uporabno, vendar je večina že privzeto omogočenih), spreminjanje nastavitev MPM (konfiguracijske datoteke), onemogočanje HostnameLookups itd., vendar sem v tem članku poskušal refleksija To so točke, ki so mi najbolj pomagale in upam, da bodo pomagale tudi drugim.

Vir: www.habr.com

Dodaj komentar