Desplegar múltiples sitios web estáticos en un mismo servidor no requiere asignar un puerto distinto a cada proyecto. Utilizando el bloque server_name de Nginx, es posible alojar todas las webs estáticas bajo el puerto 80 del servidor backend y dejar la gestión de certificados SSL y exposición pública en manos de un proxy inverso como Nginx Proxy Manager (NPM).
1. Preparar los archivos del sitio en el backend
Accede a tu servidor de aplicaciones web (ej. SRV-WEB) y crea el directorio donde se alojará el nuevo sitio estático:
mkdir -p /var/www/html/midominio
Copia en este directorio tu archivo index.html y todos sus recursos asociados (CSS, JS, imágenes).
2. Configurar el bloque de servidor en Nginx (Backend)
Crea el archivo de configuración para el sitio local:
nano /etc/nginx/sites-available/midominio
Añade la siguiente estructura reemplazando midominio.com por tu nombre de dominio:
server {
listen 80;
server_name midominio.com;
root /var/www/html/midominio;
index index.html;
location / {
try_files $uri$uri/ =404;
}
}
Habilita el sitio mediante un enlace simbólico, comprueba la sintaxis y recarga la configuración:
ln -s /etc/nginx/sites-available/midominio /etc/nginx/sites-enabled/midominio
nginx -t && systemctl reload nginx
3. Publicación mediante Nginx Proxy Manager
Para publicar el sitio de forma segura mediante HTTPS sin sobrecargar el servidor backend con la terminación TLS, añade el Proxy Host en tu frontal:
- Domain Names:
midominio.com - Scheme:
http - Forward Hostname / IP:
192.168.X.X(IP privada del servidor backend) - Forward Port:
80 - SSL: Selecciona tu certificado SSL (puede ser un certificado Wildcard
*.midominio.com). - Opciones SSL: Activa Force SSL para forzar tráfico seguro.
- Access List: Mantén la opción en Publically Accessible salvo que requiera restricción de acceso.
4. Configuración de DNS
En tu proveedor DNS (Cloudflare, DuckDNS, etc.), añade un registro tipo A o CNAME que apunte midominio.com hacia la IP pública de tu proxy inverso.
Ventajas de este enfoque
- Escalabilidad limpia: Olvídate de mapear puertos arbitrarios (
8081,8082, etc.) para cada sitio web. - Aislamiento lógico: Todo el tráfico backend interno viaja por el puerto 80 estándar en la red local. Nginx clasifica la petición entrante mediante la cabecera
Hosty la directivaserver_name. - Centralización de TLS: Los certificados de seguridad se gestionan únicamente en la capa frontal.
