Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1037105
  • 博文数量: 157
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1388
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-09 15:37
文章分类

全部博文(157)

文章存档

2023年(9)

2022年(2)

2021年(18)

2020年(7)

2017年(13)

2016年(53)

2015年(55)

我的朋友

分类: 服务器与存储

2015-07-06 14:00:39

应用场景:
我要测试一个需求,用户访问源的调度器,调度器给代理服务器返回302,location地址为真正源的地址,调度器在中间实现个负载均衡的作用,由于源是别人的我无法控制源的返回值,而我还要对源返回的错误码情况进行测试,所以我想自己搭建个本地测试环境,源返回值自己控制

我的配置:
我的调度器和源都是nginx搭建的,开始想一台机器(ip:192.168.20.5,nginx服务端口为8080)又当调度器又当源,下面是302跳转配置:
在nginx.conf中的server中配置 rewrite ^/(.*)    redirect;  
我的代理服务器ats的配置:
remap.config:  map  
其中这个域名可以通过ats的dns解析到我的这台机器192.168.20.5

我的操作:
我发送请求:wget -e http_proxy=ats代理服务器的ip和端口 "” -S 或者浏览器中访问 
则会出现好多个302跳转(多跳转了20次),最后一次的请求变成了  (21个test)

原因:
因为302跳转后的location也是本机,根据端口又跑到了nginx.conf中的   rewrite ^/(.*) redirect;   再次跳转,循环跳转了,但不知道为什么只循环了21次就停止了(多循环了20次),自以为得无限循环跳转下去

解决办法有二:
1. 可以配置rewrite到其他的源服务器,不要rewrite到本身nginx服务器
2. 修改rewrite的正则表达式为: rewrite ^/((?!test).)*$  redirect;  可达到只302一次,不多次循环
阅读(10139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~