optimización del rendimiento apache2

Mucha gente usa apache2 como su servidor web. Sin embargo, pocas personas piensan en optimizar su rendimiento, lo que afecta directamente la velocidad de carga de la página del sitio, la velocidad de procesamiento de los 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 novatos (y no solo).
Todos los ejemplos a continuación se usaron en Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Por lo tanto, vamos a empezar.

1. Deshabilitar módulos no utilizados

El primer método es simplemente deshabilitar 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, se utiliza el comando:

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

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

Por ejemplo, si está en la salida del comando apache2ctl -M he visto módulo_proxy, luego para deshabilitarlo, debe usar el comando - proxy a2dismod

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

  • PHP, Ruby, Perl y otros módulos para varios lenguajes de programación
  • SSL
  • Volver a escribir
  • CGI

Entonces, en los casos en que no necesite estos módulos, recomiendo deshabilitarlos.

Además, después de deshabilitar cualquier módulo, recomiendo usar el comando: apache2ctlconfigtest, que comprobará la configuración de los sitios utilizados y si alguno de los módulos deshabilitados fuera necesario para ellos, dará error.

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

De forma predeterminada, después de la instalación, apache2 usa MPM Prefork (1 subproceso 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 varios subprocesos por 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, al usar 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 procesar 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 de apache2 y acelerará ligeramente el procesamiento de los scripts de php.

3. Заключение

Así, 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 la mayoría ya está habilitada de forma predeterminada), cambiar los parámetros (archivos de configuración) de MPM, deshabilitar HostnameLookups, etc., pero en este artículo traté de reflejar esos son los puntos que más me han ayudado, y espero que ayuden a otros.

Fuente: habr.com

Añadir un comentario