2017-03-06 19 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重定向出了什麼問題。 –