Nginx : rôle, usages et configuration du serveur

Auteur : Publié le

En bref : Nginx est un logiciel serveur qui reçoit les requêtes des navigateurs et fournit les fichiers du site ou transmet le trafic à une application. Il peut aussi gérer les connexions chiffrées HTTPS, répartir le trafic entre plusieurs serveurs et conserver des copies des réponses en cache. Sur un hébergement infogéré, le prestataire s’en charge généralement ; sur votre propre serveur, sa configuration peut vous incomber.

Quel rôle joue Nginx à l’ouverture d’une page ?

Nginx, qui se prononce « engine-x », est avant tout un serveur HTTP, c’est-à-dire un programme qui gère les communications permettant de récupérer des pages web. Il ne faut pas le confondre avec un serveur physique ou une machine virtuelle : Nginx s’exécute sur cette machine aux côtés d’autres programmes.

Lorsque vous saisissez l’adresse d’un site, le DNS — le système qui associe les noms de domaine à des adresses réseau — aide le navigateur à trouver le serveur. Le navigateur établit une connexion et envoie une requête, par exemple pour obtenir la page d’accueil. Si le trafic arrive à Nginx, le programme détermine comment traiter la requête selon sa configuration, notamment le nom de domaine et le chemin dans l’adresse.

Nginx peut renvoyer directement des fichiers statiques, c’est-à-dire des ressources enregistrées à l’avance : documents HTML, feuilles de style CSS, scripts JavaScript ou images. En revanche, ce n’est ni un système de gestion de contenu ni une base de données. Il ne crée pas à lui seul l’interface d’administration d’une boutique et ne calcule pas le contenu du panier : ces tâches relèvent de l’application.

Proxy inverse, HTTPS et autres usages

Une autre fonction importante de Nginx est celle de proxy inverse, un intermédiaire qui reçoit les requêtes des utilisateurs pour le compte de l’application. Le navigateur se connecte à Nginx, qui transmet la requête au processus ou au serveur approprié, puis renvoie la réponse reçue. L’application n’a donc pas besoin d’accepter directement les connexions provenant d’internet.

Ses usages courants comprennent :

Nginx utilise une architecture événementielle : un processus de travail peut gérer de nombreuses connexions en réagissant lorsque des données sont prêtes à être lues ou écrites. Cette approche aide à traiter efficacement les connexions simultanées, mais installer le programme ne suffit pas à accélérer n’importe quel site. Des requêtes lentes à la base de données peuvent toujours retarder les réponses.

Exemple : une boutique et son application derrière Nginx

Imaginez une boutique dont Nginx gère le domaine boutique.example. Une requête demandant la photo d’un produit peut être traitée par la lecture d’un fichier sur le disque. Une requête concernant le panier est, elle, transmise à l’application, qui vérifie la session de l’utilisateur, récupère les données et prépare la réponse.

Dans le cas de WordPress, le code PHP est généralement exécuté par PHP-FPM, un programme distinct qui gère les processus PHP. Nginx lui transmet les requêtes concernées via le protocole FastCGI. Pour une application écrite en Node.js ou en Python, il peut transmettre le trafic via HTTP au serveur de l’application, qui écoute sur un port local.

Cette répartition des rôles aide à diagnostiquer les problèmes. Si les images s’affichent, mais que le panier renvoie une erreur, Nginx peut fonctionner correctement tandis que la panne concerne l’application. L’erreur 502 Bad Gateway indique souvent une difficulté à obtenir une réponse valide du service situé derrière le proxy. Il faut en déterminer la cause à partir des journaux, qui consignent le fonctionnement de Nginx et de l’application.

Il ne faut pas pour autant activer le cache pour toute la boutique sans examiner les conséquences. Le panier, l’espace client et les réponses contenant des données personnelles doivent être exclus du cache de manière appropriée ou soumis à des règles d’isolation précises.

Nginx ou Apache : quels critères de choix ?

Apache HTTP Server est un autre serveur HTTP populaire. Les deux solutions peuvent servir des sites et jouer le rôle d’intermédiaire avec les applications. Le choix ne se résume pas à « Nginx est rapide, Apache est lent » : le type de trafic, la configuration, l’application et l’expérience de l’administrateur comptent.

Une différence pratique concerne les fichiers .htaccess, qui peuvent contenir des règles locales dans Apache, par exemple des redirections. Nginx ne les lit pas. Lors de la migration d’un site, il faut donc transposer les règles nécessaires dans la configuration de Nginx, et pas seulement copier les fichiers du site.

Nginx et Apache peuvent aussi fonctionner ensemble : le premier reçoit le trafic, tandis que le second traite une partie des requêtes. Ainsi, la seule indication « l’hébergement utilise Nginx » ne décrit pas toute la configuration et ne garantit pas un niveau de performance donné.

Devez-vous configurer Nginx vous-même ?

Sur un hébergement mutualisé ou infogéré, demandez au prestataire qui prend en charge HTTPS, les redirections, le cache et les règles nécessaires à l’application. Il est possible que vous puissiez effectuer tous les réglages nécessaires depuis le panneau de gestion, sans accéder à la configuration du serveur.

Sur votre propre VPS, c’est-à-dire un serveur virtuel, vos responsabilités comprennent généralement l’installation, les mises à jour, les certificats et le diagnostic. Avant de modifier la configuration, conservez une copie de celle qui fonctionne. La commande nginx -t vérifie la validité de la syntaxe et l’accessibilité des fichiers indiqués ; elle ne confirme toutefois ni le bon fonctionnement de l’application ni la sécurité des règles.

Si le test réussit, rechargez la configuration, puis vérifiez le site, la connexion au compte, les redirections et les journaux d’erreurs. Consultez la documentation de Nginx et de la distribution du système utilisée pour confirmer les chemins exacts des fichiers et les commandes de gestion du service : ils dépendent du mode d’installation.

À lire aussi : Qu’est-ce que le 2FA ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.