使用负载均衡SLB时会话保持的功能无效

使用负载均衡SLB时会话保持的功能无效

更新时间:2020-05-19 10:41:12

问题描述

使用负载均衡SLB时,会话保持的功能无效。

问题原因

可能的问题原因如下。

  • 负载均衡SLB的监听配置中未开启会话保持功能。
  • 会话保持时间设置过小。
  • 使用HTTP/HTTPS监听,当后端服务器返回4XX的HTTP状态码时,报文中无法插入会话保持所需的Cookie,导致会话保持失效。
  • 使用HTTP/HTTPS监听,当后端服务器返回302重定向的HTTP状态码时,会话保持中的SERVERID字串将被改变,导致会话保持失效。

解决方案

参考如下步骤进行排查和解决。

  1. 登录阿里云管理控制台,进入负载均衡SLB的实例管理页面,确认监听选项卡中会话保持状态为已开启。如果状态为关闭,请参见添加TCP监听,开启会话保持功能。
  2. 检查是否调整过会话保持的超时时间。如果超时时间设置过小,可能会导致会话保持失败。可以尝试使用默认超时时间或者适当增加超时时间,同时观察会话保持状态。关于如何观察会话保持状态,请参见如何使用curl命令测试负载均衡SLB会话保持的有效性
  3. 在浏览器端捕抓请求与响应的回复信息,或使用抓包软件分析是否存在如下报文。如果存在如下报文,则建议改用TCP监听。因为TCP监听是通过源客户端的IP地址进行会话保持的。您还可以在后端Web程序中插入Cookie,并对其进行判断,以确保会话保持的有效性。
    • 302重定向的报文:负载均衡植入Cookie时,如果后端ECS实例返回302重定向的报文,将改变会话保持中的SERVERID字串,导致会话保持失效。
    • 4XX响应码的报文:负载均衡无法在4XX响应码的报文中插入会话保持所需的Cookie。

相关文档

适用于

  • 负载均衡SLB