应用程序网关基于URL路径的路由始终重定向到默认后端池

问题描述 投票:0回答:2

我在应用程序网关(ARM模板)后面配置了4个webapp:

  • dummy API1.azure websites.的/service hosts/dummy API1
  • dummy API2.azure websites.的/service hosts/dummy API2
  • dummy API3.azure websites.的/service hosts/dummy API3
  • dummy API4.azure websites.的/service hosts/dummy API4

web app settings

当我直接进入dummyapiX.azurewebsites.de/servicehosts/dummyapiX时,我可以打开网络应用程序。

我希望路由以这种方式工作:当我去https://PIPofApplicationGateway/servicehosts/dummyapiX它应该重定向到

dummy API X.azure websites.的/service hosts/dummy API X

但Application Gateway始终重定向到默认后端池,因此我收到404错误。

我创建了自定义探针,指向:

  • / servicehosts / dummyapi1
  • / servicehosts / dummyapi2
  • / servicehosts / dummyapi3
  • / servicehosts / dummyapi4

后端健康显示所有人的健康状况。后端池指向webapps FQDN。用于探测器的httpsSettings和PickHostNameFromBackendHttpSettings的PickHostNameFromBackendAddress设置为true。 httpsSettings中未配置其他与路径相关的设置。

唯一基于路径的规则是:

  • 默认后端池是dummyapi4
  • “/ servicehosts / dummyapi1 / *”到backendpooldummy1
  • “/ servicehosts / dummyapi2 / *”到backendpooldummy2
  • “/ servicehosts / dummyapi3 / *”到backendpooldummy3

有什么建议吗?可能是根本原因?

azure azure-application-gateway
2个回答
0
投票

首先,您可以确认是否在Web应用程序设置中创建了虚拟目录。确保基于URL的规则映射到特定的后端池。使用侦听请求端口创建基本侦听器。创建并映射基于路径的规则并绑定到侦听器。从这个tutorial获取更多细节。

然后,您可以键入ipconfig /flushdns以清除DNS缓存在命令提示符控制台中。再次验证它。

参考:Error 404 : Web App Not Found – Azure Web App


0
投票

根本原因是在规则的路径中尾随“/”。

所以代替:

"/servicehosts/dummyapi1/*" to backendpooldummy1
"/servicehosts/dummyapi2/*" to backendpooldummy2
"/servicehosts/dummyapi3/*" to backendpooldummy3

应该是我的情况

"/servicehosts/dummyapi1*" to backendpooldummy1
"/servicehosts/dummyapi2*" to backendpooldummy2
"/servicehosts/dummyapi3*" to backendpooldummy3

现在一切正常

© www.soinside.com 2019 - 2024. All rights reserved.