Nginx contre Apache: Principales caractéristiques, critères de performance et comment choisir

Divulgation: HostScore Nous pouvons percevoir des commissions sur nos liens, et certains fournisseurs paient pour un placement en avant sur des pages sélectionnées. Les données de test et de performance sont collectées indépendamment (voir notre méthodologieLes prix sont en USD sauf indication contraire.

Table des matières

Demandez à l'IA à propos de cette page :
ChatGPT
Claude
Perplexity
Grok
Google AI

Le Nginx et Apache Ce sont des produits matures, dotés de fonctionnalités riches et de performances élevées. Ils partagent une origine open source commune et peuvent être déployés sur des serveurs Windows ou Linux. 

Cependant, certaines différences essentielles peuvent vous inciter à choisir l'un plutôt que l'autre.

Par exemple, Apache est une solution complète qui prend en charge de nombreuses technologies et modules différents prêts à l'emploi. En revanche, Nginx s'appuie sur des modules tiers pour étendre ses fonctionnalités.

Pour voir quel serveur Web pourrait le mieux répondre à vos besoins, examinons de plus près ces options.

Marché

Apache, le serveur Web Hero original

Apache

Créé en 1995 par Robert McCool et à l'origine appelé le "Apache HTTP Server Project » (d'où le nom), Apache a été conçu pour créer un serveur robuste, de qualité commerciale et gratuit, même avec des modifications. Il est rapidement devenu populaire grâce à sa compatibilité avec de nombreux systèmes d'exploitation, d'Unix à Windows.

En raison de cette popularité de longue date, je considère Apache en tant que serveur web « héros original ». Robuste, bien documenté et soutenu par une communauté ouverte de développeurs sous l'égide de Apache Fondation du logiciel.

Nginx, le Titan d'une nouvelle ère

Nginx

Nginx (prononcé « Engine X ») est un serveur proxy HTTP et inverse, un serveur proxy de messagerie et un serveur proxy TCP/UDP générique utilisé pour héberger des sites Web et des applications de toutes tailles. Il a été publié pour la première fois par un développeur russe Igor SysoevL'objectif initial de Nginx était de résoudre le problème C10K qui Apache eu du mal à gérer. 

En 2019, Nginx a rejoint F5 Networks. F5 est une entreprise technologique spécialisée dans la sécurité des applications, la gestion multicloud et la prévention de la fraude en ligne.

Parts de marché et caractéristiques

Parts de marché

Comparez Nginx et Apache Parts de marché
Statistiques d'utilisation des serveurs web basées sur les données de W3Techs. Au cours des trois dernières années, Nginx et Apache se trouvent au sommet du marché des serveurs Web.

Différences Clés

FonctionnalitéNginxApache
Introduit20041995
Version stable actuellenginx 1.27.0Apache 2.4.63
ArchitectureÉvénementielAxé sur les processus
Open sourceOuiOui
Développement et supportApache FondationRéseaux F5
Plates-formes supportéesPrincipalement UnixUnix et Windows
Demandes simultanées multiplesOuiNon
Traitement de contenu dynamique natifNonOui
ModulaireOuiOui
ConfigurationÉditionpar répertoire via .htaccess
Demande d'interprétationPasse l'URIEmplacement du système de fichiers des passes

Architecture de base

Nginx et Apache partagent certaines similitudes dans leur architecture de base. Par exemple, ils utilisent tous les deux des processus maître-travailleur pour améliorer les performances. Ils ont même des fichiers de configuration similaires. Pourtant, les différences de style architectural entraînent une variation significative des performances à grande échelle.

Nginx possède une architecture événementielle respectueuse des ressources qui utilise de petites quantités constantes de mémoire sous charge. Cette caractéristique le rend idéal pour l'hébergement de sites Web à fort trafic ou ceux qui ont des pics de trafic intermittents.

ApacheL'architecture pilotée par processus de gère chaque connexion via un thread dédié, ce qui nécessite davantage de mémoire. Cependant, elle s'adapte mieux aux charges lourdes sur les machines dotées de davantage de cœurs de processeur et de RAM.

Utilisation de la mémoire

Nginx est connu pour ses hautes performances et sa faible consommation de ressources. D'autre part, Apache peut consommer beaucoup de mémoire, en particulier lors de l'exécution de plusieurs blocs de serveur. Alors que les deux utilisent de la mémoire pour gérer les requêtes HTTP, Nginx est plus léger. 

La conception de Apache signifiait qu'il engendrait un thread par connexion, et chaque thread utiliserait une certaine quantité de RAM. À mesure que le trafic augmentait, cela pouvait entraîner des problèmes, car davantage de RAM serait nécessaire, en particulier sur les serveurs disposant de moins de mémoire. Apache crée également de nouveaux processus pour chaque demande, même du même utilisateur.

Comparativement, Nginx utilise un processus pour gérer plusieurs connexions à la fois. 

PHP Manipulation

Étant donné que ces deux serveurs Web fonctionnent principalement avec PHP, la façon dont ils gèrent le code signifie un potentiel de performances important. Nginx ne s'exécute pas PHP directement par défaut. Au lieu de cela, il transmet la demande à PHP-FPM (FastCGI Process Manager), qui gère la demande et renvoie une réponse à Nginx, qui renvoie ensuite le contenu au client.

Comme Nginx n'attend pas de réponse de PHP-FPM pour servir une autre requête (de la même manière qu'il n'attend pas de réponse des clients lors de la diffusion de contenu statique), Nginx peut gérer plus de requêtes simultanément que Apache saura gérer.

Apache utilise un module appelé mod_php pour exécuter PHP code. Dans ce modèle, chaque fois qu'une requête HTTP arrive, Apache génère un nouveau processus ou thread (selon sa configuration) pour traiter cette requête. Ce processus est également responsable de la gestion de toute requête PHP demandes au sein de cette demande.

Ce modèle fonctionne, mais il a quelques inconvénients. D'une part, la création d'un nouveau processus pour chaque requête peut être intensive sur le système, surtout s'il y a de nombreuses requêtes simultanées. Génération d'un nouveau processus pour chaque PHP une requête dans une requête est encore plus intensive puisque le système d'exploitation doit générer un tout nouvel interpréteur pour chacune d'elles.

Benchmark de performance

Dans une rapport détaillé de référence des performances de CyberPanel, plusieurs tests clés mettent en évidence les différences entre Nginx et ApacheRegardez la vidéo suivante pour le processus de test complet.

En résumé:

  • NginxGère jusqu'à 10,000 2.5 connexions simultanées avec une faible empreinte mémoire. Lors des tests de performance, il diffuse du contenu statique jusqu'à XNUMX fois plus rapidement que Apache.
  • Apache:En comparaison, Apache est efficace, mais moins performant que Nginx pour le contenu statique. Grâce à son architecture pilotée par processus, ApacheLes performances de peuvent se dégrader en cas de forte concurrence en raison de la surcharge liée à la gestion de plusieurs processus.

Nginx contre Apache pour WordPress

Dans le contexte de WordPress performances, Nginx améliore considérablement les temps de chargement, en particulier pour le contenu statique, ce qui en fait un choix privilégié pour le trafic élevé WordPress sites. Son architecture pilotée par événements permet une gestion efficace des connexions simultanées, ce qui se traduit par des temps de réponse plus rapides et une charge serveur réduite.

Apache, d'autre part, offre un traitement de contenu dynamique robuste avec des modules comme mod_php, ce qui peut simplifier le déploiement pour WordPress sites qui s'appuient fortement sur du contenu dynamique. Cependant, Nginx offre généralement de meilleures performances et une meilleure efficacité des ressources pour WordPress environnements axés sur la diffusion de contenu statique.

Comment choisir entre Nginx et Apache

Comme vous pouvez le constater, il n'y a pas de vainqueur incontestable parmi ces mastodontes du serveur web. Cela dépend principalement des besoins du serveur web. 

Choisissez Apache si: 

  • Systèmes hérités et compatibilité: Apache est souvent le choix privilégié pour les systèmes qui l'utilisent depuis longtemps, en raison de sa présence durable sur le marché. Si votre infrastructure repose fortement sur .htaccess fichiers pour la configuration par répertoire, Apache est plus adapté car il prend en charge ces fichiers de manière native, permettant une configuration décentralisée et une flexibilité dans les environnements d'hébergement partagé.
  • Traitement de contenu dynamique:Si vos applications nécessitent un traitement intensif de contenu dynamique, tel que PHP, Scripts Python ou Ruby, Apache peut être avantageux grâce à sa capacité à intégrer des processeurs directement dans ses modules. Cette configuration simplifie l'exécution de scripts dynamiques directement sur le serveur.
  • Facilité d'utilisation et documentation: ApacheSon adoption généralisée lui confère une documentation abondante et un soutien communautaire. Il est ainsi plus facile de trouver des guides, des tutoriels et du support. Apache-problèmes liés, ce qui en fait une option plus conviviale pour les débutants ou ceux qui préfèrent une large base de connaissances.

Utilisez Nginx si :

  • Haute performance et ScalabilitéNginx est optimisé pour gérer un grand nombre de connexions simultanées, ce qui le rend idéal pour les sites web à fort trafic ou les applications nécessitant une évolutivité. Son architecture événementielle lui permet de gérer de nombreuses connexions avec une faible consommation de mémoire, ce qui le rend efficace pour la diffusion de contenu statique.
  • Équilibrage de charge et proxy inverseNginx est souvent utilisé comme proxy inverse et équilibreur de charge, répartissant le trafic entrant sur plusieurs serveurs back-end. Cette fonctionnalité fait de Nginx un excellent choix pour les configurations et environnements haute disponibilité nécessitant une répartition efficace de la charge.
  • Diffusion de contenu statique:Si votre application diffuse une quantité importante de contenu statique, tel que des images, du CSS ou JavaFichiers de script : Nginx excelle par sa rapidité et son efficacité à servir directement les fichiers statiques. Son architecture permet une livraison rapide des ressources statiques avec une charge minimale.
  • Simplicité de configuration:Bien que Nginx ne prenne pas en charge .htaccess La syntaxe de configuration des fichiers est simple et intuitive. Cette simplicité est avantageuse pour ceux qui souhaitent maintenir des configurations de serveur claires et simples.

Utilisation combinée

Pour de nombreuses configurations, l'utilisation des deux Apache et Nginx ensemble peuvent exploiter les atouts de chacun.

Une configuration courante consiste à placer Nginx comme proxy inverse devant ApacheCela permet à Nginx de gérer efficacement le contenu statique et les connexions simultanées, tout en Apache Gère le traitement dynamique du contenu. Cette approche hybride permet d'optimiser les performances et l'utilisation des ressources dans des environnements web complexes.

Réflexions finales

Que vous couriez Apache ou Nginx dépendra de vos besoins et du matériel utilisé. Vous pouvez utiliser l'une ou l'autre option pour le service. PHP sites Internet. Mais il y a beaucoup plus à considérer que cela. 

Si votre site web est simple, vous ne remarquerez peut-être aucune différence. Mais si votre site génère plus de trafic et se développe, vous devrez comprendre les performances et l'évolutivité de chaque serveur sous charge.

About the Author: Timothy Shim

Timothy Shim est un écrivain, un éditeur et un passionné de technologie. Débutant sa carrière dans le domaine des technologies de l'information, il a rapidement trouvé sa place dans l'imprimé et a depuis travaillé avec des titres de médias internationaux, régionaux et nationaux, notamment ComputerWorld, PC.com, Business Today et The Asian Banker. Son expertise porte sur le domaine des technologies, tant du point de vue des consommateurs que des entreprises.
Photo de l'auteur

Plus de HostScore

Trouvez un hébergeur web basé sur de véritables données de test

HostScore Notre outil de recherche d'hébergement web compare les hébergeurs en se basant sur le TTFB, la disponibilité, les résultats des tests de charge, la latence et les indicateurs clés de performance web (Core Web Vitals). Il combine ces données avec le type de votre site web, le trafic prévu et votre budget afin de vous recommander les solutions les plus adaptées.

Découvrez pourquoi chaque hébergeur correspond à vos besoins, quelles limitations vérifier et à quels compromis vous attendre.

Essayez Web Hosting Finder (gratuit)