Otimização de desempenho do Apache2

Muitas pessoas usam o Apache2 como servidor web. Porém, poucas pessoas pensam em otimizar seu desempenho, o que afeta diretamente proporcionalmente a velocidade de carregamento das páginas do site, a velocidade de processamento de scripts (em particular php), bem como o aumento da carga da CPU e o aumento da quantidade de RAM utilizada.

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

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

1. Desativando módulos não utilizados

O primeiro método é simplesmente desabilitar os módulos que você não usa:

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

apache2ctl -M

Para desabilitar o módulo, use o comando:

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

Assim, para habilitar o módulo, use o comando:

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

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

Por exemplo, se você estiver na saída do comando apache2ctl-M serra módulo_proxy, então para desativá-lo você precisa usar o comando - proxy a2dismod

Os módulos que mais carregam o sistema (por experiência pessoal) são:

  • PHP, Ruby, Perl e outros módulos para diversas linguagens de script
  • SSL
  • Reescrever
  • CGI

Portanto, nos casos em que você não precisa desses módulos, recomendo desabilitar esses módulos.

Além disso, após desabilitar qualquer módulo, recomendo usar o comando - teste de configuração apache2ctl, que irá verificar a configuração dos sites utilizados e se algum dos módulos desabilitados for necessário para eles, irá gerar um erro.

2. Alterando MPM (Módulo Multi-Processamento) e usando php-fpm

Por padrão, após a instalação, o Apache2 usa 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 por conexão.

Para habilitá-lo usamos os seguintes comandos:

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

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

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

É importante notar que o uso do php-fpm também reduzirá a quantidade de RAM usada pelo processo Apache2 e acelerará um pouco o processamento de scripts PHP.

3. Conclusão

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

Claro, existem centenas de outras opções de otimização, como habilitar a compactação (que é muito útil, mas a maioria já está habilitada por padrão), alterar as configurações do MPM (arquivos de configuração), desabilitar HostnameLookups, etc., mas neste artigo tentei refletir Esses são os pontos que mais me ajudaram e espero que ajudem outras pessoas.

Fonte: habr.com

Adicionar um comentário