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

日期: 2017-04-08 00:45:10 / 人气: 895

会话保持的作用是什么?

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

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

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

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

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

为什么会话保持会失效?

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

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

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

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

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

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

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

重写 cookie 和植入 cookie 是什么?


  • 植入 cookie 是指由负载均衡服务器来给客户端设置 Cookie,即 HTTP/HTTPS 响应报文中插入 SERVERID 字串和客户配置时指定的超时时间,在此时间内会将同一客户端的请求传入到同一个后端 ECS 服务器,当客户端浏览器再次此 cookie 访问时,负载均衡不会传给后端的 ECS 服务器,即插入 cookie 关键字与值对后端 ECS 来说是完全不需要知道的。
  • 重写 cookie 是指负载均衡实例的拥有者可以按照自己的需要自定义在后端的 ECS 服务器回复 HTTP/HTTPS 响应中插入 cookie 关键字与值,后端的 ECS 服务器上同时需要维护此 cookie 的超时时间与生存时间,在此响应报文经过负载均衡时,负载均衡会基于一定规则重写 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 字串。

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

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



现在致电 0755-88820392 OR 查看更多联系方式 →