Nginx 从http到https导致重定向循环
我试图将所有HTTP流量重定向到HTTPS,但最终导致重定向循环 我做错了什么或者我错过了什么Nginx 从http到https导致重定向循环,nginx,docker,passenger,Nginx,Docker,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.
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;
}
我猜您的应用程序配置错误,仍然会发出重定向回
http
您的http
tohttps
规则始终将其发送回根目录。你应该做两件事
从http
转发到https
,同时保持原始URI:
return 301 https://$host$request_uri;
有关详细信息,请参阅
并使用浏览器端工具箱或插件来分析HTTP
位置:
响应头,以确定此重定向循环的性质。有关详细信息,请参阅。您可以按照上的说明尝试此代码
希望这有帮助…我猜我错过了位置指令和代理传递。我会进一步调查。不确定代理传递应该使用哪个URL。这是有意义的,我将进一步调查。我已经检查了应用程序,看起来还可以。我在上面添加了适用于HTTP和HTTPS的配置。位置标头显示了正确的重定向url。我不确定301重定向出了什么问题。我试过了,这是我在谷歌上看到的第一件事。我倾向于把它作为一个乘客问题。今晚晚些时候将尝试普通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;
[....]
}