Nginx vs Apache : quel serveur web choisir ?
Le choix entre Nginx et Apache dépend de votre cas d'usage. Voici une comparaison objective.
Architecture
Apache utilise un modèle basé sur les processus/threads (prefork ou worker). Chaque connexion est gérée par un processus ou thread dédié.
Nginx utilise une architecture événementielle asynchrone. Un processus worker peut gérer des milliers de connexions simultanées.
Performances
# Benchmark avec ab (Apache Bench)
ab -n 10000 -c 100 http://localhost/
# Nginx : ~15000 req/s pour du contenu statique
# Apache : ~5000 req/s pour du contenu statique
Configuration PHP
Apache avec mod_php :
<VirtualHost *:80>
DocumentRoot /var/www/html/public
<Directory /var/www/html/public>
AllowOverride All
</Directory>
</VirtualHost>
Nginx avec PHP-FPM :
server {
root /var/www/html/public;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Quand choisir quoi ?
- Nginx : contenu statique, reverse proxy, haute concurrence, microservices
- Apache : .htaccess requis, modules spécifiques, compatibilité héritée
- Les deux : Nginx en reverse proxy devant Apache pour le meilleur des deux mondes
Dans des contextes à fort trafic comme chez CCM Benchmark, Nginx est privilégié pour sa gestion efficace des connexions concurrentes.