你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Front Door 中的通配符域

重要

Azure Front Door(经典版)将于 2027 年 3 月 31 日停用。 为了避免任何服务中断,请务必在 2027 年 3 月之前将 Azure Front Door(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Azure Front Door(经典版)停用

通配符域允许 Azure Front Door 接收顶级域的任何子域的流量。 通配符域示例如下:*.contoso.com

通过使用通配符域,可以简化 Azure Front Door 配置文件的配置。 无需修改配置即可单独添加或指定每个子域。 例如,你可以通过使用相同的路由并添加通配符域 *.contoso.com 来定义 customer1.contoso.comcustomer2.contoso.comcustomerN.contoso.com 的路由。

通配符域具有多个优点,包括:

  • 无需在 Azure Front Door 配置文件中加入每个子域。 例如,假设你为每个客户创建新的子域,并将所有客户的请求路由到单个源组。 每当添加新客户时,Azure Front Door 都知道如何将流量路由到源组,即使未显式配置子域也是如此。
  • 无需生成新的传输层安全性 (TLS) 证书,也不需要管理任何特定于子域的 HTTPS 设置,也可以为每个子域绑定证书。
  • 可以将单个 Web 应用程序防火墙 (WAF) 策略用于所有子域。

通常,通配符域用于支持软件即服务 (SaaS) 解决方案和其他多租户应用程序。 构建这些应用程序类型时,需要特别考虑如何将流量路由到源服务器。 有关详细信息,请参阅在多租户解决方案中使用 Azure Front Door

注意

使用 Azure DNS 管理域的 DNS 记录时,需要使用 Azure 资源管理器 API、Bicep、PowerShell 和 Azure CLI 来配置通配符域。 不支持在 Azure 门户中添加和管理 Azure DNS 通配符域。

添加通配符域和证书绑定

可按照与子域类似的步骤添加通配符域。 有关将子域添加到 Azure Front Door 的详细信息,请参阅使用 Azure 门户在 Azure Front Door 上配置自定义域

注意

若要在通配符域上接受 HTTPS 流量,必须在通配符域上启用 HTTPS。 通配符域的证书绑定需要通配符证书。 也就是说,证书的使用者名称还应包含通配符域。

注意

  • 目前,仅支持使用自己的自定义 SSL 证书为通配符域启用 HTTPS。 Azure Front Door 托管证书不能用于通配符域。
  • 你可以选择从 Azure Key Vault 或 Azure Front Door 托管证书为子域使用相同的通配符证书。
  • 如果要添加的通配符域的子域已在 Azure Front Door 标准版或高级版配置文件中经过验证,则会自动批准域验证。
  • 如果通配符域已经过验证且已添加到某个配置文件,只要单级子域也经过验证,该子域仍可添加到其他配置文件。

显式定义子域

你可以根据需要添加任意数量的通配符的单级子域。 例如,对于通配符域 *.contoso.com,还可以将子域添加到 image.contoso.comcart.contoso.com 等的 Azure Front Door 配置文件中。 为子域显式指定的配置优先于通配符域的配置。

在以下情况下,可能需要显式添加子域:

  • 你需要为子域定义与其余域不同的路由(从通配符域)。 例如,客户可能会使用 customer1.contoso.comcustomer2.contoso.com 等子域,这些子域应全部路由到主应用程序服务器。 但是,你可能还希望将 images.contoso.com 路由到 Azure 存储 Blob 容器。
  • 你需要为特定子域设置不同的 WAF 策略。

子域(如 www.image.contoso.com)不是 *.contoso.com 的单级子域。

添加通配符域

你可以在前端主机或域的部分下添加通配符域。 类似于子域,Azure Front Door(经典)验证是否有通配符域的 CNAME 记录映射。 此域名系统 (DNS) 映射可以是类似于 *.contoso.com 映射到 endpoint.azurefd.net 的直接 CNAME 记录映射。 或者,可以使用 afdverify 临时映射。 例如,afdverify.contoso.com 映射到 afdverify.endpoint.azurefd.net 可验证通配符的 CNAME 记录映射。

注意

Azure DNS 支持 通配符记录。

在前端主机中添加通配符域的单级子域数量,最多可达前端主机的限制。 对于以下情况,可能需要此功能:

  • 为子域定义与其余域不同的路由(从通配符域)。

  • 针对特定子域具有不同的 WAF 策略。 例如,*.contoso.com 允许添加 foo.contoso.com,而无需再次证明域所有权。 但不允许 foo.bar.contoso.com,因为它不是 *.contoso.com 的单级子域。 若要在无需额外验证域所有权的情况下添加 foo.bar.contoso.com,则需要添加 *.bar.contoso.com

你可以添加通配符域及其子域,但有一些限制:

  • 如果将通配符域添加到 Azure Front Door(经典)配置文件:
    • 不能将通配符域添加到任何其他 Azure Front Door(经典)配置文件。
    • 不能将通配符域的第一级子域添加到另一个 Azure Front Door(经典)配置文件或 Azure 内容分发网络配置文件。
  • 如果已将通配符域的子域添加到 Azure Front Door(经典)配置文件或 Azure 内容分发网络配置文件,则该通配符域不能用于其他 Azure Front Door(经典)配置文件。
  • 如果两个配置文件(Azure Front Door 或 Azure 内容分发网络)具有根域的不同子域,则不能将通配符域添加到任一配置文件。

证书绑定

若要在通配符域上接受 HTTPS 流量,必须在通配符域上启用 HTTPS。 通配符域的证书绑定需要通配符证书。 也就是说,证书的使用者名称还应包含通配符域。

注意

目前,仅支持使用自己的自定义 SSL 证书为通配符域启用 HTTPS。 Azure Front Door 托管证书不能用于通配符域。

你可以选择从 Azure Key Vault 或 Azure Front Door 托管证书为子域使用相同的通配符证书。

如果为已具有关联证书的通配符域添加子域,则不能为该子域禁用 HTTPS。 子域使用通配符域的证书绑定,除非其他 Key Vault 或 Azure Front Door 托管证书覆盖它。

WAF 策略

可以将 WAF 策略附加到通配符域,类似于其他域。 可以将不同的 WAF 策略应用到通配符域的子域。 如果没有显式 WAF 策略与子域关联,则子域自动从通配符域继承 WAF 策略。 但是,如果将子域添加到与通配符域配置文件不同的配置文件,则子域无法继承与通配符域关联的 WAF 策略。

可以将 WAF 策略附加到通配符域,类似于其他域。 可以将不同的 WAF 策略应用到通配符域的子域。 对于子域,必须指定要使用的 WAF 策略,即使该策略与通配符域相同。 子域不会自动从通配符域继承 WAF 策略。

如果你不希望为子域运行 WAF 策略,则可以创建没有托管或自定义规则集的空 WAF 策略。

路由

配置路由时,可以选择通配符域作为原点。 对于通配符域和子域,还可以具有不同的路由行为。 Azure Front Door 可跨不同路由为域选择最具体的匹配项。 有关详细信息,请参阅请求如何与传递规则匹配

重要

你必须在路由中具有匹配的路径模式,否则客户端将遇到失败。

例如,假设你具有两个传递规则:

  • 路由 1(*.foo.com/* 已映射到源组 A)
  • 路由 2(bar.foo.com/somePath/* 已映射到源组 B)如果请求到达 bar.foo.com/anotherPath/*,则 Azure Front Door 会根据更具体的域匹配选择路由 2,但在路由中找不到匹配的路径模式。

路由规则

配置路由规则时,可以选择通配符域作为前端主机。 对于通配符域和子域,还可以具有不同的路由行为。 Azure Front Door 可跨不同路由为域选择最具体的匹配项。 有关详细信息,请参阅请求如何与传递规则匹配

重要

你必须在路由中具有匹配的路径模式,否则客户端将遇到失败。

例如,假设你具有两个传递规则:

  • 路由 1(*.foo.com/* 已映射到后端池 A)
  • 路由 2(bar.foo.com/somePath/* 已映射到后端池 B)如果请求到达 bar.foo.com/anotherPath/*,则 Azure Front Door 会根据更具体的域匹配选择路由 2,但在路由中找不到匹配的路径模式。

后续步骤