应用程序网关概述

Azure 应用程序网关是以服务形式提供应用程序传送控制器 (ADC) 的专用虚拟设备。 它为应用程序提供第 7 层的各种负载均衡功能。 它使客户能够通过将 CPU 密集型 SSL 终端的负载卸载到应用程序网关上来优化 Web 场生产率。 它还提供其他第 7 层路由功能,包括传入流量的轮循机制分配、基于 Cookie 的会话相关性、基于 URL 路径的路由,以及在单个应用程序网关后面托管多个网站的能力。 Web 应用程序防火墙 (WAF) 也作为应用程序网关 WAF SKU 的一部分提供。 它为 Web 应用程序提供保护,帮助抵御常见 Web 漏洞和攻击。 可以将应用程序网关配置为面向 Internet 的网关、仅内部网关或这两者的组合。

方案

功能

应用程序网关目前提供以下功能:

  • Web 应用程序防火墙 - Azure 应用程序网关中的 Web 应用程序防火墙 (WAF) 保护 Web 应用程序免受基于 Web 的常见攻击,例如 SQL 注入、跨站点脚本攻击、会话劫持。
  • HTTP 负载均衡 - 应用程序网关提供轮循机制负载均衡。 负载均衡在第 7 层完成,仅用于 HTTP(S) 流量。
  • 基于 Cookie 的会话相关性 - 想要在同一后端保留用户会话时,此基于 Cookie 的会话相关性功能十分有用。 借助受网关管理的 Cookie,应用程序网关能够将来自用户会话的后续流量转到同一后端进行处理。 在会话状态是为用户会话而本地保存在后端服务器的情况下,此功能十分重要。
  • 安全套接字层 (SSL) 卸载 - 此功能让 Web 服务器免于执行解密 HTTPS 流量的高成本任务。 通过在应用程序网关终止 SSL 连接,并将请求转发到未加密的服务器,Web 服务器不用承担解密的负担。 应用程序网关会重新加密响应,再将它发回客户端。 在后端与 Azure 中的应用程序网关位于同一安全虚拟网络中的情况下,此功能十分有用。
  • 端到端 SSL - 应用程序网关支持对流量进行端到端加密。 应用程序网关通过在应用程序网关上终止 SSL 连接来完成此任务。 网关随后将路由规则应用于流量、重新加密数据包,并根据定义的路由规则将数据包转发到适当的后端。 来自 Web 服务器的任何响应都会经历相同的过程返回最终用户。
  • 基于 URL 的内容路由 - 此功能能够使用不同的后端服务器来处理不同的流量。 可以将 Web 服务器上某个文件夹的流量或 CDN 的流量路由到其他后端。 对于不处理特定内容的后端,此功能可以减少其上的不必要负载。
  • 多站点路由 - 应用程序网关允许在单个应用程序网关上合并最多 20 个网站。
  • WebSocket 支持 - 应用程序网关的另一个重要功能是对 WebSocket 的本机支持。
  • 运行状况监视 - 应用程序网关提供默认的后端资源运行状况监视,以及用于监视更多特定方案的自定义探测。
  • SSL 策略和密码 - 此功能可以限制受支持的 SSL 协议版本和密码套件,以及其处理顺序。
  • 请求重定向 - 使用此功能可将 HTTP 请求重定向到 HTTPS 侦听器。
  • 多租户后端支持 - 应用程序网关支持将多租户后端服务(例如 Azure Web 应用和 API 网关)配置为后端池成员。
  • 高级诊断 - 应用程序网关提供完整的诊断和访问日志。 防火墙日志可用于已启用 WAF 的应用程序网关资源。

优点

应用程序网关可用于:

  • 需要使用来自同一用户/客户端会话的请求来访问相同后端虚拟机的应用程序。 这些应用程序的示例包括购物车应用程序和 Web 邮件服务器。
  • 消除 Web 服务器场的 SSL 终止开销。
  • 要求长时间运行的同一 TCP 连接上多个 HTTP 请求路由到或负载均衡到不同后端服务器的应用程序(例如内容交付网络)。
  • 支持 WebSocket 流量的应用程序
  • 保护 Web 应用程序,使其免受常见 Web 攻击的威胁,例如 SQL 注入、跨站点脚本攻击和会话劫持。
  • 根据不同的路由标准(例如 URL 路径或域标头)对流量进行逻辑分配。

应用程序网关完全受 Azure 管理,可缩放且高度可用。 它提供丰富的诊断和日志记录功能以改进可管理性。 创建应用程序网关时,将与一个终结点(公共 VIP 或内部 ILB IP)相关联并将其用于流入网络流量。 此 VIP 或 ILB IP 由在传输层 (TCP/UDP) 工作并将所有传入的网络流量负载均衡到应用程序网关辅助角色实例的 Azure 负载均衡器提供。 然后,应用程序网关根据其配置(是虚拟机、云服务还是内部或外部 IP 地址)来路由 HTTP/HTTPS 流量。

Azure 托管服务形式的应用程序网关负载均衡允许在 Azure 软件负载均衡器的后面预配第 7 层负载均衡器。 流量管理器可用于完成下图中所示的方案,其中流量管理器为流向不同区域中的多个应用程序网关资源的流量提供重定向和可用性,而应用程序网关则提供跨区域第 7 层负载均衡。 此方案的示例可以在在 Azure 云中使用负载均衡服务中找到

流量管理器和应用程序网关方案

负载均衡器之间的差异

使用 Azure 分配网络流量有不同的选项。 这些选项的工作方式彼此不同,具有不同的功能集,并支持不同的方案。 这些选项每个都能单独使用,也可以组合使用。

  • Azure 负载均衡器 在传输层(OSI 网络参考堆栈中的第 4 层)工作。 它可对同一 Azure 数据中心中运行的应用程序实例间的流量进行网络级分配。
  • 应用程序网关在应用程序层(OSI 网络参考堆栈中的第 7 层)工作。 它充当反向代理服务,终止客户端连接,并将请求转发到后端终结点。
  • 流量管理器 在 DNS 级别工作。 它使用 DNS 响应将最终用户流量定向到全球分布的终结点。 然后,客户端直接连接到这些终结点。

下表总结了每个服务提供的功能:

服务 Azure 负载均衡器 应用程序网关 流量管理器
技术 传输层(第 4 层) 应用程序层(第 7 层) DNS 级别
支持的应用程序协议 任意 HTTP、HTTPS 和 WebSocket 任何(HTTP 终结点是终结点监视所必需的)
终结点 Azure VM 和云服务角色实例 任何 Azure 内部 IP 地址、公共 Internet IP 地址、Azure VM 或 Azure 云服务 Azure VM、云服务、Azure Web 应用和外部终结点
虚拟网络支持 可用于面向 Internet 的应用程序和内部 (Vnet) 应用程序 可用于面向 Internet 的应用程序和内部 (Vnet) 应用程序 仅支持面向 Internet 的应用程序
终结点监视 通过探测支持 通过探测支持 通过 HTTP/HTTPS GET 支持

Azure 负载均衡器和应用程序网关都将网络流量路由到终结点,但它们具有处理流量的不同使用方案。 下表有助于了解这两种负载均衡器之间的区别:

类型 Azure 负载均衡器 应用程序网关
协议 UDP/TCP HTTP、HTTPS 和 WebSocket
IP 保留 支持 不支持
负载均衡模式 5 元组(源 IP、源端口、目标 IP、目标端口、协议类型) 轮循机制
基于 URL 的路由
负载均衡模式(源 IP/粘性会话) 2 元组(源 IP 和目标 IP)、3 元组(源 IP、目标 IP 和端口)。 可以根据虚拟机数增加或减少 基于 Cookie 的相关性
基于 URL 的路由
运行状况探测 默认值:探测间隔 - 15 秒。 退出循环:2 次连续失败。 支持用户定义的探测 空闲探测间隔 30 秒。 在 5 次连续实时通信失败或空闲模式下单次探测失败后取出。 支持用户定义的探测
SSL 卸载 不支持 支持
基于 URL 的路由 不支持 支持
SSL 策略 不支持 支持

网关大小和实例

应用程序网关目前有三种大小:小型中型大型。 小型实例大小适用于开发和测试方案。

下表显示了已启用 SSL 卸载的每个应用程序网关实例的平均性能吞吐量:

后端页面响应 小型 中型 大型
6K 7.5 Mbps 13 Mbps 50 Mbps
100K 35 Mbps 100 Mbps 200 Mbps

Note

这些值是应用程序网关吞吐量的大约值。 实际吞吐量取决于平均页面大小、后端实例的位置、提供页面所需的处理时间等各种环境详细信息。 如需确切的性能数字,则应运行自己的测试。 提供的这些值仅适用于容量规划指南。

运行状况监视

Azure 应用程序网关会通过基本或自定义运行状况探测,自动监视后端实例的运行状况。 使用运行状况探测可确保只有正常的主机才会响应流量。 有关详细信息,请参阅应用程序网关运行状况监视概述

配置和管理

对于其终结点,应用程序网关在配置时可以拥有公共 IP、专用 IP 或同时拥有两者。 应用程序网关在其自己的子网中的虚拟网络内进行配置。 为应用程序网关创建或使用的子网不能包含任何其他类型的资源,子网中唯一允许使用的资源是其他应用程序网关。 要保护后端资源,可以将后端服务器放在与应用程序网关位于同一虚拟网络中的其他子网内。 对于后端应用程序来说,此子网不是必需的。 只要可以访问 IP 地址,应用程序网关就能够为后端服务器提供 ADC 功能。

可以使用 REST API、PowerShell cmdlet、Azure CLI 或 Azure 门户来创建和管理应用程序网关。 有关应用程序网关的其他问题,请查看应用程序网关常见问题中所列的常见问题列表。

定价

定价基于每小时网关实例费和数据处理费。 WAF SKU 的每小时网关定价不同于标准 SKU 收费。 应用程序网关定价详细信息中提供了此定价信息。 数据处理费保持不变。

常见问题

有关应用程序网关的常见问题,请参阅应用程序网关常见问题解答

后续步骤

了解应用程序网关后,可以创建应用程序网关,也可以创建应用程序网关 SSL 卸载,以便对 HTTPS 连接进行负载均衡。

若要详细了解如何使用基于 URL 的内容路由创建应用程序网关,请转到使用基于 URL 的路由创建应用程序网关

若要了解 Azure 的一些其他关键网络功能,请参阅 Azure 网络