Un Nginx delante de todo: tu aplicación Node, un API, un panel de juego. Agregue certificados Let's Encrypt gratuitos que se renueven y conecten WebSockets sin dolor.
Crear un registro A: app.example.com → YOUR_SERVER_IP. Espera unos minutos y compruebe desde el servidor:
getent hosts app.example.com
certbot no emitirá un certificado hasta que DNS puntos en su servidor.
apt update && apt install -y nginx certbot python3-certbot-nginx
ufw allow 80/tcp
ufw allow 443/tcp
cat > /etc/nginx/sites-available/app <<'EOF'
server {
listen 80;
server_name app.example.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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
}
}
EOF
ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/app
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
Los dos Upgrade líneas permiten WebSockets; el largo tiempo de lectura mantiene conexiones lentas (SSE, encuestas largas, paneles de juego) de ser cortados a 60 segundos. Reemplazamiento 127.0.0.1:3000 con cualquier puerto que tu app escuche.
certbot --nginx -d app.example.com --redirect -m [email protected] --agree-tos
certbot edita el config, añade el bloque 443, instala un temporizador de renovación y establece HTTP → HTTPS redireccion. Verificar obras de renovación:
certbot renew --dry-run
systemctl list-timers | grep certbot
¿Otra aplicación en el puerto 3001? Copiar el bloque del servidor, cambiar server_name y proxy_passCorre certbot otra vez. Un Nginx puede contener docenas de sitios, un servidor de 6,5 € los maneja fácilmente.
¿Prefieres menos config? Caddy hace HTTPS con dos líneas — Nginx gana cuando necesitas un buen control sobre los encabezados, el cacheo y los timeouts.
nginx -t
tail -f /var/log/nginx/error.log
curl -I https://app.example.com
502 significa que Nginx está bien pero su aplicación está bajada o en el puerto equivocado. 404 con una página incorrecta significa que otro bloque del sitio está captando la solicitud - check server_name.
Para el acceso estándar del navegador — sí, necesita un plan con un IPv4 dedicado, porque Let's Encrypt valida su dominio en el puerto 80 o 443. NAT planea con puertos reenviados trabajar para bots, túneles y VPNs, no para sitios web públicos.
Sí, y se renueven automáticamente cada 60 días a través del temporizador sistematbot instala. No hay una tarifa pagada necesaria para un sitio normal.
No tráfico UDP — Nginx sólo habla HTTP. Los juegos usan sus propios puertos, los abren directamente en el cortafuegos.
Obtener un servidor con un IPv4 dedicado — los planes comienzan en €6.5/mes.