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