Par défaut, Plesk utilise NGINX en Reverse proxy d’Apache. Mais cette configuration par défaut est-elle optimale ? Quel est l’impact sur les performances ? Pour répondre à ces questions, j’ai effectué des tests de charge sur un VPS Hetzner (8 cœurs AMD Epyc) pour mesurer l’impact de l’activation d’NGINX comme reverse proxy sur les performances globales.
Sommaire
Contexte et Configuration
Dans le cadre de ce benchmark, j’ai comparé les performances du serveur en activant et en désactivant NGINX. J’ai également testé l’activation du cache de NGINX (et cela change tout !).
Les tests de charge ont été réalisés avec ApacheBench (ab) en envoyant localement 5000 requêtes avec une concurrence de 200 requêtes simultanées. Ce pour que le test dure suffisamment longtemps et que cela limite la marge d’erreur. Il est à noter que le site de test est très léger et performant par rapport à la moyenne, avec seulement 50 à 80ms de TTFB (temps de réponse).
Voici les configurations principales :
- Serveur : VPS Hetzner 8 cœurs (AMD Epyc)
- Serveur Web : Plesk 18.0.65 avec Apache + NGINX comme reverse proxy
- Site de test : LRob.fr un site WordPress FSE, thème Twenty Twenty-Four avec cache Breeze
- Commandes de test :
ab -n 5000 -c 200 https://www.lrob.fr/
Configurations NGINX
Résultats des Tests de Performance
Nginx | Temps total pour 5000 requêtes | Requêtes par seconde | Temps moyen par requête | Débit de transfert | Performances |
---|---|---|---|---|---|
Activé | 9.400 s | 531.94 | 375.984 ms | 16 572.67 Ko/s | 100% |
Désactivé | 7.045 s | 709.74 | 281.794 ms | 22 130.80 Ko/s | 133.42% |
Activé (cache statique) | 5.734 s | 884.26 | 226.177 ms | 27567.59 | 166.24% |
Analyse : Impact de NGINX sur les Performances
Avec la configuration par défaut (NGINX activé), le serveur fonctionne correctement, mais un bottleneck du CPU a été constaté. L’utilisation CPU globale (tous les cœurs) ne dépasse pas les 85 % lors du test de charge, avec un process NGINX qui est bloqué également autour de 85%.
Sans NGINX, Apache gère directement les requêtes. Les résultats montrent une amélioration de +33% des performances.
Mais la surprise est lorsque le cache NGINX est activé et gère directement les fichiers statiques. On observe +66% de gains de performances ! Et ce n’est pas tout : on observé également une réduction d’utilisation des cœurs CPU à 30%, laissant une importante marge de CPU disponible pour d’autres usages essentiels comme PHP-FPM ou MariaDB/MySQL. NGINX est cependant limité à 99% d’utilisation CPU (donc un cœur) : Peut-être est-il possible d’étendre son utilisation à plusieurs cœurs CPU et de décupler encore les résultats. Lors du test, j’avais encore 5 à 6 cœurs CPU disponibles, de quoi potentiellement multiplier ce résultat par 2 ou 3. Cela mérite d’être étudié ultérieurement.
Autres considérations concernant NGINX et Plesk
Plesk favorise l’utilisation d’NGINX avec plusieurs avantages qui peuvent justifier son activation :
- Génération de certificats améliorée : Plesk permet par exemple de générer un certificat pour le webmail seulement, uniquement lorsque NGINX est en place.
- Sécurité : Des fonctions comme OCSP Stapling sont dispo en 1 clic, uniquement avec NGINX
D’autres avantages m’échappent peut-être. L’inconvénient est bien-sûr que vous avez alors deux applicatifs web qui augmentent légèrement la complexité de l’installation.
Conclusion
L’utilisation de NGINX comme reverse proxy sous Plesk peut être extrêmement puissante pour des sites statiques, ou lorsque combiné à un bon système de cache (voir comparatif des cache pour WordPress). Mais selon mon test, il est indispensable de modifier les réglages NGINX pour obtenir un gain de performances plutôt qu’une réduction en comparaison à Apache seul.
Par ailleurs, les résultats peuvent varier fortement en fonction de vos applicatifs finaux (vos sites) et de leur cache. Utilisez si besoin ma méthodologie du test pour faire vos propres mesures et comparer. A ce sujet, vos retours m’intéressent : partagez vos résultats en commentaires !
Laisser un commentaire