Azure Front Door 服务忽略 403 - 应用停止错误
Posted
技术标签:
【中文标题】Azure Front Door 服务忽略 403 - 应用停止错误【英文标题】:Azure Front Door service ignores 403 - app stopped error 【发布时间】:2019-08-06 06:52:55 【问题描述】:我为我的 2 个服务配置了 Front Door 服务,一个是 Azure App Service,第二个是 AWS Elastic Beanstalk。两台主机均使用主机地址提供。
我故意停止我的 Azure 应用服务(在我的配置中具有优先级 1)以检查 Front Door 是否将流量重定向到 AWS。
停止的服务返回 403 - 应用程序停止响应,但 Front Door 不会将流量重定向到 AWS 并继续显示带有 403 错误的主服务。
配置:
healthy probes configured properly,
both HTTP and HTTPS enabled,
priorities set,
probe intervals 10 sec
【问题讨论】:
什么是路由规则配置?有不同的匹配模式吗? @NancyXiong 标准“/*”,两个服务托管相同的软件 你能验证这个If health probes fail for every backend in a backend pool, then Front Door considers all backends healthy and routes traffic in a round robin distribution across all of them.
吗?检查 AWS Elastic Beanstalk 是否也运行不正常。参考this。
@NancyXiong 我检查了 Azure Monitor 中的健康指标,一切都很好。工作服务正在运行(由于探测),第二个服务已关闭
现在关闭服务我收到 404 响应
【参考方案1】:
当您想要验证是否有一个后端不可用时,前门会将流量重定向到其他后端。 Front Door 中有four main concepts 可用于流量路由:
可用的后端。所有后端都是健康的,然后健康检查将通过。如果后端池中每个后端的运行状况探测都失败,则 Front Door 会认为所有后端都是健康的,并在所有后端之间循环分配路由流量。见How Front Door determines backend health 优先级。默认情况下,Front Door 仅将流量发送到最高优先级的后端(最低优先级值),即主要的后端集。 延迟。选择具有延迟范围的后端(以毫秒为单位的最小延迟和延迟敏感度)。默认情况下,延迟敏感度属性设置为0
ms,即始终将请求转发到可用的最快后端。
权重。此参数使用默认权重“50”。
在这种情况下,您可以使用上述相同的条件,将两个后端放在同一个后端池中。确保两个后端都可用,然后您可以停止一个后端。
对于您评论中的 404 错误,此症状可能有多种原因:
后端不是面向公众的后端,对 前门服务。
后端配置错误,导致 Front Door 服务 发送错误的请求(也就是说,您的后端只接受 HTTP 但 您没有取消选中允许 HTTPS,因此 Front Door 正在尝试 转发 HTTPS 请求)。
后端拒绝与转发的主机头 请求到后端。
后端的配置尚未完全部署。
对于此错误,您可以获得troubleshooting Steps 的更多详细信息。
【讨论】:
但我仍然期待主从(主备)配置。这就是为什么我将优先级设置为 1 和 2。但是服务不尊重它们。当然两个地址都在 1 个后端池中。两者都重 50。 也许我应该将延迟敏感度从 0 更改为启用优先流量? 尝试设置优先级相等。据我所知,如果您设置优先级,对于初始连接,客户端最好选择高优先级后端。如果不设置优先级,后端通常会为每个新连接轮询。对于后端故障转移,你可以看到这个演示 video 和这个 doc.instances run in Active/Active mode, that is, either of them can take traffic at any time, unlike a Active/Stand-By configuration where one acts as a failover.
以上是关于Azure Front Door 服务忽略 403 - 应用停止错误的主要内容,如果未能解决你的问题,请参考以下文章
Azure Front Door、应用服务访问限制和 AD 身份验证
带有无服务器 Web 应用程序的 Azure Front Door
Azure Front-Door - X-Azure-ClientIP 显示的是 IPV6 地址而不是 IPV4
Azure Front Door Visual Studio 远程调试