You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Azure应用网关前置Web App端到端SSL出现404问题求助

解决Azure应用网关WAF部署后Web App访问404的问题

我之前部署端到端SSL的应用网关+Web App时也碰到过一模一样的情况——健康检查全绿但访问就跳404,核心原因大多和请求的Host头传递不正确有关,毕竟Azure Web App是依赖Host头来识别具体站点的。下面给你一步步排查和解决的方法:

1. 检查应用网关的HTTP/HTTPS设置

这是最常见的问题点:

  • 打开应用网关的HTTPS设置(因为你用了端到端SSL),找到「自定义设置」里的「主机名」选项。
  • 你需要手动填入你的Web App域名 myapp.azurewebsites.net,或者勾选「从后端地址提取主机名」(不过手动指定更稳妥,避免后续后端池变更出问题)。
  • 同时确认「后端协议」选的是HTTPS,和Web App的HTTPS配置匹配。

2. 验证后端池的目标配置

虽然健康检查正常,但还是快速确认下:

  • 后端池的目标类型必须选FQDN,然后填入myapp.azurewebsites.net,绝对不要用IP地址——Web App的IP是动态的,而且用IP访问会导致Host头不匹配,直接触发404。

3. 核对健康检查的Host头设置

健康检查正常说明后端能通,但也要确保健康检查的Host头是正确的:

  • 打开应用网关的健康检查规则,查看「主机名」字段,应该设置为myapp.azurewebsites.net,而不是默认的应用网关自身域名或空值。
  • 另外确认健康检查的路径和Web App的实际健康端点匹配,比如如果你的Web App根路径/能正常返回200就没问题;如果根路径有重定向,可能要调整到具体的健康接口(比如/health)。

4. 快速排查Web App侧的配置

  • 登录Web App门户,查看「网络」→「访问限制」,确认是否允许应用网关的公网IP(或应用网关的出站IP范围)访问。不过健康检查正常的话,这个大概率没问题,但可以快速排除。
  • 检查Web App的「配置」→「常规设置」里的「HTTP版本」,确保和应用网关的HTTP设置匹配(比如都是HTTP/1.1或HTTP/2)。

5. 用curl测试Host头是否生效

可以用命令行验证请求的Host头是否正确传递:

curl -v -H "Host: myapp.azurewebsites.net" https://<应用网关公网IP>

如果返回正常,说明Host头设置正确;如果还是404,那可能要检查Web App自身的路由规则(不过你用的是.azurewebsites.net官方域名,这部分问题概率很低)。

我当时就是在HTTPS设置里漏了指定Host头,改完之后立刻就正常了,按照上面的步骤排查应该能解决你的问题。

内容的提问来源于stack exchange,提问作者Moim

火山引擎 最新活动