Optimizarea performanței apache2

Multe persoane folosesc apache2 ca server web. Totuși, puțini se gândesc la optimizarea performanței sale, ceea ce afectează direct viteza de încărcare a paginilor website-ului, viteza de procesare a scripturilor (în special PHP), precum și creșterea încărcării pe CPU și a volumului de RAM utilizat.

Prin urmare, următorul ghid ar trebui să ajute utilizatorii începători (și nu numai).
Toate exemplele de mai jos au fost utilizate pe Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Deci, să începem.

1. Deactivarea modulelor neutilizate

Primul metodă este pur și simplu de a dezactiva modulele pe care nu le folosiți:

Lista modulelor utilizate în prezent poate fi vizualizată cu comanda:

apache2ctl -M

Pentru a dezactiva un modul, folosiți comanda:

a2dismod *numele modulului*

În mod corespunzător, pentru a activa un modul se folosește comanda:

a2enmod *numele modulului*

Vă rog să rețineți că, la utilizarea a2dismod, numele modulului trebuie scris fără cuvântul modul.

De exemplu, dacă ați observat în rezultatul comenzii apache2ctl -M că proxy_module, atunci pentru a-l dezactiva, trebuie să folosiți comanda — a2dismod proxy

Cele mai solicitante module (din experiența personală) sunt:

  • PHP, Ruby, Perl și alte module pentru diferite limbaje de scriptare
  • SSL
  • Rewrite
  • CGI

Așadar, în acele cazuri în care aceste module nu vă sunt necesare, recomand să le dezactivați.

De asemenea, după ce dezactivați un modul, recomand să folosiți comanda — apache2ctl configtest, care va verifica configurația site-urilor utilizate și, dacă un modul dezactivat era necesar pentru acestea, va emite o eroare.

2. Schimbarea MPM(Multi-Processing Module) și utilizarea php-fpm

Implicit, după instalare, apache2 folosește MPM Prefork (1 fir per conexiune), care reduce semnificativ performanța, dar îmbunătățește stabilitatea și securitatea.

Pentru a optimiza performanța, recomand să folosiți MPM Worker, care permite utilizarea mai multor fire pe o singură conexiune.

Pentru activarea acestuia, folosiți următoarele comenzi:

a2dismod mpm_prefork  \/\/Dezactivați prefork
a2dismod php7.3  \/\/Dezactivați modulul php, care depinde de prefork
a2enmod mpm_worker  \/\/Activați worker

Cu toate acestea, la utilizarea Worker, este posibil să vă confruntați cu probleme, deoarece modulul php7.3 depinde de modulul Prefork.

Pentru a rezolva această problemă, vom instala modulul php7.3-fpm, care va fi utilizat pentru a procesa scripturile php:

apt-get update && apt-get install php7.3-fpm  \/\/ Instalăm
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  \/\/ Adăugăm în autoload și pornim
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  \/\/ Activăm modulul și configurația pentru acesta

Merită remarcat faptul că utilizarea php-fpm va reduce de asemenea volumul de RAM utilizat de procesul apache2 și va accelera puțin procesarea scripturilor php.

3. Concluzie

Astfel, prin aceste acțiuni simple, am reușit să optimizăm performanța și să reducem încărcătura pe mașină (în acest caz RPI3).

Desigur, există sute de alte opțiuni de optimizare, cum ar fi activarea compresiei (ceea ce este într-adevăr util, dar în majoritatea cazurilor este deja activat în mod implicit), modificarea parametrelor (fișierelor de configurare) MPM, dezactivarea HostnameLookups etc., dar în acest articol am încercat să evidențiez exact acele puncte care mi-au fost cel mai utile și sper că le vor ajuta și pe altele.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster