好吧,我已经把我的屁股搞定了,并通过DNS& amp; BIND,并没有找到这个问题的答案.即使302指向同一个URL,302服务器响应是否强制另一个“位置”的DNS查找?
关于这个问题的一些背景:
我运行硬件负载平衡器,并进入登录过程,有时卡在“循环”;即,成功的身份验证清除字段并重新启动空登录屏幕,错误的身份验证正确显示“访问被拒绝”.我的工作理论(基于数据包捕获)是登录过程正在向浏览器返回302响应,这导致浏览器再次查找http://internal.prod.server/application_context/login.jsp并让浏览器跳转到不同的GSLB地址.
不幸的是,这种情况在周末显然已经被打破了,所以我无法获得明确的数据包捕获信息,显示出不良行为.半不幸的是,我是那些疯狂的网络奇迹之一,不能简单地接受它不再破坏,需要明确地说出原始问题是什么……
编辑:
负载均衡请求
; <<>> DiG 9.7.0-P1 <<>> ps.svc.cfx ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY,status: NOERROR,id: 31149 ;; flags: qr rd ra; QUERY: 1,ANSWER: 1,AUTHORITY: 1,ADDITIONAL: 2 ;; QUESTION SECTION: ;ps.svc.cfx. IN A ;; ANSWER SECTION: ps.svc.cfx. 10 IN A 192.168.125.202 ;; AUTHORITY SECTION: ps.svc.cfx. 3600 IN NS gslb.cn.example.com. ;; ADDITIONAL SECTION: gslb.cn.example.com. 21600 IN A 172.19.1.200 gslb.cn.example.com. 21600 IN A 172.18.1.200 ;; Query time: 10 msec ;; SERVER: 172.18.1.2#53(172.18.1.2) ;; WHEN: Mon Aug 2 13:01:21 2010 ;; MSG SIZE rcvd: 108
此示例中的172.18.1.2响应程序是运行内部/外部视图的BIND服务器集群,并从隐藏的主服务器同步.
解决方法
不,应该强制进行DNS查找的
302响应没有什么特别之处.但是,根据本地DNS设置的配置方式,DNS结果可能随时过期.因此,您必须允许在第一个请求之后和第二个请求之前(由302引起)进行查找.
为保守起见,您需要允许每个请求进行DNS查找.