C#程序使用Nginx时出现的重定向问题

博客讲述了Nginx重定向问题,系统页面连接超时,排查发现页面重定向到外网网址时部分页面端口号异常。给出两种解决办法,一是修改Nginx配置,二是修改代码。还提及外网映射下页面丢失问题,可修改外网映射或IIS端口号,也可修改代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx重定向

前段时间接到同事的反馈说是系统中某个页面提示连接超时。我排查了一下,发现是页面重定向了。

打个比方:正常来讲,如果我在iis上部署了一套程序,端口号是8081,内网网址是http://192.168.10.1:8081,因为客户要求要能在外网上做业务,于是配置了nginx。设置的外网端口号是8082,外网网址是http://234.234.234.234:8082/,每次访问系统的页面时,都会把网址重定向到nginx配置的外网网址上。
但是,当访问部分页面时,网址虽然还是外网的网址http://234.234.234.234,但端口号又变回了8081。翻查了一下代码,发现跳转页面的时候用的是Page.Response.Redirect("xxx.aspx?"); 又把页面给重定向了,但为什么会把端口号重定向,就不是很了解了。
解决的办法也很简单,据我所知的是两种:

1、修改nginx配置,比如说:

原来的nginx配置是:
 proxy_pass http://192.168.10.1:8081/;

修改后为:
          proxy_pass http://192.168.10.1:8081/;
#增加下面配置进行重定向到nginx的ip或者域名
            proxy_redirect  http://234.234.234.234:8081/ http://234.234.234.234:8082/;

#号部分是注释掉的内容。这个办法就是再跳一次,反复横跳。

2、修改代码,换一种打开页面的方法,别用Redirect,免得一直重定向,反复横跳。

外网映射

其实还有一种方法,但是就和nginx无关了。那种是设置了外网映射的情况下出现页面丢失的情况。解决的思路有点不同,方法就是修改外网映射的端口号或修改iis的端口号,使两者保持一致即可。当然,上面提到的第二个方法 - - 修改代码的方法依然能用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值