Optimización del rendimiento apache2

Muchos usan apache2 como servidor web. Sin embargo, pocas personas piensan en optimizar su rendimiento, lo que afecta directamente la velocidad de carga de páginas en el sitio, la velocidad de procesamiento de scripts (en particular php), así como el aumento de la carga de la CPU y el aumento de la cantidad de RAM utilizada.

Por lo tanto, el siguiente manual debería ayudar a los usuarios principiantes (y no solo).
Todos los ejemplos a continuación se utilizaron en Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Entonces comencemos.

1. Deshabilitar módulos no utilizados


El primer método es la desactivación banal de los módulos que no usa:

La lista de módulos utilizados actualmente se puede ver con el comando:

apache2ctl -M 

Para deshabilitar el módulo, use el comando:

 a2dismod * * 

En consecuencia, para habilitar el módulo, use el comando:

 a2enmod * * 

Tenga en cuenta que cuando se utiliza a2dismod , el nombre del módulo debe escribirse sin la palabra módulo en sí.

Por ejemplo, si vio proxy_module en la salida del comando apache2ctl -M , para deshabilitarlo, use el comando - a2dismod proxy

Los módulos que más cargan el sistema (por experiencia personal) son:

  • PHP, Ruby, Perl y otros módulos para varios lenguajes de script
  • SSL
  • Reescribir
  • Cgi

Entonces, en aquellos casos en los que no necesita estos módulos, le recomiendo deshabilitarlos.

Además, después de deshabilitar un módulo, recomiendo usar el comando - apache2ctl configtest , que verificará la configuración de los sitios utilizados y si alguno de los módulos deshabilitados fue necesario para ellos, dará un error.

2. Cambie MPM (Módulo de procesamiento múltiple) y use php-fpm


Por defecto, después de la instalación, apache2 usa MPM Prefork (1 hilo por 1 conexión), lo que reduce significativamente el rendimiento, pero al mismo tiempo mejora la estabilidad y la seguridad.

Pero para optimizar el rendimiento, recomiendo usar MPM Worker, que le permite usar múltiples hilos en una conexión a la vez.

Para habilitarlo, use los siguientes comandos:

 a2dismod mpm_prefork // prefork a2dismod php7.3 //  php,    prefork a2enmod mpm_worker // worker 

Sin embargo, cuando usa Worker, puede encontrarse con un problema porque El módulo php7.3 depende del módulo Prefork.

Para resolver este problema, instale el módulo php7.3-fpm, que se utilizará para resolver los 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 //      

Vale la pena señalar que el uso de php-fpm también reducirá la cantidad de RAM utilizada por el proceso apache2 y acelerará ligeramente el procesamiento de los scripts php.

3. Conclusión


Por lo tanto, con acciones tan simples, pudimos optimizar el rendimiento y reducir la carga en la máquina (en este caso, RPI3).

Por supuesto, hay cientos de otras opciones de optimización, como habilitar la compresión (que es realmente útil, pero en su mayor parte ya está habilitada de forma predeterminada), cambiar los parámetros (archivos de configuración) de MPM, deshabilitar HostnameLookups, etc., pero en este artículo intenté reflejar Esos son los puntos que más me han ayudado, y espero que ayuden a otros.

Source: https://habr.com/ru/post/444732/


All Articles