Servir múltiples webs desde subrutas como:
http://192.168.1.56/miweb/
http://192.168.1.56/otraweb/
- Que
http://192.168.1.56
no sirva contenido directamente
/var/www/miweb/
└── index.html
/var/www/otraweb/
└── index.html
Archivo: /etc/nginx/sites-available/subsitios
server {
listen 80;
server_name 192.168.1.56;
# Nada en la raíz
location = / {
return 404;
}
# Redirección sin barra final
location = /miweb {
return 301 /miweb/;
}
# Sitio: /miweb
location /miweb/ {
alias /var/www/miweb/;
index index.html index.htm;
}
# Otro sitio (opcional)
location = /otraweb {
return 301 /otraweb/;
}
location /otraweb/ {
alias /var/www/otraweb/;
index index.html;
}
}
sudo ln -s /etc/nginx/sites-available/subsitios /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default # (si quieres eliminar el sitio por defecto)
sudo nginx -t
sudo systemctl reload nginx
URL | Resultado |
---|---|
http://192.168.1.56 | Error 404 |
http://192.168.1.56/miweb | Redirige a /miweb/ |
http://192.168.1.56/miweb/ | Carga contenido desde /miweb/ |
http://192.168.1.56/otraweb/ | Carga contenido desde /otraweb/ |
📝 Notas
Usamos `alias` para apuntar directamente al contenido de cada carpeta.
Se configuró redirección automática para que funcione con y sin barra final.
Esta configuración es modular y escalable para añadir más subdirectorios fácilmente.