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; [....] }
希望这可以帮助…