Azure Front Door返回404但直接访问App Service正常的故障排查求助
Azure Front Door 404故障排查方案
一、先找到Front Door的请求日志
- 登录Azure门户,定位你的Front Door资源
- 左侧菜单选择监控 > 日志
- 在日志查询界面,用以下语句筛选入站请求(替换为你的Front Door名称):
该查询可展示Front Door转发请求的状态码、目标源站、请求路径等核心信息。AzureDiagnostics | where ResourceType == "FRONTDOORS" and Resource == "<你的Front Door名称>" | where OperationName == "Microsoft.Network/frontDoors/requestReceived" | project TimeGenerated, ClientIp, RequestUri, StatusCode, BackendHostname, BackendStatusCode
二、核心排查步骤
1. 校验原App Service的路由与访问规则
- 检查App Service近期是否修改过路由配置:比如ASP.NET Core路由模板、URL重写规则,确认这些规则是否与Front Door转发的请求路径匹配
- 对比直接访问与Front Door访问的请求路径差异:比如Front Door是否默认添加了前缀,或App Service要求请求必须携带特定主机头
- 确认App Service的自定义域名绑定:如果Front Door使用的域名未在App Service的绑定列表中,转发请求的主机头可能不被认可,进而返回404
2. 检查Front Door的源与路由配置
- 核对Front Door的源配置:确认源的主机名是否正确,是否误配置为其他环境地址
- 查看源健康探测状态:如果原App Service的健康探测路径返回404,Front Door会判定源不可用,停止转发流量(即使你能直接访问App Service)
- 检查路由规则:确认规则是否正确将所有请求转发到原App Service,是否存在URL重写、路径剥离等规则导致请求路径变形
3. 分析App Service的访问日志
- 打开原App Service的监控 > 日志,查询请求记录:
- 确认是否有来自Front Door的请求日志,若没有,说明Front Door因健康探测失败未转发流量
- 若存在请求记录但返回404,问题出在App Service端的路由或权限配置
4. 临时验证测试
- 在Front Door源配置中,将主机头改为App Service的默认域名(如xxx.azurewebsites.net),测试是否能正常访问
- 临时关闭Front Door的缓存规则(若有),避免旧的404响应被缓存
- 用curl对比两种访问方式的请求头差异:
重点查看Host、X-Forwarded-For等字段的区别curl -v https://<你的App Service域名>/test-path curl -v https://<你的Front Door域名>/test-path
三、常见触发原因
- 近期修改了App Service的路由或URL重写规则
- Front Door的健康探测路径被修改,导致探测失败
- App Service的自定义域名绑定过期或被误删除
- Front Door路由规则添加了路径转换,与App Service路由不兼容
内容的提问来源于stack exchange,提问作者Don Chambers
相关产品推荐
相关产品推荐

