Depois de adicionar o certificado SSL recebi um site com muitos redirecionamentos loop (nginx)

2

Olá e obrigado por me ajudar. Recentemente, adicionei um certificado SSL ao meu site. Funcionou um pouco, mas agora estou recebendo um "loop de redirecionamentos demais" nos navegadores. Eu não sei muito sobre servidores (estou seguindo um guia on-line), então pode ser apenas um erro de novato.

Aqui está o arquivo:

upstream app_server {
    server unix:/var/run/unicorn.sock fail_timeout=0;
}

server {
    listen 80;
    server_name example.com;
    return 301 http://www.example.com$request_uri;
}

server {
    listen   443 ssl;
    listen  [::]:80 default ipv6only=on;
    root /home/example/public;
    server_name www.example.com;
    rewrite     ^(.*)   https://www.example.com$1 permanent;
    ssl_certificate /example.com.chained.crt;
    ssl_certificate_key /example.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
    index index.htm index.html;

    location / {
            try_files $uri/index.html $uri.html $uri @app;
    }

    location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|$
                    try_files $uri @app;
            }

     location @app {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://app_server;
    }
}
    
por Jakxna360 01.01.2016 / 22:50

1 resposta

3

É um erro de novato.

Você colocou o redirecionamento no seu bloco https server :

    rewrite     ^(.*)   https://www.example.com$1 permanent;

que apenas redireciona de volta para o mesmo URL.

Quando você remove isso, você deve ficar bem. O redirecionamento deve estar apenas no bloco que serve http na porta 80, não no bloco que está servindo https na porta 443.

    
por 01.01.2016 / 23:02

Tags