Sobes.tech
Junior

À quoi sert Nginx?

sobes.tech IA

Réponse de l'IA

Nginx est un serveur web asynchrone haute performance et un proxy inverse, utilisé pour :

  1. Fourniture de fichiers statiques : Livraison rapide et efficace de HTML, CSS, JavaScript, images et autres ressources statiques. Grâce à son architecture asynchrone, il peut gérer un grand nombre de connexions simultanées avec une faible consommation de ressources.
  2. Proxy inverse : Transmission des requêtes clients à un ou plusieurs serveurs backend (applications, API) et retour des réponses aux clients. Cela permet d'équilibrer la charge, d'améliorer la sécurité (en masquant la structure interne du réseau), et de réaliser la terminaison SSL.
  3. Équilibrage de charge : Répartition des requêtes entrantes entre plusieurs serveurs pour augmenter la disponibilité et la scalabilité de l'application. Supporte différents algorithmes d'équilibrage (par exemple, round robin, least connections).
  4. Caching : Mise en cache des ressources statiques et dynamiques pour réduire la charge sur les backend et accélérer la réponse.
  5. Terminaison SSL/TLS : Décryptage du trafic HTTPS avant de l'envoyer au backend, ce qui réduit la charge sur les serveurs d'applications et permet une gestion centralisée des certificats.
  6. Compression : Compression des données (par exemple, Gzip) avant de les envoyer au client pour réduire le trafic et accélérer le chargement des pages.
  7. Limitation de la vitesse des requêtes : Protection des backend contre la surcharge en limitant le nombre de requêtes d'un client sur une période donnée.
  8. Firewall Web (WAF) : Protection de base contre les attaques web courantes (par exemple, injections SQL, XSS).
# Exemple de configuration Nginx pour servir des fichiers statiques et faire du proxy pour API

server {
    listen 80;
    server_name example.com; # Nom de domaine

    location / {
        root /var/www/html; # Chemin vers les fichiers statiques
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # Proxy des requêtes API vers un autre serveur
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}