Logiciels Apache et Nginx : les principales différences
La plupart des frontales Web sur Internet sont traités par des logiciels Apache et Nginx Opensource . Globalement, ils offrent les mêmes fonctionnalités et sont plus ou moins interchangeable. Voici donc une comparaison Apache et Ngnix
Mais, quand on y regarde de près, on se rend vite compte que ces 2 solutions sont conceptuellement différente, et que, de fait, il y a des avantages et inconvénients dans les 2 camps.
Logiciels Apache et Nginx : les principales différentes
Nous allons détailler quelques différences entre ces logiciels.
Mode de licence des logiciels Apache et Nginx
Apache HTTPD sous licence Apache-2.0 et Nginx sous licence BSD 2 sont 2 logiciels libres. Mais au contraire de Apache qui est totalement libre, il existe une version commerciale de Nginx nommé Nginx Plus qui ajoute des fonctionnalités. Dans la bibliothèque des modules disponibles pour Nginx (dont les modules thiers), certains modules ne sont pas libre/gratuit.
Performance des 2 solutions
Il est de notoriété public que Nginx fait preuve de très bonne performance. Le secret de cette rapidité est sa conception moderne en tant que système asynchrone.
Apache, conçu il y a plus de 20 ans, s’adapte et améliore régulièrement ses performances. Dans la version 2.4 avec le MPM Event, les performances sont bonnes. L’écart est faible et c’est le cas d’utilisation qui fera la différence. Dans un cas d’utilisation, c’est l’un qui sera plus rapide et dans l’autre, c’est l’autre.
Modularité des logiciels Apache et Nginx
Pour une utilisation en production, ce qui est souvent l’objectif d’une mise en oeuvre de Apache ou Nginx, il faut prendre en compte la facilité d’installation, d’évolution et surtout la capacité à corriger rapidement une faille de sécurité. En d’autre terme, il faut avoir le coût d’acquisition et de maintien en condition opérationnelle le plus faible possible.
Là, les 2 solutions ne se valent pas.
Apache est totalement modulaire. On ajoute et on retire les modules dont on a besoin très simplement (une commande pour activer/désactiver le module + une commande pour recharger Apache).
Nginx ne dispose de cette fonctionnalité que depuis la version 1.9.11, et que pour quelques rares modules qui seront compilés dans le mode adéquat. Ceci implique qu’en cas de besoin d’une fonctionnalité qui n’est pas incluse dans l’installation actuelle, il faut recompiler le programme. Avec une bonne expertise de Nginx, cette opération peut être effectuée sans arrêt de service.
Par contre, le coût de l’intervention est obligatoirement plus élevé qu’avec Apache.
Donc, lequel choisir ?
La réponse est : cela dépend du besoin et du cas d’utilisation !
1- Si votre cas d’utilisation est : proxy reverse (avec cache ou pas), proxy mail, frontal web avec fonctionnalités simples nécessaires sur le frontal Web et avec peu de besoin d’évolution sur 2 à 3 ans, il faut s’orienter vers Nginx.
2-Si votre projet est très peu cadré, et va certainement demander de multiples re-configurations de votre frontal web pour s’adapter aux évolutions, si vous avez besoin d’un répartiteur de charge avec gestion fine des backend servers, etc …, il faut s’orienter vers Apache.
Dans tous les cas, on fait une grille de décision et on choisit celui qui convient le mieux.
Et Varnish, on l’utilise quand ?
Varnish est un très bon accélérateur Web open-source (reverse proxy cache). Il ne répond qu’au besoin d’accélérer les réponses de nos frontaux/applications sur Internet. Et comme, il est très spécialisé, il fait très bien son travail.
Ses concepts de fonctionnement, le language VCL et son adhérence forte au protocole HTTP en font un outil qui est un peu plus difficile à appréhender/adapter à une application spécifique.
Pour couvrir un besoin de reverse proxy cache « basic » qui correspondra à une gestion de cache conforme à la RFC2616 qui normalise le protocole HTTP/1.1, on va plutôt s’orienter sur une configuration Nginx en reverse proxy cache.
On obtient un bon gain de performance avec une configuration simple et facile à maintenir.
Beaucoup de logiciel qui embarque une frontal Web ont fait le choix de cette configuration pour avoir de bonnes performances.
Ensuite, si le gain de performance n’est pas suffisant et qu’il faut mettre en oeuvre des configurations spécialisées pour accélérer des URI, vous devrez utiliser Varnish.
Faites appel à un expert Syloé
Contactez-nous pour une analyse de vos besoins et découvrez les logiciels open source que nous mettons en place.
Debian 9 Stretch release : upgrade & new features - Blog Syloé
[…] system. We also welcome the package upgrades affecting a major part of our customer-base : Apache, Perl, MariaDB, PHP, PostgreSQL, Tomcat, Python, OpenJDK, Ruby and […]
Supervision et métrologie Zabbix : principes et fonctionnement - Blog Syloé
[…] et les valeurs de ces variables sont envoyées au serveur. Côté interface graphique serveur (Apache ou Nginx au choix suivant vos préférences ), on crée des éléments avec les variables que le script a […]