Optimisation des performances apache2

Beaucoup utilisent apache2 comme serveur Web. Cependant, peu de gens pensent à optimiser ses performances, ce qui affecte directement la vitesse de chargement des pages sur le site, la vitesse de traitement des scripts (notamment php), ainsi que l'augmentation de la charge CPU et l'augmentation de la quantité de RAM utilisée.

Ainsi, le manuel suivant devrait aider les utilisateurs débutants (et pas seulement).
Tous les exemples ci-dessous ont été utilisés sur Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Commençons donc.

1. Désactiver les modules inutilisés


La première méthode est la désactivation banale des modules que vous n'utilisez pas:

La liste des modules actuellement utilisés peut être consultée avec la commande:

apache2ctl -M 

Pour désactiver le module, utilisez la commande:

 a2dismod * * 

En conséquence, pour activer le module, utilisez la commande:

 a2enmod * * 

Veuillez noter que lorsque vous utilisez a2dismod , le nom du module doit être écrit sans le mot module lui-même.

Par exemple, si vous avez vu proxy_module dans la sortie de la commande apache2ctl -M , puis pour le désactiver, utilisez la commande - a2dismod proxy

Les modules les plus chargés par le système (par expérience personnelle) sont:

  • PHP, Ruby, Perl et autres modules pour différents langages de script
  • SSL
  • Réécrire
  • CGI

Donc, dans les cas où vous n'avez pas besoin de ces modules, je recommande de désactiver ces modules.

De plus, après avoir désactivé un module, je recommande d'utiliser la commande - apache2ctl configtest , qui vérifiera la configuration des sites utilisés et si l'un des modules désactivés était nécessaire pour eux, cela donnera une erreur.

2. Modifiez MPM (Multi-Processing Module) et utilisez php-fpm


Par défaut, après l'installation, apache2 utilise MPM Prefork (1 thread pour 1 connexion), ce qui réduit considérablement les performances, mais améliore en même temps la stabilité et la sécurité.

Mais pour optimiser les performances, je recommande d'utiliser MPM Worker, qui vous permet d'utiliser plusieurs threads sur une connexion à la fois.

Pour l'activer, utilisez les commandes suivantes:

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

Cependant, lorsque vous utilisez Worker, vous pouvez rencontrer un problème car Le module php7.3 dépend du module Prefork.

Pour résoudre ce problème, installez le module php7.3-fpm, qui sera utilisé pour élaborer des 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 //      

Il est à noter que l'utilisation de php-fpm réduira également la quantité de RAM utilisée par le processus apache2 et accélérera légèrement le traitement des scripts php.

3. Conclusion


Ainsi, avec de telles actions simples, nous avons pu optimiser les performances et réduire la charge sur la machine (dans ce cas, RPI3).

Bien sûr, il existe des centaines d'autres options d'optimisation, telles que l'activation de la compression (ce qui est vraiment utile, mais pour la plupart, elle est déjà activée par défaut), la modification des paramètres (fichiers de configuration) de MPM, la désactivation de HostnameLookups, etc., mais dans cet article, j'ai essayé de réfléchir ce sont les points qui m'ont le plus aidé et j'espère qu'ils aideront les autres.

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


All Articles