负载均衡器(Load Balancer)如何保持会话
参考:
https://www.infraexpert.com/study/loadbalancer5.html
https://support.f5.com/csp/article/K83419154
※以下内容以BIG-IP实现的HTTP负载均衡为例
利用源地址(Source address affinity persistence)
根据发送请求的客户端IP维持会话
利用cookie(Cookie persistence)
Insert Mode
LB设备在为客户端选定server后在server回复客户端的response里加入cookie(名为BIGipServer,内容为对应server的地址端口(当然是编码过的)以及有效期)。之后客户端的请求都会带着这个cookie,LB设备以此判断将请求发往哪台server。※似乎是被用的最多的方法
Rewrite Mode
由server向response里写入cookie(一般会有特定的要求,如名称必须为BIGipCookie,cookie的值“must contain a total of 120 zeros”之类的),LB设备会修改cookie的值(如名称BIGipCookie→BIGipServer,内容改成对应server的地址端口(当然是编码过的))
Passive Mode
由server向response里写入cookie,LB设备仅读取cookie的值。因此server有责任确保cookie含有需要的server信息
Hash Mode
由server向response里写入cookie,LB设备对cookie计算散列并创建散列到server的映射关系
夹带私货
-
BIG-IP AFM用于配置会话保持的GUI界面位于Local Traffic > Profiles > Persistance > cookie。可定制,可新建
-
应用配置的界面为Local Traffic > Virtual Servers > > Resources > Default Persistence Profile