前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx 反向代理循环跳转问题

nginx 反向代理循环跳转问题

作者头像
明哥的运维笔记
发布2019-01-30 10:32:23
2.7K0
发布2019-01-30 10:32:23
举报
文章被收录于专栏:运维笔记运维笔记
  • nginx反向代理配置
  • 存在问题与分析问题
    • 问题现象
    • 问题分析
    • 问题原因
  • 补充

nginx反向代理配置

代码语言:javascript
复制
location /Autops
{
    proxy_pass https://a.test.com;
}

存在问题与分析问题

问题现象

循环跳转,nginx条件判断跳出 在nginx中配置以上反向配置,死活都无法正常跳转。

问题分析

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

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

代码语言:javascript
复制
    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/ 可以正常跳转,也就是当你直接访问接口的文件,即使你加上了反向代理,也是不会跳转的,而是直接访问当前服务器的应用。

补充

  1. 遇到该类问题,日志调试是关键
  2. nginx跳转常用语法必须牢固掌握
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nginx反向代理配置
  • 存在问题与分析问题
    • 问题现象
      • 问题分析
        • 问题原因
        • 补充
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档