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