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