Esta es una guía paso a paso para apuntar un subdominio como cms.midominio.com
a tu VPS en el puerto 3000
con HTTPS (SSL).
✅ 1. Configura el subdominio en tu DNS
Ve a tu proveedor de dominio (ej: GoDaddy, Namecheap, Cloudflare, etc.) y agrega un registro tipo A:
- Tipo: A
- Nombre / Subdominio:
cms
- Destino / IP: La IP pública de tu VPS
- TTL: Automático o 300
✅ 2. Instala Nginx en el VPS (como proxy reverso)
1sudo apt update2sudo apt install nginx -y
✅ 3. Configura un archivo de Nginx para el subdominio
Crea el archivo de configuración:
1sudo nano /etc/nginx/sites-available/cms.midominio.com
Pega esta configuración básica para redirigir HTTPS al puerto 3000:
1server {2 listen 80;3 server_name cms.midominio.com;4
5 location / {6 proxy_pass http://localhost:3000;7 proxy_http_version 1.1;8 proxy_set_header Upgrade $http_upgrade;9 proxy_set_header Connection 'upgrade';10 proxy_set_header Host $host;11 proxy_cache_bypass $http_upgrade;12 }13}
Actívalo con un enlace simbólico:
1sudo ln -s /etc/nginx/sites-available/cms.midominio.com /etc/nginx/sites-enabled/
✅ 4. Instala Certbot y habilita HTTPS gratis con Let’s Encrypt
1sudo apt install certbot python3-certbot-nginx -y
Ejecuta el certificado SSL:
1sudo certbot --nginx -d cms.midominio.com
✔️ Esto:
- Obtendrá un certificado HTTPS
- Configurará automáticamente Nginx para HTTPS
✅ 5. Reinicia Nginx para aplicar cambios
1sudo systemctl restart nginx
📦 Tu aplicación en Node.js
Asegúrate de que tu app escuche en localhost:3000
y no directamente en el puerto 80 o 443, ya que eso lo gestiona Nginx.
Ejemplo en Node.js/Express:
1app.listen(3000, '127.0.0.1', () => {2 console.log('Server on http://localhost:3000');3});
🧪 Verificación
- Espera que se propague el DNS (normalmente inmediato)
- Visita:
https://cms.midominio.com
Proximamente te mostraré cómo redireccionar de HTTP a HTTPS.