Estoy usando Nginx para alojar varios hosts virtuales (obloques de servidoren la nomenclatura Nginx). Todos estos hosts comparten el mismo dominio y cada uno tiene asignado su propio subdominio. Un subdominio entra en un bucle de redireccionamiento interminable, un comportamiento obviamente indeseable.
NÓTESE BIEN: Redacté mi nombre de dominio y lo reemplacé con <mysite>
.
El dominio raíz: www.<mysite>.com
recibe solicitudes como se esperaba. También redirige las solicitudes HTTP a HTTPS. Está configurado en <mysite>-www
.
El subdominio assets.<mysite>.com
también recibe solicitudes como se esperaba. No está configurado para redirigir HTTP a HTTPS, se sirve cualquiera de los protocolos. No hay problema. Está configurado en <mysite>-holding
.
El subdominio final soft.<mysite>.com
está configurado de manera idéntica assets.<mysite>.com
pero falla. En su lugar, envía al navegador un bucle de redireccionamiento, cada vez que apunta a https://soft.<mysite>.com
Esto a pesar de que no existe tal configuración en el archivo de configuración para este vhost. Está configurado en <mysite>-soft
.
Configuración para <mysite>-www
:
server {
server_name www.<mysite>.com;
listen 80 default_server ;
listen [::]:80 default_server;
location / {
return 301 https://$server_name$request_uri;
}
root /var/www/html;
}
server {
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/www.<mysite>.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.<mysite>.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
root /var/www/html;
server_name www.<mysite>.com;
error_page 404 /404.html;
location / {
limit_req zone=mylimit burst=20 nodelay;
try_files $uri $uri/ =404;
index index.html index.htm;
}
}
Configuración para <mysite>-holding
:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
server_name assets.<mysite>.com;
ssl_certificate /etc/letsencrypt/live/assets.<mysite>.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/assets.<mysite>.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
root /var/www/holding/html;
location / {
limit_req zone=mylimit burst=20 nodelay;
try_files $uri $uri/ =404;
index index.html;
}
El archivo de configuración soft.<mysite>.com
es idéntico al anterior, excepto que donde dice "activos", dice "soft". Y, sin embargo, entra en este bucle de redireccionamiento interminable.
Intenté variar la directiva de ubicación. he consultadolos documentosque fueron mejores de lo esperado. Aún así, da vueltas. ¡Se agradecerá la ayuda!
Respuesta1
Dio la casualidad de que el problema fue el siguiente:
No había establecido correctamente el enlace simbólico desde /sites-enabled
hacia /sites-available
y estaba usando un duplicado antiguo <mysite>-www
que provocó el bucle de redireccionamiento.
Tener el archivo configurado como se indica arriba en mi pregunta fue la solución. Copiarlo en sitios habilitados o vincularlo correctamente resolverá el problema para cualquiera que se encuentre en una situación similar.
Mea culpa.