我在应用程序网关(ARM 模板(后面配置了 4 个 Web 应用:
- dummyapi1.azurewebsites.de/servicehosts/dummyapi1
- dummyapi2.azurewebsites.de/servicehosts/dummyapi2
- dummyapi3.azurewebsites.de/servicehosts/dummyapi3
- dummyapi4.azurewebsites.de/servicehosts/dummyapi4
网络应用设置
当我直接转到 dummyapiX.azurewebsites.de/servicehosts/dummyapiX 时,我可以打开 Web 应用程序。
我希望路由以这种方式工作:当我转到 https://PIPofApplicationGateway/servicehosts/dummyapiX 时,它应该重定向到
dummyapiX.azurewebsites.de/servicehosts/dummyapiX
但是应用程序网关始终重定向到默认后端池,因此出现 404 错误。
我创建了指向以下内容的自定义探针:
/- servicehosts/dummyapi1 /
- servicehosts/dummyapi2 /
- servicehosts/dummyapi3 /
- servicehosts/dummyapi4
后端运行状况显示所有人的"正常状态"。后端池指向 Web 应用 FQDN。httpsSettings 的 PickHostNameFromBackendAddress 和探测器的 PickHostNameFromBackendHttpSettings 设置为 true。没有其他路径相关设置未在 httpsSettings 中配置。
唯一基于路径的规则是:
- 默认后端池是 Dummyapi4
- "/servicehosts/dummyapi1/*" to backendpooldummy1
- "/servicehosts/dummyapi2/*" to backendpooldummy2
- "/servicehosts/dummyapi3/*" to backendpooldummy3
有什么建议吗?根本原因可能是什么?
根本原因是规则中路径中的尾随"/"。
所以代替:
"/servicehosts/dummyapi1/*" to backendpooldummy1
"/servicehosts/dummyapi2/*" to backendpooldummy2
"/servicehosts/dummyapi3/*" to backendpooldummy3
应该在我的情况下
"/servicehosts/dummyapi1*" to backendpooldummy1
"/servicehosts/dummyapi2*" to backendpooldummy2
"/servicehosts/dummyapi3*" to backendpooldummy3
现在一切正常
首先,可以确认是否已在 Web 应用设置中创建虚拟目录。确保基于 URL 的规则映射到特定的后端池。使用侦听请求端口创建基本侦听器。创建并映射基于 Path 的规则并绑定到侦听器。从本教程中获取更多详细信息。
然后,您可以键入ipconfig /flushdns
以在命令提示符控制台中清除 DNS 缓存。再次验证。
参考: 错误 404:找不到 Web 应用 – Azure Web 应用