阅读342 返回首页    go 小米 go 小米 note


会话保持常见问题__常见问题_负载均衡-阿里云

会话保持的作用是什么?

将同一用户端的请求转发给同一后端的ECS服务器处理。

会话保持如何开启?持续时间是多久?

在您进行负载均衡服务监听配置时就可以选择是否开启会话保持。您可以针对不同的监听配置不同的会话保持策略。会话保持的最长时间是:86400秒(24小时)。

负载均衡支持什么类型的会话保持?

针对7层(HTTP协议)服务,负载均衡系统是基于cookie的会话保持。针对4层(TCP协议)服务,负载均衡系统是基于IP地址的会话保持。

为什么会话保持会失效?

目前如下场景下会话保持会遇到失效:

4层会话保持是基于源IP的,如果用户是经过NAT网关访问的,有可能NAT后的IP变化,导致会话保持失效

7层会话保持是基于cookie的,已知的问题为如后端应用返回302跳转到其他负载均衡七层地址会导致此会话的cookie失效

我有多个域名,需要针对不同的域名配置不同的会话保持开启和关闭规则,是否支持?如何操作?

支持。您可以通过负载均衡系统提供的“重写服务cookie”的会话保持方式来实现这一需求。

会话保持可设置哪种类型的 cookie?

HTTP/HTTPS 监听可使用植入 cookie 和重写 cookie 来进行会话保持。

重写cookie和植入cookie 是什么?

  • 植入cookie是指由SLB服务器来给客户端设置Cookie,即http/https响应报文中插入SERVERID字串和客户配置时指定的超时时间,在此时间内会将同一客户端的请求传入到同一个后端ECS服务器,当客户端浏览器再次此cookie访问时SLB不会传给后端的ECS服务器,即插入cookie关键字与值对后端ECS来说是完全不需要知道的。
  • 重写cookie是指SLB实例的拥有者可以按照自己的需要自定义在后端的ECS服务器回复http/https响应中插入Cookie关键字与值,后端的ECS服务器上同时需要维护此cookie的超时时间与生存时间,在此响应报文经过SLB时,SLB会基于一定规则重写cookie的值字串用于会话保持,当携带Cookie关键字与值的请求到来时会将此cookie关键字与值传入到初始插入cookie的后端ECS服务器;但cookie值的内容已经与初始相比已经改变。

cookie 的超时时间应设置为多少?

  • 植入cookie可在控制台上配置1-86400秒
  • 重写cookie需要用户后端ECS服务维护超时时间

如何分析会话保持字串?

可以在浏览器中用F12查看回应报文中是否含有SERVERID字串或用户指定的关键字,或者运行curl www.xxx.com -c /tmp/cookie123 保存一下cookie,再用 curl www.xxx.com -b /tmp/cookie123 访问。

为什么有时候会话保持失败

  • 排查创建http/https监听时“控制台配置”中是否开启了会话保持功能。

  • http/https监听在后端 RS 返回 4xx 响应码的报文中无法插入会话保持所需 cookie;这种情况下如果仍强需求会话保持建议改用tcp监听,因为tcp监听是以源客户端的IP来做会话保持的,另外后端ECS服务上也可以插入cookie,并增加cookie的判断来多重保障。

  • 302重定向会改变会话保持中的SERVERID字串。

    SLB植入cookie时如果后端ECS中有回复302重定向的报文,将改变会话保持中的SERVERID字串,导致会话保持失效;建议排查方法在浏览器端捕抓请求与响应的回复,或用抓包软件抓包后分析是否存在302的响应报文,对比前后报文的cookie中的SERVERID字串是否不同了;这种情况下如果仍强需求会话保持建议改用tcp监听,因为tcp监听是以源客户端的IP来做会话保持的,另外后端ECS服务上也可以插入cookie,并增加cookie的判断来多重保障

  • 排查会话保持时间设置是否过小导致。

最后更新:2016-12-20 17:02:28

  上一篇:go 如何获取真实来源IP__常见问题_负载均衡-阿里云
  下一篇:go 健康检查常见问题__常见问题_负载均衡-阿里云