Nginx coloca o navegador em um loop de redirecionamento ao usar vários blocos de servidor

Nginx coloca o navegador em um loop de redirecionamento ao usar vários blocos de servidor

Estou usando o Nginx para hospedar vários hosts virtuais (oublocos de servidorna nomenclatura Nginx). Todos esses hosts compartilham o mesmo domínio, cada um com seu próprio subdomínio atribuído. Um subdomínio entra em um loop de redirecionamento infinito, comportamento obviamente indesejável.

Observação: editei meu nome de domínio e o substituí por <mysite>.

O domínio raiz – www.<mysite>.comrecebe solicitações conforme esperado. Ele também redireciona solicitações HTTP para HTTPS. Está configurado em <mysite>-www.

O subdomínio assets.<mysite>.comtambém recebe solicitações conforme o esperado. Não está configurado para redirecionar HTTP para HTTPS, qualquer um dos protocolos é servido. Não há problema. Está configurado em <mysite>-holding.

O subdomínio final soft.<mysite>.comé configurado de forma idêntica, assets.<mysite>.commas falha. Em vez disso, ele envia o navegador em um loop de redirecionamento, sempre apontando para https://soft.<mysite>.comIsto, apesar de não haver tal configuração no arquivo de configuração para este vhost. Está configurado em <mysite>-soft.

Configuração 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;
    }
}

Configuração 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;
    }

O arquivo de configuração soft.<mysite>.comé idêntico ao acima, exceto onde diz 'ativos', diz 'soft'. E ainda assim ele entra nesse ciclo interminável de redirecionamento.

Eu tentei variar a diretiva de localização. eu consulteios documentosque foram melhores do que o esperado. Ainda assim, ele faz um loop. A ajuda será apreciada!

Responder1

Acontece que o problema foi o seguinte:

Eu não tinha vinculado corretamente de /sites-enabledpara /sites-availablee estava usando uma duplicata antiga <mysite>-wwwque causou o loop de redirecionamento.

Ter o arquivo configurado conforme acima na minha pergunta foi a solução. Copiá-lo para sites habilitados ou vinculá-lo corretamente resolverá o problema para qualquer pessoa em situação semelhante.

Mea culpa.

informação relacionada