nginx之redirect方式时,内外网端口不一致,造成redirect跳转端口不对的解决方案 - ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台-ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台
记录工作点滴
分享运维知识

nginx之redirect方式时,内外网端口不一致,造成redirect跳转端口不对的解决方案

我们在配置nginx代理时,正常外网的映射与内网端口一致时,不会出现redirect跳转不对的情况,但如果内网监听的端口与外网监听的端口不一致时,就会产生redirect跳转不对的情况。为了解决这个问题,必须配置proxy_direct, 以保持redirect时端口不一样的问题;表现为:

访问外网地址:http://221.***.***.238:2280/login时,登录成功后,后台java代码会发redirect响应,让前端浏览器请求loginSuccess服务,但由于后台nginx监听的是80端口,这时,nginx会设置redirect的路径为:http://221.***.***..238/loginSuccess(80由于是http的默认端口,不需要附带),从而造成访问不到正确的Url 地址;
upstream sctm_server {
server 192.***.***..7:18005;
}

通过以上配置,在执行http://221.***.***.238:2280/login时,登录成功后,后台java代码会发redirect响应,让前端浏览器请求loginSuccess服务,这时,nginx会设置redirect的路径为:http://221.***.***.238:2280/loginSuccess;表现为返回给前端浏览器的response附加了location值为:http://221.***.***.238:2280/loginSuccess,这样即可正常访问后台服务;

未经允许不得转载:ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台 » nginx之redirect方式时,内外网端口不一致,造成redirect跳转端口不对的解决方案

如果文章对你有帮助,欢迎点击上方按钮打赏作者

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址