![没有有效期的 PHP 会话。负载均衡器上的粘性会话会发生什么?](https://linux22.com/image/671794/%E6%B2%A1%E6%9C%89%E6%9C%89%E6%95%88%E6%9C%9F%E7%9A%84%20PHP%20%E4%BC%9A%E8%AF%9D%E3%80%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E7%B2%98%E6%80%A7%E4%BC%9A%E8%AF%9D%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我正在使用没有到期期限的 PHP 会话,使用具有粘性会话的 Amazon EC2 Elastic Load Balancing。负载均衡器上生成的应用程序粘性会话会发生什么情况?粘性何时到期?
答案1
从文档:
负载均衡器使用特殊的 cookie 来跟踪每个侦听器的每个请求的实例。当负载均衡器收到请求时,它首先检查请求中是否存在此 cookie。如果存在,则将请求发送到 cookie 中指定的实例。如果没有 cookie,负载均衡器将根据现有的负载平衡算法选择一个实例。将 cookie 插入响应中,以将来自同一用户的后续请求绑定到该实例。粘性策略配置定义了 cookie 过期时间,它确定了每个 cookie 的有效期。cookie 在其有效期到期后会自动更新。
如果某个实例发生故障或变得不健康,负载均衡器将停止将请求路由到该实例,并根据现有的负载均衡算法选择一个新实例。请求将路由到新实例,就像没有 cookie 一样,会话不再粘性。
如果客户端切换到不同的监听器,粘性就会丧失。
因此,这取决于您的 ELB 配置,并且取决于您设置有效期限用于会话粘性。
(可选)有效期限,输入 cookie 的有效期(以秒为单位)。超过此期限后,cookie 将被视为过期。如果您未指定有效期,则粘性会话将持续整个浏览器会话。
因此,如果您未指定到期期限,它将持续到 PHP 会话结束为止。