Définition
NGINX (prononcé "engine-x") est un serveur web open source haute performance et un reverse proxy qui alimente une grande part du web moderne. Il sert directement les fichiers statiques, proxifie le trafic vers des backends applicatifs tels que PHP-FPM, Node.js et des serveurs Python WSGI/ASGI, termine les connexions SSL/TLS, répartit la charge entre plusieurs serveurs amont et met en cache les réponses HTTP pour réduire la charge du backend. NGINX est le serveur web par défaut sur la plupart des VPS et des serveurs Linux dédiés, ayant dépassé Apache comme standard pour les sites à fort trafic grâce à son architecture asynchrone pilotée par événements : un petit nombre fixe de processus worker gère chacun des milliers de connexions via des E/S non bloquantes, plutôt que le modèle traditionnel d’Apache d’un processus ou thread par connexion, qui consomme bien plus de mémoire sous charge. Cela compte surtout au-delà de quelques centaines d’utilisateurs simultanés ; pour un petit site vitrine, le choix a peu d’impact. La plupart des hébergeurs WordPress managés font tourner NGINX, souvent associé à un cache FastCGI, sous le capot, même si la configuration basée sur .htaccess ne s’applique pas.
Comment cela fonctionne
NGINX se configure via un fichier texte hiérarchique (nginx.conf) qui définit des servers, locations, upstreams et caches. Il peut être un pur serveur web, un pur reverse proxy, ou les deux. NGINX Plus est la version commerciale payante avec des fonctionnalités supplémentaires ; la version open source de NGINX est celle que la plupart des sites utilisent en pratique.
Pourquoi c'est important
Pour le contenu statique et le reverse proxying, NGINX est plus rapide et plus léger qu’Apache. Pour les sites à fort trafic, la différence est importante : NGINX peut gérer des dizaines de milliers de connexions simultanées sur un matériel modeste. La plupart des stacks de production utilisent désormais NGINX devant un serveur d’applications, Apache étant réservé à la compatibilité héritée.