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