你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 ILB 应用服务环境与 Azure 应用程序网关集成
应用服务环境是客户的 Azure 虚拟网络子网中的 Azure 应用服务部署。 它可以与外部或内部终结点一起部署,以进行应用访问。 如果一个部署是具有内部终结点的应用服务环境,则该部署称为内部负载均衡器 (ILB) 应用服务环境。
Web 应用程序防火墙会检查入站 Web 流量,并阻止 SQL 注入、跨站点脚本、恶意软件上传和应用程序 DDoS 及其他攻击,从而帮助你保护 Web 应用程序的安全。 你可以从 Azure 市场获取 WAF 设备,也可以使用 Azure 应用程序网关。
Azure 应用程序网关是一个虚拟设备,提供第 7 层负载均衡、TLS 卸载和 Web 应用程序防火墙 (WAF) 保护。 可侦听公共 IP 地址和将流量路由到应用程序终结点。 以下信息描述了如何将 WAF 配置的应用程序网关与 ILB 应用服务环境中的应用进行集成。
将应用程序网关与 ILB 应用服务环境进行集成是在应用级别上进行的。 将应用程序网关与 ILB 应用服务环境进行集成时,是为 ILB 应用服务环境中特定应用进行的此操作。
本演练中的操作:
- 创建 Azure 应用程序网关。
- 配置应用程序网关,以指向 ILB 应用服务环境中的某个应用。
- 编辑指向应用程序网关的公共 DNS 主机名。
先决条件
若要将应用程序网关与 ILB 应用服务环境集成,需要:
- ILB 应用服务环境。
- ILB 应用服务环境的一个专用 DNS 区域。
- ILB 应用服务环境中运行的应用。
- 应用程序网关的公共 DNS 名称。
- 如果需要对应用程序网关使用 TLS 加密,则需要具有一个用于绑定到应用程序网关的有效公共证书。
ILB 应用服务环境
有关如何创建 ILB 应用服务环境的详细信息,请参阅在 Azure 门户中创建应用服务环境和使用 Azure 资源管理器模板创建应用服务环境。
创建 ILB 应用服务环境后,默认域为
<YourAseName>.appserviceenvironment.net
。已预配内部负载均衡器用于入站访问。 你可以在应用服务环境的“设置”下的“IP 地址”中检查“入站地址”选项。 稍后可以创建映射到此 IP 地址的专用 DNS 区域。
专用 DNS 区域
需要使用专用 DNS 区域进行内部名称解析。 请根据下表所示的记录集,使用相应应用服务环境名称创建专用 DNS 区域(有关说明,请参阅快速入门 - 使用 Azure 门户创建 Azure 专用 DNS 区域)。
名称 | 类型 | 值 |
---|---|---|
* | A | 应用服务环境入站地址 |
@ | A | 应用服务环境入站地址 |
@ | SOA | 应用服务环境 DNS 名称 |
*.scm | A | 应用服务环境入站地址 |
ILB 应用服务环境中的应用服务
你需要在 ILB 应用服务环境中创建应用服务计划和应用。 在门户中创建该应用时,请在“区域”选项中选择你的 ILB 应用服务环境。
应用程序网关的公共 DNS 名称
若要从 Internet 连接到应用程序网关,需要一个可路由的域名。 在本例中,我使用了可路由的域名 asabuludemo.com
,并打算使用域名 app.asabuludemo.com
连接到应用服务。 创建应用程序网关后,映射到此应用域名的 IP 地址需要设置为应用程序网关公共 IP 地址。
如果使用映射到应用程序网关的公共域,则无需在应用服务中配置自定义域。 可以购买带有应用服务域的自定义域名。
有效的公共证书
为了增强安全性,请绑定 TLS 证书以进行会话加密。 若要将 TLS 证书绑定到应用程序网关,则需要使用包含以下信息的有效公共证书。 如需使用应用服务证书时,你可以购买 TLS 证书并将其导出为 .pfx
格式。
名称 | 值 | 说明 |
---|---|---|
公用名 | <yourappname>.<yourdomainname> ,例如:app.asabuludemo.com 或 *.<yourdomainname> ,例如:*.asabuludemo.com |
应用程序网关的标准证书或通配符证书 |
使用者可选名称 | <yourappname>.scm.<yourdomainname> ,例如:app.scm.asabuludemo.com 或 *.scm.<yourdomainname> ,例如:*.scm.asabuludemo.com |
允许连接到应用服务 kudu 服务的 SAN。 如果你不想要将应用服务 kudu 服务发布到 Internet,则这是可选的设置。 |
证书文件应具有私钥,并采用 .pfx
格式保存。 证书稍后将导入应用程序网关。
创建应用程序网关
若要了解如何创建基本的应用程序网关,请参阅教程:使用 Azure 门户创建具有 Web 应用程序防火墙的应用程序网关。
在本教程中,我们将使用 Azure 门户创建基于 ILB 应用服务环境的应用程序网关。
在 Azure 门户中,选择“新建”>“网络”>“应用程序网关”以创建应用程序网关 。
基本设置
在“层”下拉列表中,可以选择“标准 V2”或“WAF V2”以在应用程序网关上启用“WAF”功能。
前端设置
选择“公共”、“专用”或“两者”作为前端 IP 地址类型 。 如果设置为“专用”或“两者”,则需要在应用程序网关子网范围内分配一个静态 IP 地址 。 在本例中,我们仅设置为公共终结点的公共 IP。
公共 IP 地址 - 需要关联一个公共 IP 地址以进行应用程序网关公共访问。 请记下此 IP 地址,因为稍后需要在 DNS 服务中添加一条记录。
后端设置
输入后端池名称,并在“目标类型”中选择“应用服务”或者“IP 地址或 FQDN” 。 在本例中,我们设置为“应用服务”,并从目标下拉列表中选择应用服务名称。
配置设置
在“配置”设置中,需要选择“添加路由规则”图标来添加路由规则。
需要在路由规则中配置“侦听器”和“后端目标”。 可以添加 HTTP 侦听器以进行概念证明部署,或添加 HTTPS 侦听器以增强安全性。
若要使用 HTTP 协议连接到应用程序网关,可以使用以下设置创建侦听器。
参数 价值 说明 规则名称 例如: http-routingrule
路由名称 侦听器名称 例如: http-listener
侦听器名称 前端 IP 公用 要进行 Internet 访问,请设置为“公共” 协议 HTTP 请勿使用 TLS 加密 端口 80 默认 HTTP 端口 侦听器类型 多站点 允许在应用程序网关上侦听多站点 主机类型 多个/通配符 如果侦听器类型设置为多站点,请将此参数设置为多站点或通配符网站名称。 主机名 例如: app.asabuludemo.com
设置为应用服务的可路由域名 若要使用 TLS 加密连接到应用程序网关,可以基于以下设置创建侦听器:
参数 价值 说明 规则名称 例如: https-routingrule
路由名称 侦听器名称 例如: https-listener
侦听器名称 前端 IP 公用 要进行 Internet 访问,请设置为“公共” 协议 HTTPS 使用 TLS 加密 端口 443 默认 HTTPS 端口 HTTPS 设置 上传证书 上传 .pfx 格式的包含 CN 和私钥的证书。 侦听器类型 多站点 允许在应用程序网关上侦听多站点 主机类型 多个/通配符 如果侦听器类型设置为多站点,请将此参数设置为多站点或通配符网站名称。 主机名 例如: app.asabuludemo.com
设置为应用服务的可路由域名 必须在“后端目标”中配置“后端池”和“HTTP 设置” 。 在前面的步骤中已配置后端池。 选择“新增”链接以添加 HTTP 设置。
下表列出了各种 HTTP 设置:
参数 价值 说明 HTTP 设置名称 例如: https-setting
HTTP 设置名称 后端协议 HTTPS 使用 TLS 加密 后端端口 443 默认 HTTPS 端口 使用已知的 CA 证书 是 ILB 应用服务环境的默认域名为 .appserviceenvironment.net
。 此域的证书由受信任的公共根证书颁发机构颁发。 在“受信任的根证书”设置中,可以设置为使用已知的 CA 受信任根证书。替代为新的主机名 是 在连接到 ILB 应用服务环境上的应用时,将覆盖主机名标头 主机名替代 从后端目标中选取主机名 将后端池设置为应用服务时,可以从后端目标中选取主机 创建自定义探测 否 使用默认的运行状况探测
配置与 ILB 应用服务环境的应用程序网关集成
若要从应用程序网关访问 ILB 应用服务环境,需要检查是否存在链接到专用 DNS 区域的虚拟网络。 如果没有任何虚拟网络链接到应用程序网关的虚拟网络,请按照以下步骤添加虚拟网络链接。
使用专用 DNS 区域配置虚拟网络链接
- 若要使用专用 DNS 区域配置虚拟网络链接,请转到专用 DNS 区域配置平面。 选择“虚拟网络链接”>“添加”
- 输入链接名称,并选择应用程序网关所在的相应订阅和虚拟网络。
- 可以在应用程序网关平面的“后端运行状况”中确认后端运行状况。
添加公共 DNS 记录
从 Internet 访问应用程序网关时,需要配置正确的 DNS 映射。
- 可以在应用程序网关平面的“前端 IP 配置”中找到应用程序网关的公共 IP 地址。
- 以 Azure DNS 服务为例,你可以添加一个记录集,以将应用域名映射到应用程序网关的公共 IP 地址。
验证连接
- 在从 Internet 访问的计算机上,可以验证应用域名是否可解析为应用程序网关公共 IP 地址。
- 在从 Internet 访问的计算机上,测试从浏览器进行 Web 访问。