Accueil / Hébergement & Cloud / Reverse proxy Node.js
HÉBERGEMENT & SERVEUR
Reverse proxy Nginx devant Node.js : le guide complet
Node.js n’est pas fait pour être exposé directement sur internet. Nginx en reverse proxy gère le SSL, la compression et les WebSockets à votre place.
Configuration de base du reverse proxy
server {
listen 80;
server_name monapp.com;
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;
proxy_cache_bypass $http_upgrade;
}
}
Activer le SSL avec Certbot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d monapp.com
Astuce : les en-têtes Upgrade et Connection sont indispensables pour que les WebSockets (Socket.io) fonctionnent correctement à travers le proxy.
Questions fréquentes
Faut-il PM2 en plus de Nginx ?
Oui, PM2 gère le processus Node.js (redémarrage automatique, logs) pendant que Nginx gère le trafic HTTP/HTTPS entrant.
Le port 3000 doit-il rester ouvert publiquement ?
Non, il doit rester accessible uniquement en local (127.0.0.1) ; seul Nginx doit être exposé sur les ports 80/443.