【问题标题】:Is the most recent AWSALB cookie required? (AWS ELB Application Load Balancer)是否需要最新的 AWSALB cookie? (AWS ELB 应用程序负载均衡器)
【发布时间】:2018-08-18 06:10:17
【问题描述】:

观察

当使用 Amazon ELB Application Load Balancer 并使用 Sticky Sessions 时,负载均衡器会在第一个请求中插入一个名为 AWSALB 的 cookie。为了让下一个请求坚持到同一个目标节点(EC2 实例),cookie 应该包含在该请求中。这样做时,负载均衡器似乎在对第二个请求的响应中插入了不同的 cookie 值。当在第三个请求中包含这个新的 cookie 值时,我们会在响应中得到一个新的 cookie 值。等等……

(这与 Sticky Sessions works with the Classic Load Balancer 的方式不同,其中 cookie 被命名为 AWSELB 并保留其值直到被客户端或负载均衡器丢弃。)

AWSALB cookie 始终更改值的原因似乎是(如 docs 所述):

cookie 的名称是 AWSALB。这些 cookie 的内容使用旋转密钥进行加密。您无法解密或修改负载平衡器生成的 cookie。

因此,即使 cookie 的内容可能相同,我们也无法判断。

问题

问题是对负载均衡器的请求是否必须始终包含最近收到的 AWSALB cookie 值,或者是否可以发送一些以前收到的值(来自同一个粘性会话,当然)。

如果这是一项要求,AWS ELB 应用程序负载均衡器将无法为执行多个并行请求的客户端(在收到第一个 AWSALB cookie 之后)提供服务,而只能为按顺序执行所有请求的客户端提供服务(一次一个)。

有人能解释一下吗?

【问题讨论】:

    标签: amazon-web-services elastic-load-balancer sticky-session


    【解决方案1】:

    在这里等待回复后,我向亚马逊提出了一个支持案例,并得到了这样的回复:

    我了解您想确认是否需要为每个请求提供最新的粘性 cookie。

    您正确地注意到 CLB 和 ALB 之间的行为不同。 由于 Application Load Balancer 将流量引导到多个目标组的不同功能,每个目标组都有自己的粘性,因此 ALB 对引导流量所需的信息进行加密,并为每个请求提供新的 cookie。这可确保始终正确遵守不同组的不同时间。

    客户端始终可以获取最新的 cookie,因为内部信息将确保正确路由到同一目标。 如果您想重用单个 cookie 也是可能的,ALB 将尊重它并根据 cookie 中的粘性正确路由流量。不过,我不建议在超过 60 秒的时间内使用相同的 cookie。这是为了确保在目标变得不可用的情况下,您可以获得具有新粘性信息的新 cookie,这些信息会将您引导到新目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-25
      • 2015-08-24
      • 2018-02-26
      • 2017-01-25
      • 2019-02-14
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多