Kennisbank › Nginx › Configurer Nginx comme proxy inverse et serveur web - Guide complet
nginx gemiddeld 09 July 2026

Configurer Nginx comme proxy inverse et serveur web - Guide complet

Apprenez à configurer Nginx comme reverse proxy et serveur web avec notre guide pratique. Explication étape par étape pour développeurs et administrateurs système.

Nginx est l'un des serveurs web les plus utilisés au monde, connu pour sa rapidité, sa stabilité et sa polyvalence. Que vous souhaitiez héberger un site web, placer une API derrière un reverse proxy ou gérer plusieurs services via un seul serveur – Nginx offre la solution. Dans cet article, nous expliquons pas à pas comment configurer Nginx comme reverse proxy et comme serveur web, avec des conseils pratiques pour des performances optimales.

Qu'est-ce que Nginx et pourquoi choisir un reverse proxy ?

Nginx est un serveur web open-source qui fonctionne également comme reverse proxy, répartiteur de charge et outil de cache. Il est léger et peut gérer des milliers de connexions simultanées, ce qui le rend idéal pour les applications web modernes.

Un reverse proxy sert d'intermédiaire entre les clients et les serveurs backend. Cela offre des avantages tels que :

  • Sécurité améliorée (masque les serveurs backend)
  • Répartition de charge (distribue le trafic sur plusieurs serveurs)
  • Mise en cache (accélère les temps de chargement)
  • Terminaison SSL (simplifie la gestion des certificats)

Installer Nginx sur votre serveur

Avant de pouvoir utiliser Nginx comme reverse proxy ou serveur web, il doit être installé. Voici les commandes pour les distributions Linux populaires :

Ubuntu/Debian sudo apt update sudo apt install nginx

CentOS/RHEL sudo yum install epel-release sudo yum install nginx

Démarrer et activer Nginx sudo systemctl start nginx sudo systemctl enable nginx

Vérifiez que Nginx tourne en ouvrant l'adresse IP de votre serveur dans un navigateur. Vous devriez voir la page d'accueil.

Configurer Nginx comme serveur web

Par défaut, Nginx sert les fichiers depuis /var/www/html. Configurons un site web de base :

  1. Créez un répertoire pour votre site : sudo mkdir -p /var/www/mijnsite.nl/html
  2. Définissez les permissions correctes : sudo chown -R $USER:$USER /var/www/mijnsite.nl/html
  3. Créez un fichier de test index.html
  4. Créez un bloc serveur (hôte virtuel) dans /etc/nginx/sites-available/mijnsite.nl : server { listen 80; server_name mijnsite.nl www.mijnsite.nl; root /var/www/mijnsite.nl/html; index index.html; location / { try_files $uri $uri/ =404; } }
  5. Activez la configuration : sudo ln -s /etc/nginx/sites-available/mijnsite.nl /etc/nginx/sites-enabled/
  6. Testez la configuration et rechargez Nginx : sudo nginx -t sudo systemctl reload nginx

Configurer Nginx comme reverse proxy

Supposons que vous ayez une application Node.js, Python ou autre qui tourne sur le port 3000. Nous pouvons configurer Nginx comme reverse proxy pour envoyer le trafic vers cette application :

server { listen 80; server_name api.mijnsite.nl; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }

Directives de proxy importantes :

  • proxy_pass : Définit le serveur backend
  • proxy_set_header : Préserve les en-têtes importants
  • proxy_http_version : Prend en charge HTTP/1.1 pour de meilleures performances

Configurations avancées de reverse proxy

Répartition de charge

Avec Nginx, vous pouvez répartir le trafic sur plusieurs serveurs backend :

upstream backend_servers { server backend1.mijnsite.nl:3000; server backend2.mijnsite.nl:3000; server backend3.mijnsite.nl:3000; }

server { location / { proxy_pass http://backend_servers; } }

Terminaison SSL

Les certificats SSL peuvent être gérés de manière centralisée avec Nginx :

server { listen 443 ssl; server_name api.mijnsite.nl; ssl_certificate /chemin/vers/certificat.pem; ssl_certificate_key /chemin/vers/cle.key; location / { proxy_pass http://localhost:3000; ... autres paramètres de proxy } }

Conseils pratiques pour l'optimisation de Nginx

  • Processus workers : Définissez worker_processes auto; dans nginx.conf pour une utilisation optimale du CPU
  • Keepalive : Augmentez keepalive_timeout pour les connexions HTTP de longue durée
  • Compression gzip : Activez gzip pour économiser la bande passante
  • Mise en cache : Configurez la mise en cache pour les fichiers statiques
  • Journalisation : Limitez la journalisation pour de meilleures performances (access_log off; pour les fichiers statiques)

Problèmes courants et solutions

502 Bad Gateway : Cela signifie généralement que Nginx ne peut pas atteindre le serveur backend. Vérifiez que votre application tourne et que le port dans proxy_pass est correct.

Permission refusée : Assurez-vous que l'utilisateur Nginx (www-data ou nginx) a les droits de lecture sur vos fichiers web.

Erreurs de configuration : Utilisez toujours sudo nginx -t pour tester votre configuration avant de recharger Nginx.

Conclusion

Nginx est un outil puissant qui peut fonctionner à la fois comme serveur web et comme reverse proxy. Avec la bonne configuration, vous pouvez :

  • Héberger efficacement des sites web et des applications
  • Répartir le trafic de manière optimale sur les serveurs backend
  • Améliorer la sécurité et les performances
  • Simplifier les architectures complexes

Commencez par les configurations de base dans cet article et étendez progressivement vers des configurations plus avancées. N'oubliez pas de toujours tester les modifications avec nginx -t avant de les activer.

← Terug naar kennisbank