Aller au contenu

Nginx

De mediawikii

Modèle:Infobox Logiciel

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.