将应用程序网关网址路由到多个应用程序服务

时间:2019-01-28 23:25:17

标签: azure azure-web-sites azure-application-gateway

我有几个应用程序服务,我想使用应用程序网关位于应用程序网关的前面,并将流量路由到使用URL路由。例如:

  1. api1-app-service
  2. api2-app-service
  3. website1-app-service

我想将Application Gateway与前面的自定义域一起使用,并按以下方式路由流量:

  1. test.app.com/api/something-> api1-app-service
  2. test.app.com/api/different-> api2-app-service
  3. test.app.com/-> website1-app服务

我设置了3个不同的后端池和一个如下所示的url路由规则:

rule1 | /api/something* | backendPool1 
rule2 | /api/different* | backendPool2 
default rule | backendPool3

我遇到的问题是,这里的方向(https://blogs.msdn.microsoft.com/waws/2017/11/21/setting-up-application-gateway-with-an-app-service-that-uses-azure-active-directory-authentication/)指示必须使用指向应用程序网关(在我的示例中为test.app.com)的自定义域来设置应用程序服务),但我无法将test.app.com配置为使用多个应用程序服务。我收到一个错误消息,该主机名已经映射到另一个应用程序服务(当尝试映射到api2-app-service时,这是正确的。test.app.com被配置为api1-app-service)。可以在多个应用程序服务之前设置应用程序网关吗?

2 个答案:

答案 0 :(得分:1)

可以在多个应用程序服务之前设置应用程序网关。

如果要在Web应用程序服务中使用自定义域,则可以在不同的App服务中配置不同的自定义域。如果您想使用相同的自定义域,则可以在具有不同虚拟路径的同一Web应用程序服务中部署multiple Applications

如果不想在多个App Services中使用自定义域,则可以使用默认主机名*.azurewebsites.net。如果是这样,Application Gateway前端将根据不同的路由规则将客户端请求定向到不同的后端池。您可以使用-PickHostNameFromBackendAddress来配置后端HTTP设置。

参考:Hosting multiple sites in one Azure WebAppcreate an application gateway with path-based routing rules.

答案 1 :(得分:0)

经过一整天的研究,我相当确定仅使用应用程序网关和应用程序服务是不可能的。我要对我的应用程序进行容器化,然后使用应用程序网关,看看是否可以达到我想要的目的。