提示
X
本案例来自tskb,请前往tskb修改源内容:立即前往
'>

基础排查-步骤三:cookie改写会话保持原理及排障注意事项

|

问题描述

节点池引用Cookie改写会话保持时,有时会不生效,同一个终端的多个关联请求,被调度到多个节点上。

告警信息

以下图为例解释改写的原理:

根因

通过上述数据的分析,cookie改写的原理汇总如下:

1、服务器返回的HTTP应答是已经携带cookie信息,如Set-Cookie: sangfor1=88598220; path=/ 。
2、服务器HTTP应答经过AD设备后被改写cookie字段,比如Set-Cookie: sangfor1=SANGFOR_98184645_88598220; path=/  。
3、客户端再次访问,携带上该cookie信息经过AD分发,优先查询cookie记录表,从而匹配上一次的节点。
4、脱去改写的cookie值,再转发给节点,对于服务器来说,是完全透明的。

解决方案

1、新建Cookie改写会话保持,同时将该会话保持引用到节点池中。

2、客户端第一次访问业务系统,抓取后端数据包可知,服务器初次应答时,也返回了自己的cookie信息。

3、服务器返回的cookie信息,经过AD的改写后,在原来基础上,新增了一部分cookie信息,同时返回给客户端。

4、客户端收到AD转发的数据,Cookie信息也随着改变


5、客户端后续访问其他的URL链接也都会带上改写后的新cookie值

6、AD收到客户端发过来的其他请求,也都携带了新的cookie,同时查询会话保持记录,从而调度给上一次的节点服务器。


7、经过AD的会话保持记录调度给上一次的节点服务器,但会脱去被改写的值,转发给节点服务器,所以对于服务器来说,是完全透明的。

建议与总结

理解上述改写原理后,遇到cookie改写不生效时,建议排查如下:

1、检查客户端浏览器的设置,避免禁用cookie相关的设置,导致浏览器无法正常提交cookie信息。

2、查看设备服务日志,是否存在节点故障的日志,节点故障会影响到会话保持记录。

3、基于改写的原理,需要保证Cookie名称填写正确,才会实现在原来基础上的改写。



4、节点服务器的繁忙状态也会影响到会话保持,取决下图的配置结果,假设配置了启用,则节点繁忙了,不会走会话保持记录,而是重新调度,反之继续匹配会话保持记录。

我要分享
文档编号: 250253
作者: admin
更新时间: 2023-04-20 14:47
适用版本: