Optimització del rendiment d'Apache2

Molta gent utilitza apache2 com a servidor web. No obstant això, poca gent pensa en optimitzar el seu rendiment, que afecta directament proporcionalment la velocitat de càrrega de les pàgines del lloc, la velocitat de processament dels scripts (en particular php), així com un augment de la càrrega de la CPU i un augment de la quantitat de RAM utilitzada.

Per tant, el següent manual hauria d'ajudar els usuaris principiants (i no només).
Tots els exemples següents es van utilitzar a Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

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

1. Desactivació dels mòduls no utilitzats

El primer mètode és simplement desactivar els mòduls que no utilitzeu:

La llista dels mòduls utilitzats actualment es pot veure amb l'ordre:

apache2ctl -M

Per desactivar el mòdul, utilitzeu l'ordre:

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

En conseqüència, per habilitar el mòdul, utilitzeu l'ordre:

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

Tingueu en compte que quan feu servir a2dismod, el nom del mòdul s'ha d'escriure sense la paraula mòdul.

Per exemple, si esteu a la sortida de l'ordre apache2ctl -M va veure mòdul_proxy, aleshores per desactivar-lo cal que utilitzeu l'ordre - a2dismod proxy

Els mòduls que carreguen més el sistema (per experiència personal) són:

  • PHP, Ruby, Perl i altres mòduls per a diversos llenguatges de script
  • SSL
  • Torneu a escriure
  • CGI

Per tant, en els casos en què no necessiteu aquests mòduls, us recomano desactivar aquests mòduls.

A més, després de desactivar qualsevol mòdul, recomano utilitzar l'ordre - apache2ctl configtest, que comprovarà la configuració dels llocs utilitzats i si algun dels mòduls inhabilitats fos necessari per a ells, generarà un error.

2. Canviant MPM (Multi-Processing Module) i utilitzant php-fpm

Per defecte, després de la instal·lació, apache2 utilitza MPM Prefork (1 fil per 1 connexió), que redueix significativament el rendiment, però alhora millora l'estabilitat i la seguretat.

Però per optimitzar el rendiment, recomano utilitzar MPM Worker, que us permet utilitzar diversos fils per connexió.

Per habilitar-lo fem servir les ordres següents:

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

Tanmateix, quan feu servir Worker, podeu trobar un problema perquè... El mòdul php7.3 depèn del mòdul Prefork.

Per resoldre aquest problema, instal·lem el mòdul php7.3-fpm, que s'utilitzarà per executar scripts 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  //Включаем модуль и конфиг для него

Val la pena assenyalar que l'ús de php-fpm també reduirà la quantitat de RAM utilitzada pel procés apache2 i accelerarà lleugerament el processament dels scripts PHP.

3. Conclusió

Així, amb accions tan senzilles hem pogut optimitzar el rendiment i reduir la càrrega de la màquina (en aquest cas RPI3).

Per descomptat, hi ha centenars d'altres opcions d'optimització, com activar la compressió (que és molt útil, però la majoria ja estan activades per defecte), canviar la configuració de MPM (fitxers de configuració), desactivar les cerques de nom d'amfitrió, etc., però en aquest article he intentat reflexionar Aquests són els punts que més m'han ajudat, i espero que ajudin els altres.

Font: www.habr.com

Afegeix comentari