使用应用程序网关路由流量

已完成

应用程序网关管理客户端应用程序可发送到 Web 应用的请求。 应用程序网关根据请求的 URL 将流量路由到 Web 服务器池。 这称为“应用层路由”。 Web 服务器池可以是 Azure 虚拟机、Azure 虚拟机规模集、Azure 应用服务,甚至本地服务器。

Diagram showing how a request is routed by Application Gateway to a web server.

应用程序网关如何路由请求

客户端将针对 Web 应用的请求发送到网关的 IP 地址或 DNS 名称。 网关将请求路由到后端池中的选定 Web 服务器,过程中使用为网关配置的一组规则来确定请求的目标位置。

路由流量有两种主要方法:基于路径的路由和多站点托管。 我们来看看每种方法的功能。

基于路径的路由

基于路径的路由使你可将 URL 中具有不同路径的请求发送到不同的后端服务器池。 例如,你可以将具有路径 /video/* 的请求定向到包含经过优化可处理视频流的服务器的后端池,将 /images/* 请求定向到处理图像检索的服务器池。

Diagram showing how a request is routed by Application Gateway configured with path-based routing.

多站点托管

多站点托管使你可在同一应用程序网关实例上配置多个 Web 应用程序。 在多站点配置中,你可以为应用程序网关的 IP 地址登记多个 DNS 名称 (CNAME),以指定每个站点的名称。 应用程序网关使用单独的侦听器来等待每个站点的请求。 每个侦听器将请求传递给不同的规则,该规则可以将请求路由到不同后端池中的服务器。 例如,可以将应用程序网关配置为将针对 http://contoso.com 的所有请求定向到一个后端池中的服务器,将针对 http://fabrikam.com 的请求定向到另一个后端池中的服务器。 下图显示了此配置:

Diagram showing how a request is routed by Application Gateway configured with multiple site hosting.

多站点配置可用于支持多租户应用程序,其中每个租户有其自己的虚拟机集或托管 Web 应用程序的其他资源。

其他路由功能

除基于路径的路由和多站点托管外,使用应用程序网关路由时还有几项其他功能。

  • 重定向:可以重定向到另一个站点,也可以从 HTTP 重定向到 HTTPS。
  • 重写 HTTP 标头:HTTP 标头可让客户端和服务器连同请求或响应一起传递附加信息。
  • 自定义错误页面:应用程序网关允许你创建自定义错误页面而非显示默认错误页面。 你可以在自定义错误页面上使用自己的品牌和布局。

应用程序网关中的负载均衡

应用程序网关将使用轮循机制自动对发送到每个后端池中的服务器的请求进行负载均衡。 不过,如果需要确保同一会话中某个客户端的所有请求都路由到后端池中的同一服务器,你可以配置会话粘性。

负载均衡适用于应用程序网关路由实现的 OSI 第 7 层路由,这意味着它会根据应用程序网关规则使用的路由参数(主机名和路径)对请求进行负载均衡。 相反,其他负载均衡器(如 Azure 负载均衡器)则适用于 OSI 第 4 层,它们根据请求的目标服务器的 IP 地址分散流量。

适用于 OSI 第 7 层使得负载均衡可以利用应用程序网关提供的其他功能。 这些功能包括:

  • 对 HTTP、HTTPS、HTTP/2 和 WebSocket 协议的支持。
  • 可防止 Web 应用程序漏洞的 Web 应用程序防火墙。
  • 端到端请求加密。
  • 可随着 Web 流量负载变化动态调整容量的自动缩放。

机动车部门的路由

回顾机动车部门的情况,我们可以使用应用程序网关解决这两个问题。 我们可以使用负载均衡和运行状况探测功能来确保在不影响用户的情况下处理故障。 我们还可以使用基于路径的路由来为用户提供单个终结点,以访问不同 Web 服务中托管的站点。

下面,我们将进一步讨论如何做到这一点。

知识检查

1.

应用程序网关按照什么标准将请求路由到 Web 服务器?

2.

应用程序网关实施哪种负载均衡策略?