Optimizarea performanței Apache2

Mulți oameni folosesc apache2 ca server web. Cu toate acestea, puțini oameni se gândesc la optimizarea performanței acestuia, care afectează direct proporțional viteza de încărcare a paginilor site-ului, viteza de procesare a scripturilor (în special php), precum și o creștere a încărcării procesorului și o creștere a cantității de RAM utilizată.

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

Deci, să începem.

1. Dezactivarea modulelor neutilizate

Prima metodă este să dezactivați pur și simplu modulele pe care nu le utilizați:

Lista modulelor utilizate curent poate fi vizualizată cu comanda:

apache2ctl -M

Pentru a dezactiva modulul, utilizați comanda:

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

În consecință, pentru a activa modulul, utilizați comanda:

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

Vă rugăm să rețineți că atunci când utilizați a2dismod, numele modulului trebuie scris fără cuvântul module în sine.

De exemplu, dacă vă aflați în ieșirea comenzii apache2ctl -M a văzut proxy_module, apoi pentru a-l dezactiva trebuie să utilizați comanda - a2dismod proxy

Modulele care încarcă cel mai mult sistemul (din experiență personală) sunt:

  • PHP, Ruby, Perl și alte module pentru diferite limbaje de scripting
  • SSL
  • Rescrie
  • CGI

Deci, în cazurile în care nu aveți nevoie de aceste module, vă recomand dezactivarea acestor module.

De asemenea, după dezactivarea oricărui modul, vă recomand să folosiți comanda - apache2ctl configtest, care va verifica configurația site-urilor utilizate și dacă vreunul dintre modulele dezactivate a fost necesar pentru acestea, va genera o eroare.

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

În mod implicit, după instalare, apache2 folosește MPM Prefork (1 fir pe 1 conexiune), ceea ce reduce semnificativ performanța, dar în același timp îmbunătățește stabilitatea și securitatea.

Dar pentru a optimiza performanța, recomand să utilizați MPM Worker, care vă permite să utilizați mai multe fire de execuție per conexiune.

Pentru a-l activa folosim următoarele comenzi:

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

Cu toate acestea, atunci când utilizați Worker, puteți întâmpina o problemă deoarece... Modulul php7.3 depinde de modulul Prefork.

Pentru a rezolva această problemă, să instalăm modulul php7.3-fpm, care va fi folosit pentru a rula scripturi PHP:

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

Este de remarcat faptul că utilizarea php-fpm va reduce, de asemenea, cantitatea de RAM utilizată de procesul apache2 și va accelera ușor procesarea scripturilor PHP.

3. concluzie

Astfel, cu acțiuni atât de simple am reușit să optimizăm performanța și să reducem sarcina pe mașină (în acest caz RPI3).

Desigur, există sute de alte opțiuni de optimizare, cum ar fi activarea compresiei (ceea ce este cu adevărat util, dar majoritatea sunt deja activate implicit), modificarea setărilor MPM (fișiere de configurare), dezactivarea Căutărilor de nume de gazdă etc., dar în acest articol am încercat să reflectați Acestea sunt punctele care m-au ajutat cel mai mult și sper că îi vor ajuta pe alții.

Sursa: www.habr.com

Adauga un comentariu