配置Application Gateway调用Linux App Service时出现404问题求助
解决方案
针对你遇到的Linux App Service下Application Gateway路径转发404问题,可从以下几个方面调整:
1. 配置Application Gateway路径重写规则
只设置override backend path为/无法处理带子路径的请求(比如/api/get-data),需要启用路径重写功能:
- 在对应的路由规则中,添加路径重写配置:
- 匹配路径:
/api/* - 重写目标:
/{R:1}
这个规则会把/api/xxx这类请求的路径转换为/xxx转发给Backend服务,适配服务的根路由。
- 匹配路径:
- 确保路由规则的路径匹配模式设为
Prefix(前缀匹配),而不是Exact(精确匹配),这样能覆盖所有/api开头的子路径。
2. 确认Backend App Service的路由配置
Linux App Service没有虚拟目录选项,所以Backend服务本身必须适配根路径请求:
- 如果是Node.js(Express):确保路由定义是
app.get('/', ...)而不是app.get('/api', ...);若框架有路由前缀配置,要去掉/api前缀。 - 如果是Python(Flask/Django):检查项目的根URL配置,确保没有硬编码
/api作为路由前缀。 - 直接访问Backend的默认域名(如
backend.azurewebsites.net/xxx)验证服务是否能正常响应根路径下的请求,排除服务自身的路由问题。
3. 检查健康探针配置
Application Gateway的健康探针如果指向错误路径,会导致Backend被标记为不健康,流量无法正确转发:
- 针对Backend服务器池的健康探针,设置路径为Backend服务实际存在的健康检查路径(比如
/health或根路径/)。 - 确保探针的协议(HTTP/HTTPS)、端口与Backend服务的配置一致。
4. 额外验证步骤
- 暂时停掉Frontend服务,单独测试
mysite.com/api是否能正常访问Backend,排除Frontend路由拦截/api路径的可能。 - 检查Gateway的监听与后端协议:如果使用HTTPS,确认监听端口、证书与Backend服务的HTTPS配置匹配,避免协议不兼容导致的隐性错误。
内容的提问来源于stack exchange,提问作者Yuriy Shkraba
相关产品推荐
相关产品推荐

