Retour au blog
Mai 23, 2026Guides

Configurer un reverse proxy Nginx

Proxy Node.js, Docker et autres apps via Nginx avec WebSocket et SSL.

Configurer un reverse proxy Nginx

Un reverse proxy permet à Nginx d’accepter le trafic HTTP/HTTPS public et de le transmettre au backend (Node.js port 3000, Docker, etc.).

Prérequis

  • Nginx installé et actif
  • App backend sur localhost (ex. 127.0.0.1:3000)
  • Domaine pointant vers le VPS (pour SSL)
  • Ports 80 et 443 ouverts au pare-feu

Configuration de base

Créez un site pour votre domaine :

bash
server {
    listen 80;
    server_name app.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

sudo nginx -t && sudo systemctl reload nginx

Support WebSocket

Requis pour Socket.io, tableaux de bord et apps temps réel :

bash
location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}

HTTPS avec Certbot

Une fois le HTTP OK, certificat gratuit :

bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.com

Conseils

  • proxy_buffering off pour streaming/SSE
  • client_max_body_size pour les uploads
  • Plusieurs backends sur sous-domaines
  • Blocs upstream pour équilibrage
  • Erreur 502 : consulter error.log