2017-03-06 18 views
0

我试图将所有HTTP通信重定向到HTTPS,但最终在重定向循环。Phusion Passenger http https结果重定向循环

我做错了什么或者我错过了什么?

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; 
} 

还不确定发生了什么问题。没有重定向。 HTTP和HTTPS的作品。 HTTPS服务器在重定向时没有做什么。

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

我猜我失去了位置指令,并代理通给出你可以试试这个代码。我会进一步调查。不知道代理传递应该使用哪个URL。 –

回答

0

我猜你的应用程序配置不正确,仍然发出重定向回到http

您的httphttps规则总是将其发送回根。你应该做两件事。

转发从httphttps在保持原有的URI:

return 301 https://$host$request_uri; 

详见this document

并使用浏览器端工具箱或插件来分析HTTP Location:响应标头以确定此重定向循环的性质。有关更多信息,请参阅this link

+0

这很有道理,我会进一步调查。 –

+0

我已经检查了应用程序,并且似乎没问题。我已经添加了以上适用于HTTP和HTTPS的配置。位置标题显示正确的重定向网址。不知道301重定向出了什么问题。 –