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 proxyOs 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.