你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure CLI 创建 Azure Front Door
在本快速入门中,你将了解如何使用 Azure CLI 创建 Azure Front Door。 你将设置一个以两个 Azure Web 应用作为源的配置文件,并添加 WAF 安全策略。 最后,将使用 Azure Front Door 终结点主机名来验证与 Web 应用的连接。
注意
对于 Web 工作负载,强烈建议使用 Azure DDoS 防护和 Web 应用程序防护墙来抵御新兴的 DDoS 攻击。 另一种选择是将 Azure Front Door 与 Web 应用程序防火墙一起使用。 Azure Front Door 提供平台级保护来抵御网络级 DDoS 攻击。 有关详细信息,请参阅 Azure 服务的安全基线。
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
先决条件
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
创建资源组
在 Azure 中,将相关的资源分配到资源组。 可以使用现有资源组,也可以创建新组。
运行 az group create 创建资源组。
az group create --name myRGFD --location centralus
创建 Azure Front Door 配置文件
然后,创建将两个应用服务用作源的 Azure Front Door 配置文件。
若要创建 Azure Front Door 配置文件,请运行 az afd profile create。
注意
如果要部署 Azure Front Door 标准版而不是高级版,请将 sku 参数的值替换为 Standard_AzureFrontDoor
。 使用 WAF 策略的托管规则不适用于标准版 SKU。 要了解详细比较,请查看 Azure Front Door 层级比较。
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
创建 Web 应用的两个实例
在此步骤中,你将创建两个在不同 Azure 区域中运行的 Web 应用实例。 这两个实例都在主动/主动模式下运行,这意味着两个实例都可以处理流量。 此设置不同于主动/备用配置,后者是将一个实例充当故障转移实例。
创建应用服务计划
首先,创建两个应用服务计划:一个在美国中部,另一个在美国东部。
运行以下命令以创建应用服务计划:
az appservice plan create \
--name myAppServicePlanCentralUS \
--resource-group myRGFD \
--location centralus
az appservice plan create \
--name myAppServicePlanEastUS \
--resource-group myRGFD \
--location eastus
创建 Web 应用
接下来,在上一步中创建的每个应用服务计划中创建一个 Web 应用。 Web 应用名称必须全局唯一。
运行以下命令以创建 Web 应用:
az webapp create \
--name WebAppContoso-01 \
--resource-group myRGFD \
--plan myAppServicePlanCentralUS
az webapp create \
--name WebAppContoso-02 \
--resource-group myRGFD \
--plan myAppServicePlanEastUS
记下每个 Web 应用的默认主机名,因为在下一步中部署 Azure Front Door 时需要使用它们来定义后端地址。
创建 Azure Front Door
创建 Azure Front Door 配置文件
若要创建 Azure Front Door 配置文件,请运行 az afd profile create。
注意
若要部署 Azure Front Door 标准版而不是高级版,请将 sku
参数设置为 Standard_AzureFrontDoor
。 使用 WAF 策略的托管规则不适用于标准版 SKU。 要了解详细比较,请查看 Azure Front Door 层级比较。
az afd profile create \
--profile-name contosoafd \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor
添加终结点
在 Azure Front Door 配置文件中创建终结点。 终结点是与域名关联的一个或多个路由的逻辑分组。 Azure Front Door 会为每个终结点分配一个域名,你可以使用路由将终结点与自定义域相关联。 Azure Front Door 配置文件可以包含多个终结点。
若要在配置文件中创建终结点,请运行 az afd endpoint create。
az afd endpoint create \
--resource-group myRGFD \
--endpoint-name contosofrontend \
--profile-name contosoafd \
--enabled-state Enabled
有关 Azure Front Door 中的终结点的详细信息,请参阅 Azure Front Door 中的终结点。
创建源组
创建一个源组,用于定义应用实例的流量和预期响应。 源组还定义了运行状况探测如何评估源。
运行 az afd origin-group create 创建包含两个 Web 应用的源组。
az afd origin-group create \
--resource-group myRGFD \
--origin-group-name og \
--profile-name contosoafd \
--probe-request-type GET \
--probe-protocol Http \
--probe-interval-in-seconds 60 \
--probe-path / \
--sample-size 4 \
--successful-samples-required 3 \
--additional-latency-in-milliseconds 50
将源添加到源组
将前面创建的两个应用实例作为源添加到新的源组。 Azure Front Door 中的源是指相应的应用程序,Azure Front Door 会在未启用缓存或发生缓存丢失时从这些应用程序中检索内容。
若要将第一个应用实例作为源添加到源组,请运行 az afd origin create。
az afd origin create \
--resource-group myRGFD \
--host-name webappcontoso-01.azurewebsites.net \
--profile-name contosoafd \
--origin-group-name og \
--origin-name contoso1 \
--origin-host-header webappcontoso-01.azurewebsites.net \
--priority 1 \
--weight 1000 \
--enabled-state Enabled \
--http-port 80 \
--https-port 443
重复此步骤,将第二个应用实例作为源添加到源组。
az afd origin create \
--resource-group myRGFD \
--host-name webappcontoso-02.azurewebsites.net \
--profile-name contosoafd \
--origin-group-name og \
--origin-name contoso2 \
--origin-host-header webappcontoso-02.azurewebsites.net \
--priority 1 \
--weight 1000 \
--enabled-state Enabled \
--http-port 80 \
--https-port 443
有关源、源组和运行状况探测的详细信息,请参阅 Azure Front Door 中的源和源组。
添加路由
添加一个路由,用于将之前创建的终结点映射到源组。 此路由会将来自终结点的请求转发到源组。
若要将终结点映射到源组,请运行 az afd route create。
az afd route create \
--resource-group myRGFD \
--profile-name contosoafd \
--endpoint-name contosofrontend \
--forwarding-protocol MatchRequest \
--route-name route \
--https-redirect Enabled \
--origin-group og \
--supported-protocols Http Https \
--link-to-default-domain Enabled
若要详细了解 Azure Front Door 中的路由,请参阅将流量路由到源的方法。
创建新的安全策略
Azure Front Door 上的 Azure Web 应用程序防火墙 (WAF) 为 Web 应用程序提供集中保护,使其免受常见攻击和漏洞的侵害。
在本教程中,你将创建一个包含两条托管规则的 WAF 策略。 还可以创建使用自定义规则的 WAF 策略。
创建 WAF 策略
运行 az network front-door waf-policy create 为 Azure Front Door 创建新的 WAF 策略。 此示例创建一个已启用且处于阻止模式的策略。
注意
托管规则仅适用于 Azure Front Door 高级版层级。 对于标准版层级,你可以使用自定义规则。
az network front-door waf-policy create \
--name contosoWAF \
--resource-group myRGFD \
--sku Premium_AzureFrontDoor \
--disabled false \
--mode Prevention
注意
如果选择 Detection
模式,则 WAF 不会阻止任何请求。
若要详细了解 Azure Front Door 的 WAF 策略设置,请参阅 Azure Front Door 上 Web 应用程序防火墙的策略设置。
将托管规则分配给 WAF 策略
Azure 托管的规则集可轻松针对常见的安全威胁来保护应用程序。
若要将托管规则添加到 WAF 策略,请运行 az network front-door waf-policy managed-rules add。 此示例将 Microsoft_DefaultRuleSet_2.1 和 Microsoft_BotManagerRuleSet_1.0 添加到策略。
az network front-door waf-policy managed-rules add \
--policy-name contosoWAF \
--resource-group myRGFD \
--type Microsoft_DefaultRuleSet \
--action Block \
--version 2.1
az network front-door waf-policy managed-rules add \
--policy-name contosoWAF \
--resource-group myRGFD \
--type Microsoft_BotManagerRuleSet \
--version 1.0
若要详细了解 Azure Front Door 中的托管规则,请参阅 Web 应用程序防火墙 DRS 规则组和规则。
应用安全策略
现在,通过创建安全策略将 WAF 策略应用到 Azure Front Door。 此设置会将 Azure 托管规则应用于前面定义的终结点。
若要将 WAF 策略应用到终结点的默认域,请运行 az afd security-policy create。
注意
在域和 waf 策略参数中,使用 Azure 订阅 ID 替换“mysubscription”。 若要获取订阅 ID 详细信息,请运行 az account subscription list。
az afd security-policy create \
--resource-group myRGFD \
--profile-name contosoafd \
--security-policy-name contososecurity \
--domains /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contosofrontend \
--waf-policy /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF
测试 Azure Front Door
创建 Azure Front Door 配置文件后,配置需要几分钟时间才能完成全局部署。 完成后,即可访问你创建的前端主机。
运行 az afd endpoint show 以获取 Azure Front Door 终结点的主机名。
az afd endpoint show --resource-group myRGFD --profile-name contosoafd --endpoint-name contosofrontend
在浏览器中,转到终结点主机名:contosofrontend-<hash>.z01.azurefd.net
。 请求将路由到源组中延迟程度最低的 Web 应用。
若要测试即时全局故障转移功能,请执行以下步骤:
打开浏览器并转到终结点主机名:
contosofrontend-<hash>.z01.azurefd.net
。通过运行 az webapp stop 停止其中一个 Web 应用:
az webapp stop --name WebAppContoso-01 --resource-group myRGFD
刷新浏览器。 应会看到相同的信息页。
提示
这些操作可能会稍有延迟。 可能需要再次刷新。
同时停止其他 Web 应用:
az webapp stop --name WebAppContoso-02 --resource-group myRGFD
刷新浏览器。 此时,应会看到一条错误消息。
通过运行 az webapp start 重启其中一个 Web 应用。 刷新浏览器,页面应恢复正常。
az webapp start --name WebAppContoso-01 --resource-group myRGFD
清理资源
当不再需要为 Azure Front Door 创建的资源时,可以删除资源组。 此操作将移除 Azure Front Door 和所有关联的资源。
运行以下命令,删除资源组:
az group delete --name myRGFD
后续步骤
继续阅读下一篇文章,了解如何将自定义域添加到 Azure Front Door。