nginx 反向代理问题小结

nginx 反向代理问题小结

location /Autops

{

proxy\_pass http://a.test.com;

}

① 循环跳转,nginx条件判断跳出

在nginx中配置好,死活都无法跳转。

通过F12查看,其实已经跳转过去了,但是接口在认证的地方循环在跳转。

{width=”554”
height=”115”}

应该是登陆接口路由有问题,由于我请求的对方接口是直接访问,无需路由。
所以的添加条件判断,请求完接口之后,直接退出。(此处应该去检查登陆路由,由于时间关系,直接采取回避的方法。)

匹配到/Autops/api接口下的任何请求,请求完毕之后直接break,不往下请求。

location /Autops/api/{

if (-e \$document\_root/Autops/api/dbuser/\$request\_uri) {

    rewrite \^/(.\*)\$ /Autops/api/dbuser/\$1 break;

     break;

}

}



location / {

    try\_files \$uri \$uri/  /Autops/web/index.php?\$args;

}

顺便了解下 try_files 的作用:
按照顺序请求如上地址,如果不存在或匹配不到会访问最后一个参数。也即是改写参数。

② 请求跳转是不跳转非index文件

原服务器地址: http://b.test.com/Autops/api/dbuser/dbuser.php

实际跳转的是:http://a.test.com/Autops/api/dbuser/dbuser.php

实际的结果是 怎么都无法跳转
,但是实际的访问接口是可以访问到。通过查看access日志,根本没有跳转过去,当你不加文件的时候是可以正常跳转过去的,也就是

原服务器地址: http://b.test.com/Autops/api/dbuser/

实际跳转的是:http://a.test.com/Autops/api/dbuser/

可以正常跳转,也就是当你直接访问接口的文件,即使你加上了反向代理,也是不会跳转的,而是直接访问当前服务器的应用。(低级错误!!!!)

坚持原创技术分享,您的支持将鼓励我继续创作!