今天 12:00,我将 DNS 条目更改为指向应用程序网关而不是 Azure Frontdoor。执行此操作后,出现了一些状态代码为 0 的失败。有趣的是,只有 POST 请求被阻止。 GET 和选项请求工作正常。此外,在日志中,应用程序网关似乎未解析到服务器的路由。问题是此行为是客户端防火墙问题还是实际上是应用程序网关问题。
事实: WAF 处于检测模式的应用程序网关 WAFv2 路由到后面的应用程序服务。 对于某些客户端,Post 请求收到带有 0 字节的状态代码 0,并且没有请求标头 Get 和 Options 请求适用于所有客户端 更改后2-3小时发生
这种行为有什么逻辑解释吗?
经过大量挖掘,我们发现我们在应用程序网关上使用了带有 TLSv1.3 的 HTTP/2,并且一些执行 SSL 检查的防火墙发送了带有 TLSv1.2 的 HTTP/2 请求,这使应用程序网关感到困惑。因此,AGW 丢弃了整个请求。根据 Microsoft 支持,它在日志中显示为太大的字段(指 HTTP/2 中的标头大小),这在技术上不是根本原因。
我们最终通过排除防火墙来解决这个问题,这扰乱了我们的请求。