Inicio / Alojamiento y nube / Proxy inverso Node.js
Alojamiento y servidor
Proxy inverso nginx delante de Node.js: la guía completa
Node.js no está hecho para ser expuesto directamente en Internet. nginx en proxy inverso administra SSL, compresión y websockets para usted.
Configuración básica de proxy inverso
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;
}
}
Habilitar SSL con CertBot
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d monapp.com
Sugerencia: los encabezados de actualización y conexión son esenciales para que WebSockets (Socket.io) funcionen correctamente a través del proxy.
Preguntas frecuentes
¿Necesitas PM2 además de nginx?
Sí, PM2 maneja el proceso de Node.js (reinicio automático, registros) mientras que Nginx maneja el tráfico HTTP/https entrante.
¿Debería el puerto 3000 permanecer abierto públicamente?
No, debe permanecer accesible solo localmente (127.0.0.1); Solo NGINX debe estar expuesto en los puertos 80/443.