Apache et Nginx sont les deux serveurs web Open Source les plus utilisés au monde. Ensemble Ils traitent la moitié du trafic Internet.
Retrouvez dans cet article une présentation et un test de performance Apache VS Nginx.
Serveur Apache : Présentation
Le serveur web Apache a été créé en 1995 et est développé sous la direction de la fondation « Apache Software Foundation » depuis 1999.
Il est le plus populaire des serveurs Web depuis 1996, de ce fait il est très bien documenté et beaucoup d’autres projets intègrent ses standards.
Il est souvent choisi par les administrateurs pour sa flexibilité et sa puissance.
Son point fort : Il peut interpréter un grand nombre de langages sans passer par un logiciel externe.
Serveur Nginx : Présentation
Nginx, existe depuis 2002. Il a été conçu dans le but de pouvoir gérer un grand nombre de connexions simultanées. Là où Apache est limité à 256 connections simultanés, Nginx peut en traiter plus de 10000.
Sa popularité s’est faite sur le fait qu’il consomme peu de mémoire et est très efficace pour gérer du contenu statique. Il est le plus souvent utilisé pour gérer le contenu statique et relayer le contenu dynamique à un autre service, comme Apache ou Lighttpd.
Test de performance Apache VS Nginx
Comparaison sur du contenu statique
Nous allons utiliser le logiciel « Apache Benchmark » ou « ab » pour réaliser nos tests. Le test sera fait sur un site réalisé avec Prestashop 1.6 avec la fonction « URL simplifiée » activée.
D’abord sur un VPS formule M (2 coeurs et 8Go de RAM), puis sur un VPS formule XL (4 coeurs et 16Go de RAM).
Commençons avec le VPS M. Nous utiliserons ab pour générer 6000 requêtes qui seront envoyées par paquet de 250. Nous appellerons une URL pointant sur une image JPG de 27.08Ko :
ab -n 6000 -c 250 https://www.monsitedetest.tk/201-large_default/monproduit-de-test.jpg
Apache (VPS-M – Contenu statique)
Time taken for tests: 208.295 seconds ## Temps nécessaire pour réaliser le test Complete requests: 6000 ## Nombre de requêtes envoyées Failed requests: 5948 ## Nombre de requêtes échouées (non traitées par le serveur Web) Requests per second: 28.81 [#/sec] (mean) ## Nombre de requêtes traitées par seconde Time per request: 34.716 [ms] (mean, across all concurrent requests) ## Temps moyen pour traiter une requête
Nginx (VPS-M – Contenu statique)
Time taken for tests: 0.864 seconds Complete requests: 6000 Failed requests: 0 Requests per second: 6942.56 [#/sec] (mean) Time per request: 0.144 [ms] (mean, across all concurrent requests)
Comparaison sur du contenu dynamique
Réalisons les mêmes tests avec du contenu dynamique. Sur le même Prestashop, nous appellerons une page « catégorie » :
ab -n 6000 -c 250 https://www.monsitedetest.tk/201-large_default/23-macategorie
Apache (VPS-M – Contenu dynamique)
Time taken for tests: 1067.825 seconds Complete requests: 6000 Failed requests: 2492 Requests per second: 5.62 [#/sec] (mean) Time per request: 177.971 [ms] (mean, across all concurrent requests)
Nginx (VPS-M – Contenu dynamique)
Time taken for tests: 27.289 seconds Complete requests: 6000 Failed requests: 139 Requests per second: 219.87 [#/sec] (mean) Time per request: 4.548 [ms] (mean, across all concurrent requests)
Conclusion
Comme nous pouvons le voir Nginx est mieux armé pour servir du contenu statique, alors que les points forts d’Apache se situent au niveau de sa configuration.
L’un est plus rapide pour des sites simples, l’autre offre plus de possibilité de paramétrage. Par exemple, Nginx ne permet pas d’utiliser de fichier .htaccess.
Le choix entre les deux doit se faire en fonction de vos besoins. Apache peut convenir dans pratiquement tous les cas de figure, Nginx quant à lui conviendra pour les sites avec
peu de contenu dynamique, type WordPress.
Retrouvez toutes les offres Serveur dédié VPS sur Lws.fr !