Beaucoup utilisent apache2 comme serveur web. Cependant, peu pensent à optimiser ses performances, ce qui affecte directement la vitesse de chargement des pages du site, la rapidité de traitement des scripts (notamment PHP), ainsi que la charge du CPU et l'augmentation de l'utilisation de la RAM.
Ainsi, le guide suivant doit 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.
Alors, commençons.
1. Désactivation des modules inutilisés
La première méthode consiste simplement à désactiver les modules que vous n'utilisez pas :
La liste des modules actuellement utilisés peut être affichée avec la commande :
apache2ctl -MPour désactiver un module, on utilise la commande :
a2dismod *nom du module*En revanche, pour activer un module, on utilise la commande :
a2enmod *nom du module*Notez qu'en utilisant a2dismod, le nom du module doit être écrit sans le mot module.
Par exemple, si vous avez vu dans la sortie de la commande apache2ctl -M proxy_module , pour le désactiver, il faut utiliser la commande —a2dismod proxy Les modules les plus gourmands en ressources système (d'après mon expérience personnelle) sont :
PHP, Ruby, Perl et autres modules pour divers langages de script
- Rewrite
- SSL
- CGI
- Donc, dans les cas où ces modules ne vous sont pas nécessaires, je recommande de les désactiver.
Aussi, 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 signalera une erreur si l'un des modules désactivés était nécessaire.2. Changement de MPM (Module de Multi-Traitement) et utilisation de php-fpm
Par défaut, après installation, apache2 utilise MPM Prefork (1 processus par connexion), ce qui réduit significativement les performances, mais améliore la stabilité et la sécurité.
Mais pour optimiser les performances, je recommande d'utiliser MPM Worker, qui permet d'utiliser plusieurs processus sur une seule connexion.
Pour l'activer, utilisons les commandes suivantes :
a2dismod mpm_prefork \/\/ Désactiver prefork a2dismod php7.3 \/\/ Désactiver le module php, qui dépend de prefork a2enmod mpm_worker \/\/ Activer worker
Cependant, lors de l'utilisation de Worker, vous pourriez rencontrer un problème, car le module php7.3 dépend du module Prefork.
.
Pour résoudre ce problème, nous allons installer le module php7.3-fpm, qui sera utilisé pour exécuter des scripts PHP :
apt-get update && apt-get install php7.3-fpm //Installation
systemctl enable php7.3-fpm && systemctl start php7.3-fpm //Ajout au démarrage automatique et démarrage
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //Activation du module et de sa configuration
Il convient de 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 l'exécution des scripts PHP.
3. Conclusion
Ainsi, par ces simples actions, nous avons pu optimiser la performance et réduire la charge sur la machine (dans ce cas RPI3).
Bien sûr, il existe des centaines d'autres options d'optimisation, comme l'activation de la compression (qui est effectivement utile, mais qui est généralement déjà activée par défaut), la modification des paramètres (fichiers de configuration) MPM, la désactivation de HostnameLookups, etc., mais dans cet article, j'ai essayé de présenter précisément les points qui m'ont le plus aidé, et j'espère qu'ils aideront d'autres.
Source : habr.com
