带有应用程序网关后端的 Azure 流量管理器

Azure Traffic Manager with Application Gateway backends

我们有一个架构,我们在两个 Azure 应用程序网关前面有一个流量管理器,并根据优先级进行配置(距离越近优先级越高)。我们正在使用应用程序网关进行基于路径的路由到多个 Web 应用程序。如果应用程序网关下的一个 Web 应用程序(后端池)出现故障,流量管理器会继续将流量定向到同一个应用程序网关,尽管请求失败。我猜流量管理器只探测默认后端池? 任何人都知道在这种情况下如何配置流量管理器,以便在第一优先级位置的请求失败时将流量重新路由到第二个位置?

如果流量管理器的端点是应用程序网关的 IP 地址,流量管理器也会从应用程序网关获得 200 OK 状态。

因为流量管理器没有检测到应用网关后端池中的机器或应用。 Traffic manager 的探针只检测自身配置的端点。如果应用程序网关运行良好,它将照常将流量路由到该网关。

流量管理器探测可以采用路径,但我假设您已经为不同的 Web 应用程序配置了多个路径。您正在寻找的是一个设置,如果路径出现故障,流量管理器应该路由到第二个应用程序网关。这很难设置,除非你有一个专用的网络应用程序,它根据所有基于路径的网络应用程序的聚合健康状况响应 healthy/unhealthy 状态。

我确实遇到了同样的问题。

我的 App Gateway 根据请求的 URL 为其下方的每个网站提供基于 URL 的侦听器。我有一个用于 HTTP,另一个用于 HTTPS,两者都围绕同一个公开的 DNS 名称。

我认为这个问题的解决方案是添加第三个侦听器,但这将使用流量管理器主机名。这样,请求将到达应用程序网关,然后它将匹配已知的 URL 并向下到达网关下方的网站。

否则监视器将只轮询网关状态,并且将 'always' return 一个已知的 HTTP 状态代码。

要解决此问题,请在流量端点中使用自定义 headers。 Header host:<< domain name >> 应该添加到端点。这将有助于 appgateway 确定适当的健康检查后端。

对于您的场景,只有当添加到应用程序网关后端的两个 endpoints/Web 应用程序都失败时,流量才会切换到其他位置的应用程序网关,因为流量管理器将进行探测只要应用程序网关响应 200 OK 就成功。

为每个应用程序添加一个单独的应用程序网关。这将是一个成本高昂的解决方案,但无需更改架构即可解决您的问题。