azure - 使用同一帐户 + 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,因为现在每个后端池都有知识产权?
解决方案
如果要保留会话关联,则不应将应用程序网关的后端指向负载均衡器 IP。更多细节如下。要解决此问题,您应该直接将 VMSS 添加为应用程序网关的后端池成员。您可以通过门户或 PowerShell/CLI 执行此操作。
当您将后端指向负载均衡器 IP 时,负载均衡器会执行 5 个元组(src IP、src 端口、目标 IP、目标端口、协议)哈希,并根据哈希将流量发送到 VMSS 中的实例。因此,在您的设置中,用户请求到达 Application Gateway,它执行循环分发,然后到达负载均衡器,负载均衡器再次执行 5 元组哈希。这导致了上述问题。
推荐阅读
- reactjs - 部署后反应项目错误(最大调用堆栈)
- unicode - Free Pascal 3.2.0 中的 Unicode 编码/解码错误
- python - 禁用均值函数的舍入
- java - 在这种特定情况下,如何阻止 Eclipse 缩进额外的空格?
- python - 如何使用登录的用户名在 Python Django 帖子上添加评论?
- powershell - 在 powershell 中转义 $
- ag-grid - 以编程方式删除所有分组和过滤的简单方法
- linux - while循环比较文件
- python - 当我尝试使用 arff.dump() 将 pandas DataFrame 文件保存到 arff 时,为什么会显示错误?
- python - Plotly 密度热图格式化色阶和悬停文本