Nginx
Apparence
Présentation
Nginx (prononcé "Engine-X") est un serveur web open-source réputé pour sa haute performance, sa stabilité et sa faible consommation de ressources. Contrairement à Apache2, Nginx n'utilise pas de processus pour chaque requête mais une architecture événementielle asynchrone, ce qui lui permet de gérer des dizaines de milliers de connexions simultanées.
Rôles principaux
Nginx est polyvalent et peut être configuré de plusieurs manières :
- Serveur Web : Pour servir du contenu statique (HTML, CSS, images) à une vitesse exceptionnelle.
- Reverse Proxy : Il se place devant un serveur d'application (comme MediaWiki, NodeJS ou Python) pour gérer les requêtes entrantes.
- Équilibreur de charge (Load Balancer) : Répartit le trafic entre plusieurs serveurs pour éviter la saturation.
- Gestion du SSL/TLS : Gère le chiffrement HTTPS de manière centralisée.
Structure de Configuration
La configuration se trouve généralement dans /etc/nginx/nginx.conf. Les sites individuels sont définis dans /etc/nginx/sites-available/.
Exemple de bloc Serveur (Reverse Proxy)
Voici comment configurer Nginx pour rediriger le trafic vers un serveur local :
server {
listen 80;
server_name wiki.mon-domaine.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Comparaison technique
| Caractéristique | Nginx | Apache2 |
|---|---|---|
| Architecture | Événementielle (Asynchrone) | Basée sur les processus (Threads) |
| Contenu statique | Très rapide | Rapide |
| Contenu dynamique | Via FastCGI (ex: PHP-FPM) | Via des modules intégrés (mod_php) |
| Configuration | Centralisée (rechargement requis) | Fichiers .htaccess par répertoire |
Commandes essentielles
nginx -t: Teste la syntaxe des fichiers de configuration (indispensable avant tout redémarrage).systemctl reload nginx: Applique les changements sans couper les connexions en cours.tail -f /var/log/nginx/error.log: Surveille les erreurs en temps réel.