当 X-Forwarded-Proto 为 https 时,重定向位置包括“:80”
Redirect location includes ":80" when X-Forwarded-Proto is https
Nginx 为我们的应用终止 SSL,Nginx 和应用服务器之间的通信发生在端口 8080 上,我们的应用没有在配置中设置 grails.serverURL
。
我们有一个常规重定向:
redirect uri: '/login'
但是当通过 HTTPS 访问时,重定向返回:
Location: https://domain.com:80/login
因此,浏览器尝试通过端口 80 打开 SSL 连接并失败。
从 nginx.conf
中删除 X-Forwarded-Proto
header 或添加 X-Forwarded-Port
( 推荐)解决了问题。
添加以下任何一项对我有用:
proxy_set_header X-Forwarded-Port $server_port;
或
proxy_set_header X-Forwarded-Host $host:$server_port;
Nginx 为我们的应用终止 SSL,Nginx 和应用服务器之间的通信发生在端口 8080 上,我们的应用没有在配置中设置 grails.serverURL
。
我们有一个常规重定向:
redirect uri: '/login'
但是当通过 HTTPS 访问时,重定向返回:
Location: https://domain.com:80/login
因此,浏览器尝试通过端口 80 打开 SSL 连接并失败。
从 nginx.conf
中删除 X-Forwarded-Proto
header 或添加 X-Forwarded-Port
( 推荐)解决了问题。
添加以下任何一项对我有用:
proxy_set_header X-Forwarded-Port $server_port;
或
proxy_set_header X-Forwarded-Host $host:$server_port;