首页 > 解决方案 > 使用同一帐户 + Azure 应用程序网关的多个用户登录的会话值更改

问题描述

我的网站在 Azure VMSS 下的 VM 上运行。除此之外,还有公共负载均衡器。此外,拥有一个具有相同公共负载均衡器 IP 的后端池的应用程序网关。最后在 Azure DNS 中,我有 Azure App Gateway 公共 IP 的记录。问题是,当多个用户在各自的机器上使用相同的用户 ID 登录时,很少有会话值会以某种方式相互交换,从而导致进一步的功能错误,因为这些会话值被存储然后从数据库中获取。几点:

1)我尝试了基于 App Gateway Cookie 的 Affinity 和负载均衡器会话持久性的所有可能组合,但没有成功。

2) 它以前托管在 AWS 上,一切正常。它有 AWS 经典负载均衡器和梭子鱼 WAF。

以前有人遇到过同样的问题吗?根据这个https://support.microsoft.com/en-in/help/4033827/troubleshooting-azure-application-gateway-session-affinity-issues我必须为后端池添加 FQDN,因为现在每个后端池都有知识产权?

标签: azuresession-cookiesazure-application-gatewayazure-load-balancer

解决方案


如果要保留会话关联,则不应将应用程序网关的后端指向负载均衡器 IP。更多细节如下。要解决此问题,您应该直接将 VMSS 添加为应用程序网关的后端池成员。您可以通过门户或 PowerShell/CLI 执行此操作。

当您将后端指向负载均衡器 IP 时,负载均衡器会执行 5 个元组(src IP、src 端口、目标 IP、目标端口、协议)哈希,并根据哈希将流量发送到 VMSS 中的实例。因此,在您的设置中,用户请求到达 Application Gateway,它执行循环分发,然后到达负载均衡器,负载均衡器再次执行 5 元组哈希。这导致了上述问题。


推荐阅读