Otimização de desempenho apache2

Muitos usam o apache2 como um servidor web. No entanto, poucas pessoas pensam em otimizar seu desempenho, o que afeta diretamente a velocidade de carregamento de páginas no site, a velocidade de processamento de scripts (em particular o php), bem como o aumento da carga da CPU e o aumento da quantidade de RAM usada.

Portanto, o manual a seguir deve ajudar os usuários iniciantes (e não apenas).
Todos os exemplos abaixo foram usados ​​no Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Então, vamos começar.

1. Desativando Módulos Não Utilizados


O primeiro método é a desativação banal de módulos que você não usa:

A lista de módulos usados ​​atualmente pode ser visualizada com o comando:

apache2ctl -M 

Para desativar o módulo, use o comando:

 a2dismod * * 

Por conseguinte, para ativar o módulo, use o comando:

 a2enmod * * 

Observe que, ao usar a2dismod , o nome do módulo deve ser escrito sem a própria palavra módulo.

Por exemplo, se você viu proxy_module na saída do comando apache2ctl -M , para desativá-lo, use o comando - a2dismod proxy

Os mais módulos de carregamento do sistema (por experiência pessoal) são:

  • PHP, Ruby, Perl e outros módulos para várias linguagens de script
  • SSL
  • Reescrever
  • Cgi

Portanto, nos casos em que você não precisa desses módulos, recomendo desabilitá-los.

Além disso, depois de desativar um módulo, recomendo usar o comando apache2ctl configtest , que verificará a configuração dos sites utilizados e, se algum dos módulos desativados for necessário, ocorrerá um erro.

2. Altere o MPM (Multi-Processing Module) e use php-fpm


Por padrão, após a instalação, o apache2 usa o MPM Prefork (1 thread por 1 conexão), o que reduz significativamente o desempenho, mas ao mesmo tempo melhora a estabilidade e a segurança.

Mas, para otimizar o desempenho, recomendo usar o MPM Worker, que permite usar vários threads em uma conexão ao mesmo tempo.

Para habilitá-lo, use os seguintes comandos:

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

No entanto, ao usar Worker, você pode encontrar um problema porque O módulo php7.3 depende do módulo Prefork.

Para resolver esse problema, instale o módulo php7.3-fpm, que será usado para elaborar os 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 ressaltar que o uso do php-fpm também reduzirá a quantidade de RAM usada pelo processo apache2 e acelerará levemente o processamento dos scripts php.

3. Conclusão


Assim, com essas ações simples, conseguimos otimizar o desempenho e reduzir a carga na máquina (neste caso, RPI3).

Obviamente, existem centenas de outras opções de otimização, como ativar a compactação (o que é realmente útil, mas na maioria das vezes já está habilitado por padrão), alterar os parâmetros do MPM (arquivos de configuração), desabilitar o HostnameLookups etc. etc., mas neste artigo tentei refletir esses são os pontos que mais me ajudaram, e espero que eles ajudem os outros.

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


All Articles