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

时间:2018-08-29 10:00:46

标签: azure azure-application-gateway

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

  • dummyapi1.azurewebsites.de/servicehosts/dummyapi1
  • dummyapi2.azurewebsites.de/servicehosts/dummyapi2
  • dummyapi3.azurewebsites.de/servicehosts/dummyapi3
  • dummyapi4.azurewebsites.de/servicehosts/dummyapi4

web app settings

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

我希望这样路由:当我转到https://PIPofApplicationGateway/servicehosts/dummyapiX时,它应该重定向到

dummyapiX.azurewebsites.de/servicehosts/dummyapiX

但是Application Gateway总是重定向到默认的后端池,因此出现404错误。

我创建了指向以下内容的自定义探针:

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

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

唯一基于路径的规则是:

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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

现在一切正常