2017-03-06 1 views
0

J'essaye de rediriger tout le trafic HTTP à HTTPS, mais se retrouver dans une boucle de redirection.Phusion Passenger http à https résultats dans la boucle de redirection

Qu'ai-je fait de mal ou ai-je manqué?

server { 
    listen 80; 
    return 301 https://test.website.com; 
} 

server { 
    listen 443 ssl; 
    server_name test.website.com; 

    passenger_enabled on; 
    passenger_user app; 
    passenger_ruby /usr/bin/ruby2.3; 

    root /home/app/webapp/public; 

    ssl on; 
    ssl_certificate /etc/ssl/certs/tls.crt; 
    ssl_certificate_key /etc/ssl/private/tls.key; 
} 

Vous ne savez toujours pas ce qui ne va pas. Sans la redirection. HTTP et HTTPS fonctionne. Y a-t-il quelque chose que le serveur HTTPS ne fait pas en redirection?

server { 
    listen 80; 
    server_name test.website.com; 

    passenger_enabled on; 
    passenger_user app; 
    passenger_ruby /usr/bin/ruby2.3; 

    root /home/app/webapp/public; 
} 

server { 
    listen 443 ssl; 
    server_name test.website.com; 

    passenger_enabled on; 
    passenger_user app; 
    passenger_ruby /usr/bin/ruby2.3; 

    root /home/app/webapp/public; 

    ssl_certificate /etc/ssl/certs/tls.crt; 
    ssl_certificate_key /etc/ssl/private/tls.key; 
} 
+0

Je devine que je manque la directive emplacement et passe proxy. Je vais enquêter plus loin. Vous ne savez pas quelle URL le passe proxy doit utiliser. –

Répondre

0

Je suppose que votre demande est mal configuré et émettre encore redirige vers http. La règle http à https la renvoie toujours à la racine. Vous devriez faire deux choses.

avant de http à https tout en maintenant l'URI d'origine:

return 301 https://$host$request_uri; 

Voir this document pour plus de détails.

Utilisez une boîte à outils ou un plug-in côté navigateur pour analyser l'en-tête de réponse HTTP Location: afin d'identifier la nature de cette boucle de redirection. Voir this link pour plus.

+0

Cela a du sens, je vais enquêter plus loin. –

+0

J'ai vérifié l'application et cela semble correct. J'ai ajouté ma config ci-dessus qui fonctionne pour HTTP et HTTPS. L'en-tête de l'emplacement indique l'URL de redirection correcte. Vous ne savez pas ce qui ne va pas avec la redirection 301. –