Là où certains serveurs web créent un processus par connexion, Nginx (prononcé « engine-x ») traite les requêtes de façon asynchrone au sein d’un nombre restreint de processus, ce qui lui permet de tenir des milliers de connexions ouvertes avec une consommation mémoire réduite. Cette architecture explique sa popularité pour les sites à fort trafic.
Rôle aux côtés de WordPress
Nginx ne sait pas exécuter du PHP par lui-même : sur une pile WordPress typique, il se contente de servir les fichiers statiques et de transmettre les requêtes .php à un processus PHP-FPM via le protocole FastCGI. Il joue aussi souvent le rôle de proxy inverse et de premier niveau de cache de page, en s’appuyant sur des règles de réécriture d’URL pour le fonctionnement des permaliens.
Bloc de configuration typique
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
include fastcgi_params;
}
À ne pas confondre avec Apache
- Apache lit un fichier
.htaccesspar dossier pour ses règles de réécriture ; Nginx ignore ce fichier et centralise toute la configuration dans les blocsserver, ce qui impose de convertir manuellement les règles lors d’une migration. - Nginx ne propose pas nativement de modules dynamiques comme
mod_php: PHP y est toujours traité par un processus externe, jamais intégré au serveur web lui-même. - Une erreur de configuration Nginx empêche le serveur entier de redémarrer tant qu’elle n’est pas corrigée : la commande
nginx -tpermet de valider la syntaxe avant tout rechargement.