如何为Azure Front Door后的Azure Web App实现「Always On」功能?
解决Azure Web App仅通过Front Door访问时的Always On问题
当Web App不对外开放、仅通过Azure Front Door访问时,默认的Always On探测(来自Azure负载均衡器的根目录GET请求)会因Web App的访问限制失效,可通过以下方式实现应用保活:
1. 配置内部可访问的探测端点
- 在Web App内创建一个仅内部可用的健康检查端点(比如
/internal/health),无需复杂逻辑,只需返回200状态码即可。 - 在Web App配置中,将Always On的探测路径修改为该内部端点。同时在Web App的「网络」->「访问限制」中添加允许规则,选择Azure服务标签里的
AppServiceManagement,让Azure负载均衡器的探测请求能正常触达这个端点。
2. 用定时任务通过Front Door发起请求
- 搭建一个简单的Azure Functions(或使用逻辑应用的定时触发器),每隔5分钟通过Front Door的域名向Web App发送GET请求。
- 该请求会通过Front Door正常路由到Web App,避免应用被卸载。若Front Door也有访问限制,需确保这个Functions/逻辑应用的IP在允许列表内。
3. 私有端点环境下的内部探测
- 若Web App配置了私有端点,可在虚拟网络内部署一个内部健康检查服务,定时向Web App的私有IP发起请求,模拟Always On的探测逻辑,适合完全隔离的网络环境。
核心逻辑:默认Always On探测由Azure App Service前端负载均衡器发起,只要确保探测请求能触达Web App的某个可用端点(无论是否对外公开),就能实现保活,关键是让探测请求绕过Front Door的访问限制直接触达Web App内部路径。
内容的提问来源于stack exchange,提问作者user D
相关产品推荐
相关产品推荐

