Optimización do rendemento de Apache2

Moitas persoas usan apache2 como servidor web. Non obstante, poucas persoas pensan en optimizar o seu rendemento, o que afecta directamente proporcionalmente a velocidade de carga das páxinas do sitio, a velocidade de procesamento dos scripts (en particular php), así como un aumento da carga da CPU e un aumento da cantidade de RAM utilizada.

Así, o seguinte manual debería axudar aos usuarios principiantes (e non só).
Todos os exemplos a continuación usáronse en Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

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

1. Desactivar módulos non utilizados

O primeiro método é simplemente desactivar os módulos que non utilizas:

A lista dos módulos utilizados actualmente pódese ver co comando:

apache2ctl -M

Para desactivar o módulo, use o comando:

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

En consecuencia, para activar o módulo, use o comando:

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

Teña en conta que ao usar a2dismod, o nome do módulo debe escribirse sen a palabra módulo en si.

Por exemplo, se estás na saída do comando apache2ctl -M serra módulo_proxy, entón para desactivalo necesitas usar o comando - a2dismod proxy

Os módulos que máis cargan o sistema (por experiencia persoal) son:

  • PHP, Ruby, Perl e outros módulos para varias linguaxes de script
  • SSL
  • Reescribe
  • CGI

Polo tanto, nos casos en que non necesites estes módulos, recoméndolles desactivar estes módulos.

Ademais, despois de desactivar calquera módulo, recomendo usar o comando - apache2ctl configtest, que comprobará a configuración dos sitios empregados e se algún dos módulos desactivados fose necesario para eles, xerará un erro.

2. Cambiando MPM (Módulo de procesamento múltiple) e usando php-fpm

Por defecto, despois da instalación, apache2 usa MPM Prefork (1 fío por cada conexión), o que reduce significativamente o rendemento, pero ao mesmo tempo mellora a estabilidade e a seguridade.

Pero para optimizar o rendemento, recomendo usar MPM Worker, que che permite usar varios fíos por conexión.

Para activalo usamos os seguintes comandos:

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

Non obstante, ao usar Worker podes atopar un problema porque... O módulo php7.3 depende do módulo Prefork.

Para resolver este problema, imos instalar o módulo php7.3-fpm, que se utilizará para 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  //Включаем модуль и конфиг для него

Paga a pena notar que o uso de php-fpm tamén reducirá a cantidade de RAM utilizada polo proceso apache2 e acelerará lixeiramente o procesamento dos scripts PHP.

3. Conclusión

Así, con accións tan sinxelas puidemos optimizar o rendemento e reducir a carga da máquina (neste caso RPI3).

Por suposto, hai centos doutras opcións de optimización, como habilitar a compresión (que é realmente útil, pero a maioría xa están activadas por defecto), cambiar a configuración de MPM (arquivos de configuración), desactivar Buscas de nomes de host, etc., pero neste artigo tentei reflexionar Estes son os puntos que máis me axudaron, e espero que axuden a outros.

Fonte: www.habr.com

Engadir un comentario