La mayoría de las apps autoalojadas escuchan en un puerto local como 127.0.0.1:3000 y hablan HTTP plano. Un proxy inverso se coloca delante en los puertos 80/443, termina el HTTPS con un certificado real y reenvía el tráfico a ese puerto local, dándote un https://app.yourdomain.com limpio y permitiéndote ejecutar varias apps tras una sola IP. Aquí van las dos vías habituales.
Requisitos previos
- Un dominio con un registro A apuntando a la IP de tu servidor (espera la propagación de DNS).
- Los puertos 80 y 443 abiertos — mira cómo configurar un firewall UFW.
- Tu app funcionando en local, por ejemplo en
127.0.0.1:3000.
Opción A — Caddy (HTTPS automático, una línea)
sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
Eso es todo: Caddy obtiene un certificado Let's Encrypt para el dominio y lo renueva automáticamente.
Opción B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Crea /etc/nginx/sites-available/app:
server {
listen 80;
server_name app.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
Actívalo y añade HTTPS:
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com
Certbot edita la configuración para servir HTTPS y deja lista la renovación automática.
Advertencias honestas
- El DNS y los puertos son los fallos habituales. El registro A debe apuntar aquí y estar propagado, y 80/443 ser alcanzables, o la emisión del certificado fallará. Ambas herramientas reintentan en cuanto se corrige.
- Expón solo lo que pretendes. Mantén la app ligada a
127.0.0.1para que solo sea accesible a través del proxy, no directamente. - HTTPS necesita un dominio, no una IP a secas — Let's Encrypt emite para nombres.
Siguientes pasos
El proxy inverso es justo lo que permite a un solo servidor servir muchas cosas — mira autoalojar varios servicios tras una sola IP. ¿Ejecutas la app en un contenedor? Empieza por cómo instalar Docker. Para que la propia app sobreviva a reinicios y caídas, mira cómo crear un servicio systemd.
Comentarios
Aún no hay comentarios. Sé el primero.