Cómo hacer un subdominio con DNS y Nginx
Voy a describir una forma sencilla y rápida de crear subdominios con Nginx y DNS, puede ser útil si trabajas con NodeJS. A continuación contamos con los siguientes datos de ejemplo:
- Subdominio beta
- Dominio ejemplo.com
- IP 123.456.789.123
- Puerto de la app 5000
Subdominio: parte de Nginx
En el archivo de configuración de Nginx, que suele ser /etc/nginx/nginx.conf (aunque según tu configuración puede haber más en /sites-availables), hay que añadir el bloque server que vaya a responder en el nuevo subdominio.
server {
listen 123.456.789.123:80;
server_name beta.ejemplo.com;
location / {
proxy_pass http://123.456.789.123:5000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true; proxy_redirect off;
}
}
Por supuesto, puedes añadir más parámetros de configuración. Consulta la documentación.
Por último, para aplicar los cambios reiniciamos:
service nginx restart
Subdominio: parte DNS
En el panel de control de tu proveedor del dominio, añade este registro con los siguientes valores:
- Host: beta
- Record: CNAME
- Value: ejemplo.com
Prueba
¡Subdominio hecho! Ahora si entraras a beta.ejemplo.com
debería responder la aplicación. Ten en cuenta que podría demorase un tiempo en propagarse los DNS (minutos o alguna hora en caso excepcional).