nginx反向代理配置
location /Autops
{
proxy_pass https://a.test.com;
}
存在问题与分析问题
问题现象
循环跳转,nginx条件判断跳出
在nginx中配置以上反向配置,死活都无法正常跳转。
问题分析
通过F12查看,其实已经跳转过去了,但是接口在认证的地方循环在跳转。
应该是登陆接口路由有问题,由于我请求的对方接口是直接访问,无需路由。 所以的添加条件判断,请求完接口之后,直接退出。(此处应该去检查登陆路由,由于时间关系,直接采取回避的方法。)
匹配到/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://a.com/Autops/api/dbuser/dbuser.php
实际跳转的是:http://b.com/Autops/api/dbuser/dbuser.php
实际的结果是 怎么都无法跳转 ,但是实际的访问接口是可以访问到。通过查看access日志,根本没有跳转过去,当你不加文件的时候是可以正常跳转过去的,也就是
原服务器地址: http://a.com/Autops/api/dbuser/
实际跳转的是:http://b.com/Autops/api/dbuser/
可以正常跳转,也就是当你直接访问接口的文件,即使你加上了反向代理,也是不会跳转的,而是直接访问当前服务器的应用。
补充
- 遇到该类问题,日志调试是关键
- nginx跳转常用语法必须牢固掌握
文章作者 | 明哥 |
文章地址 | https://www.pvcreate.com/index.php/archives/63/ |
创建时间 | 2016-10-27 |
关注订阅 | 微信订阅号 |
开源项目 | https://gitee.com/lookingdreamer |
工具市场 | https://gitee.com/lookingdreamer/SPPPOTools |