Phusion Passenger http https结果redirect循环

我试图将所有的HTTP通信redirect到HTTPS,但最终在一个redirect循环。

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

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

仍然不确定发生了什么问题。 没有redirect。 HTTP和HTTPS的作品。 有什么HTTPS服务器没有做redirect。

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

我猜你的应用程序configuration错误,仍然发出redirect回http

您的http to https规则始终将其发送回根目录。 你应该做两件事。

在保持原始URI的同时从http转发到https

 return 301 https://$host$request_uri; 

详情请参阅此文件 。

并使用浏览器端工具箱或插件来分析HTTP Location:响应头,以确定此redirect循环的性质。 看到这个链接更多。

你可以试试https://www.digitalocean.com/community/questions/http-https-redirect-positive-ssl-on-nginx

 server { listen 80; server_name my.domain.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name my.domain.com; [....] } 

希望这可以帮助…