searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

负载均衡会话保持--cookie插入

2023-11-14 05:54:03
12
0

为使得多个独立且关联的请求能被同一个后端主机的服务处理,负载均衡产品提供了会话保持功能。7层负载均衡可通过在server回复给client的http应答报文中插入特定cookie使得携带此cookie的请求均发给同一个后端主机,从而实现会话保持功能。

 

常用配置说明:

session_sticky [cookie=<name>] [maxage=xx] [mode=insert|rewrite|prefix] [option=indirect|direct] [maxidle=xx] [maxlife=xx] [fallback=on|off] [hash=plain|md5]

cookie:cookie名称

maxage:单位秒,超过指定时间后客户端(浏览器,curl等)不再使用该cooke,配置后会指定cookie的Expires时间为插入时的当前时间加上maxage

mode:mode模式有insert、rewrite和prefix。本文只讲解cookie插入,即插入名称为<name>,值为对应已选择的后端主机信息的cookie

option:option有两个选择indirect和direct,indirect 负载均衡会将client发送的名为<name>的cookie删除掉后再发往后端主机,使得对于后端主机该cookie透明不可见;direct则不进行删除

maxidle:和maxlife成对配置,cookie的值中会记录首次插入时间和上次使用时间,用当前时间减去上次使用时间计算出空闲时间与maxidle进行比较,若超时则通过加权轮转算法选出新的后端主机并更新从server发往client的应答报文中对应cookie的值

maxlife:和maxidle成对配置,cookie的值中会记录首次插入时间和上次使用时间,用当前时间减去首次插入时间计算出cookie存活时间和maxlife进行比较,若超时则通过加权轮转算法选出新的后端主机并更新从server发往client的应答报文中对应cookie的值

fallback:默认为开启,即若cookie中指定的后端主机健康检查状态为down或获取cookie出异常,则通过加权轮转算法选出新的后端主机并更新从server发往client的应答报文中对应cookie的值

hash:默认md5,默认使用md5对后端主机信息进行hash处理,可配置为plain明文

 

请求流程:

首次请求(未携带名称为<name>的cookie),负载均衡为该请求通过加权轮转选择后端主机,并在server发送的应答报文中插入cookie

Set-Cookie: lbinsertroute=0ca03ef54c3f3d06011ff73b8fb193d6; Path=/; Max-Age=100; Expires=Wed, 22-Mar-23 07:13:10 GMT

再次请求(携带名称为<name>的cookie),负载均衡根据cookie的值找到对应后端主机,进行报文的发送

Cookie pair: lbinsertroute=0ca03ef54c3f3d06011ff73b8fb193d6

 

测试工具说明:

若使用curl进行负载均衡会话保持cookie插入功能的测试验证,需要在发送首次请求时使用-c获取cookie信息,之后的请求需使用-b指定携带的cookie

curl -c cookie.txt x.x.x.x:xx -v 

curl -b cookie.txt x.x.x.x:xx -v

0条评论
0 / 1000
李****冉
2文章数
0粉丝数
李****冉
2 文章 | 0 粉丝
李****冉
2文章数
0粉丝数
李****冉
2 文章 | 0 粉丝
原创

负载均衡会话保持--cookie插入

2023-11-14 05:54:03
12
0

为使得多个独立且关联的请求能被同一个后端主机的服务处理,负载均衡产品提供了会话保持功能。7层负载均衡可通过在server回复给client的http应答报文中插入特定cookie使得携带此cookie的请求均发给同一个后端主机,从而实现会话保持功能。

 

常用配置说明:

session_sticky [cookie=<name>] [maxage=xx] [mode=insert|rewrite|prefix] [option=indirect|direct] [maxidle=xx] [maxlife=xx] [fallback=on|off] [hash=plain|md5]

cookie:cookie名称

maxage:单位秒,超过指定时间后客户端(浏览器,curl等)不再使用该cooke,配置后会指定cookie的Expires时间为插入时的当前时间加上maxage

mode:mode模式有insert、rewrite和prefix。本文只讲解cookie插入,即插入名称为<name>,值为对应已选择的后端主机信息的cookie

option:option有两个选择indirect和direct,indirect 负载均衡会将client发送的名为<name>的cookie删除掉后再发往后端主机,使得对于后端主机该cookie透明不可见;direct则不进行删除

maxidle:和maxlife成对配置,cookie的值中会记录首次插入时间和上次使用时间,用当前时间减去上次使用时间计算出空闲时间与maxidle进行比较,若超时则通过加权轮转算法选出新的后端主机并更新从server发往client的应答报文中对应cookie的值

maxlife:和maxidle成对配置,cookie的值中会记录首次插入时间和上次使用时间,用当前时间减去首次插入时间计算出cookie存活时间和maxlife进行比较,若超时则通过加权轮转算法选出新的后端主机并更新从server发往client的应答报文中对应cookie的值

fallback:默认为开启,即若cookie中指定的后端主机健康检查状态为down或获取cookie出异常,则通过加权轮转算法选出新的后端主机并更新从server发往client的应答报文中对应cookie的值

hash:默认md5,默认使用md5对后端主机信息进行hash处理,可配置为plain明文

 

请求流程:

首次请求(未携带名称为<name>的cookie),负载均衡为该请求通过加权轮转选择后端主机,并在server发送的应答报文中插入cookie

Set-Cookie: lbinsertroute=0ca03ef54c3f3d06011ff73b8fb193d6; Path=/; Max-Age=100; Expires=Wed, 22-Mar-23 07:13:10 GMT

再次请求(携带名称为<name>的cookie),负载均衡根据cookie的值找到对应后端主机,进行报文的发送

Cookie pair: lbinsertroute=0ca03ef54c3f3d06011ff73b8fb193d6

 

测试工具说明:

若使用curl进行负载均衡会话保持cookie插入功能的测试验证,需要在发送首次请求时使用-c获取cookie信息,之后的请求需使用-b指定携带的cookie

curl -c cookie.txt x.x.x.x:xx -v 

curl -b cookie.txt x.x.x.x:xx -v

文章来自个人专栏
弹性网络
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0