Mayo 23, 2026Guías
Cómo configurar un proxy inverso en Nginx
Proxy de Node.js, Docker u otras apps mediante Nginx con soporte WebSocket y SSL en su VPS.

Un proxy inverso permite que Nginx reciba tráfico HTTP/HTTPS público y lo reenvíe a aplicaciones backend (Node.js en el puerto 3000, contenedores Docker, APIs Python). Es esencial para despliegues en producción en un VPS Hiddence.
Requisitos previos
- Nginx instalado y en ejecución
- La aplicación backend escuchando en localhost (p. ej. 127.0.0.1:3000)
- Dominio apuntando a su VPS (para SSL)
- Puertos 80 y 443 abiertos en el firewall
Configuración básica de proxy inverso
Cree una configuración de sitio para su dominio:
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 nginxSoporte WebSocket
Necesario para Socket.io, muchos paneles y aplicaciones en tiempo real:
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;
}Añadir HTTPS con Certbot
Cuando HTTP funcione, emita un certificado gratuito:
bash
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d app.yourdomain.com
# Certbot will update your server block for SSL automaticallyConsejos
- Use proxy_buffering off para streaming/SSE si hace falta
- Configure client_max_body_size para subidas de archivos
- Ejecute varios backends en subdominios distintos
- Use bloques upstream para equilibrar varios backends
- Revise error.log si obtiene 502 Bad Gateway