Qu'est-ce que NGINX
Serveur web et proxy inverse
NGINX est un serveur web open source haute performance, proxy inverse, équilibreur de charge et cache HTTP. Créé par Igor Sysoev en 2004, maintenant propriété de F5 Networks.
Fonctions Principales
- Serveur web — servir du contenu statique
- Proxy inverse — proxy des requêtes vers les serveurs backend
- Équilibrage de charge — distribution du trafic entre les serveurs
- Terminaison SSL/TLS — gestion des connexions HTTPS
- Cache HTTP — mise en cache des réponses des serveurs upstream
Avantages
- Architecture asynchrone événementielle
- Faible consommation mémoire
- Haute performance (10K+ connexions)
- Configuration simple
- Architecture modulaire
Cas d'Utilisation Typiques
- Servir des fichiers statiques (HTML, CSS, JS, images)
- Proxy inverse pour Node.js, Python, PHP, Java
- API Gateway
- Équilibrage de charge entre conteneurs Docker
- Déchargement SSL pour microservices
Configuration de Base
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| Paramètre | NGINX | Apache | |-----------|-------|--------| | Architecture | Event-driven | Processus/Thread | | Fichiers statiques | Plus rapide | Plus lent | | .htaccess | Non | Oui | | Configuration | Centralisée | Distribuée |
Modules Populaires
- ngx_http_gzip_module — compression des réponses
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — proxying
- ngx_http_upstream_module — équilibrage de charge
- ngx_http_rewrite_module — réécriture d'URL