应用程序网关侦听器配置

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

侦听器是一个逻辑实体,它可以使用端口、协议、主机和 IP 地址检查传入的连接请求。 配置侦听器时,必须输入与网关上传入请求中的对应值相匹配的值。

使用 Azure 门户创建应用程序网关时,还可以通过选择侦听器的协议和端口来创建默认的侦听器。 可以选择是否要在侦听器上启用 HTTP2 支持。 创建应用程序网关后,可以编辑该默认侦听器的设置 (appGatewayHttpListener) 或创建新的侦听器。

侦听器类型

创建新侦听器时,可以选择“基本”或“多站点”

  • 如果你希望自己的所有请求(针对任何域)都能够被接受并转发到后端池,请选择“基本”。 了解如何创建包含基本侦听器的应用程序网关

  • 如果希望根据主机头或主机名将请求转发到不同的后端池,请选择多站点侦听器。 应用程序网关需要使用 HTTP 1.1 主机标头才能在相同的公共 IP 地址和端口上托管多个网站。 若要区分同一端口上的请求,则必须指定与传入请求匹配的主机名。 如需了解详细信息,请参阅使用应用程序网关托管多个站点

侦听器的处理顺序

对于 v1 SKU,请求根据规则顺序和侦听器类型进行匹配。 如果某项使用基本侦听器的规则在顺序上排第一,系统会先处理它,它会接受该端口和 IP 组合的任何请求。 为了避免这种情况,请先使用多站点侦听器配置规则,然后将包含基本侦听器的规则推送到列表中的最后。

对于 v2 SKU,除非定义了规则优先级,否则会先处理多站点侦听器,然后再处理基本侦听器。 如果使用规则优先级,则通配符侦听器的优先级数字应定义为大于非通配符侦听器的优先级数字,以确保非通配符侦听器在通配符侦听器之前执行。

前端 IP 地址

选择计划与此侦听器关联的前端 IP 地址。 侦听器将在此 IP 上侦听传入的请求。

注意

应用程序网关前端支持双堆栈 IP 地址(公共预览版)。 最多可以创建四个前端 IP 地址:两个 IPv4 地址(公共和专用)和两个 IPv6 地址(公共和专用)。

前端端口

关联前端端口。 可以选择现有端口或新建一个端口。 选择允许的端口范围内的任意值。 不仅可以使用已知的端口(例如 80 和 443),而且还能使用任何适用的且允许的自定义端口。 同一端口可用于公共和专用侦听器(预览功能)。

注意

使用具有相同端口号的专用和公共侦听器时,应用程序网关会将入站流的“目标”更改为网关的前端 IP。 因此,根据网络安全组的配置,可能需要一个将“目标 IP 地址”作为应用程序网关的公共和专用前端 IP 的入站规则。

入站规则:

  • 源:(根据你的要求)
  • 目标 IP 地址:应用程序网关的公共和专用前端 IP。
  • 目标端口:(根据侦听器配置)
  • 协议:TCP

出站规则:(无特定要求)

协议

选择 HTTP 或 HTTPS:

  • 如果选择 HTTP,则客户端与应用程序网关之间的流量将不会加密。

  • 如果想要实现 TLS 终止端到端 TLS 加密,请选择 HTTPS。 客户端与应用程序网关之间的流量将会加密,并且 TLS 连接将在应用程序网关上终止。 如果要对后端目标进行端到端 TLS 加密,还必须在“后端 HTTP 设置”中选择 HTTPS。 这可确保在应用程序网关启动与后端目标的连接时加密流量。

若要配置 TLS 终止,必须向侦听器中添加 TLS/SSL 证书。 这样,应用程序网关便可以解密传入的流量并加密发到客户端的响应流量。 提供给应用程序网关的证书必须采用个人信息交换 (PFX) 格式,其中包含私钥和公钥。

注意

在为侦听器使用来自密钥保管库的 TLS 证书时,必须确保应用程序网关始终有权访问该链接的密钥保管库资源和其中的证书对象。 这样可以实现 TLS 终止功能的无缝操作,并维护网关资源的总体运行状况。 如果应用程序网关资源检测到配置错误的密钥保管库,它会自动将关联的 HTTPS 侦听器置于禁用状态。 了解详细信息

支持的证书

请参阅应用程序网关的 TLS 终止和端到端 TLS 概述

其他协议支持

HTTP2 支持

仅针对连接到应用程序网关侦听器的客户端提供 HTTP/2 协议支持。 与后端服务器池的通信始终采用 HTTP/1.1。 默认情况下,HTTP/2 支持处于禁用状态。 以下 Azure PowerShell 代码片段演示如何启用此支持:

$gw = Get-AzApplicationGateway -Name test -ResourceGroupName hm

$gw.EnableHttp2 = $true

Set-AzApplicationGateway -ApplicationGateway $gw

启用 HTTP2 支持的另外一种方法:在 Azure 门户的“应用程序网关”>“配置”中,选择“HTTP2”下的“启用”。

WebSocket 支持

默认已启用 WebSocket 支持。 没有任何用户可配置的设置可以启用或禁用此支持。 可对 HTTP 和 HTTPS 侦听器使用 WebSocket。

自定义错误页

可以为应用程序网关返回的不同响应代码定义自定义错误页。 可以为其配置错误页的响应代码包括 400、403、405、408、500、502、503 和 504。 可以使用全局级别或特定于侦听器的错误页配置为每个侦听器进行精细设置。 有关详细信息,请参阅创建应用程序网关自定义错误页

注意

源自后端服务器的错误在不被应用程序网关修改的状态下传递到客户端。

TLS 策略

可以集中管理 TLS/SSL 证书,并减小后端服务器场的加密-解密开销。 采用集中式 TLS 处理还能指定符合安全要求的集中 TLS 策略。 你可以选择预定义或自定义 TLS 策略。

配置 TLS 策略来控制 TLS 协议版本。 可将应用程序网关配置为使用 TLS1.0、TLS1.1、TLS1.2 和 TLS1.3 中适用于 TLS 握手的最低协议版本。 默认情况下,SSL 2.0 和 3.0 已禁用且不可配置。 有关详细信息,请参阅应用程序网关 TLS 策略概述

创建侦听器后,请将它关联到某个请求路由规则。 该规则确定如何将侦听器上收到的请求路由到后端。

后续步骤