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,这样即可正常访问后台服务;

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nginx是一个开源的高性能的Web服务器和反向代理服务器。在Nginx中,全局参数不带端口是指在Nginx配置文件中定义的全局配置指令,这些指令用于设置Nginx服务器的全局参数,而不需要指定端口Nginx全局参数的设置通常在nginx.conf配置文件中完成。这些参数可以影响Nginx服务器的整体行为和性能。 例如,以下是一个Nginx配置文件的示例,其中省略了端口号: ```nginx user nginx; worker_processes auto; error_log /var/log/nginx/error.log; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 65; server { listen 80; server_name example.com; root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ =404; } } } ``` 在上面的例子中,我们可以看到全局设置指令,如`user`用于指定Nginx的运行用户,`worker_processes`用于设置Nginx的工作进程数量,`error_log`用于指定错误日志文件路径,`events`块中的`worker_connections`用于设置每个工作进程的最大连接数。 这些全局参数的设置不需要指定端口号,因为它们是针对整个Nginx服务器而言的。如果需要为特定的虚拟主机或服务配置端口号,则可以在对应的`server`块中设置。 总而言之,Nginx的全局参数不带端口指的是在配置文件中设置的用于影响整体行为和性能的指令,不需要特定的端口号来定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值