你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure PowerShell 创建 Azure Front Door
本快速入门介绍如何使用 Azure PowerShell 创建 Azure Front Door 配置文件。 你将使用两个 Web 应用作为源,并通过 Azure Front Door 终结点主机名验证连接。
注意
对于 Web 工作负载,强烈建议使用 Azure DDoS 防护和 Web 应用程序防护墙来抵御新兴的 DDoS 攻击。 另一种选择是将 Azure Front Door 与 Web 应用程序防火墙一起使用。 Azure Front Door 提供平台级保护来抵御网络级 DDoS 攻击。 有关详细信息,请参阅 Azure 服务的安全基线。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- Azure PowerShell(本地安装)或 Azure Cloud Shell。
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
创建资源组
使用 New-AzResourceGroup 创建资源组:
New-AzResourceGroup -Name myRGFD -Location centralus
创建两个 Web 应用实例
使用 New-AzWebApp 在不同的 Azure 区域中创建两个 Web 应用实例:
# Create first web app in Central US region.
$webapp1 = New-AzWebApp `
-Name "WebAppContoso-01" `
-Location centralus `
-ResourceGroupName myRGFD `
-AppServicePlan myAppServicePlanCentralUS
# Create second web app in East US region.
$webapp2 = New-AzWebApp `
-Name "WebAppContoso-02" `
-Location EastUS `
-ResourceGroupName myRGFD `
-AppServicePlan myAppServicePlanEastUS
创建 Azure Front Door
创建 Azure Front Door 配置文件
运行 New-AzFrontDoorCdnProfile 以创建 Azure Front Door 配置文件:
$fdprofile = New-AzFrontDoorCdnProfile `
-ResourceGroupName myRGFD `
-Name contosoAFD `
-SkuName Premium_AzureFrontDoor `
-Location Global
添加终结点
运行 New-AzFrontDoorCdnEndpoint 以在配置文件中创建终结点:
$FDendpoint = New-AzFrontDoorCdnEndpoint `
-EndpointName contosofrontend `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-Location Global
创建源组
创建运行状况探测和负载均衡设置,然后使用 New-AzFrontDoorCdnOriginGroup 创建源组:
# Create health probe settings
$HealthProbeSetting = New-AzFrontDoorCdnOriginGroupHealthProbeSettingObject `
-ProbeIntervalInSecond 60 `
-ProbePath "/" `
-ProbeRequestType GET `
-ProbeProtocol Http
# Create load balancing settings
$LoadBalancingSetting = New-AzFrontDoorCdnOriginGroupLoadBalancingSettingObject `
-AdditionalLatencyInMillisecond 50 `
-SampleSize 4 `
-SuccessfulSamplesRequired 3
# Create origin group
$originpool = New-AzFrontDoorCdnOriginGroup `
-OriginGroupName og `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HealthProbeSetting $HealthProbeSetting `
-LoadBalancingSetting $LoadBalancingSetting
将源添加到组
使用 New-AzFrontDoorCdnOrigin 将 Web 应用源添加到源组:
# Add first web app origin to origin group.
$origin1 = New-AzFrontDoorCdnOrigin `
-OriginGroupName og `
-OriginName contoso1 `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HostName webappcontoso-01.azurewebsites.net `
-OriginHostHeader webappcontoso-01.azurewebsites.net `
-HttpPort 80 `
-HttpsPort 443 `
-Priority 1 `
-Weight 1000
# Add second web app origin to origin group.
$origin2 = New-AzFrontDoorCdnOrigin `
-OriginGroupName og `
-OriginName contoso2 `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-HostName webappcontoso-02.azurewebsites.net `
-OriginHostHeader webappcontoso-02.azurewebsites.net `
-HttpPort 80 `
-HttpsPort 443 `
-Priority 1 `
-Weight 1000
添加路由
使用 New-AzFrontDoorCdnRoute 将终结点映射到源组:
$Route = New-AzFrontDoorCdnRoute `
-EndpointName contosofrontend `
-Name defaultroute `
-ProfileName contosoAFD `
-ResourceGroupName myRGFD `
-ForwardingProtocol MatchRequest `
-HttpsRedirect Enabled `
-LinkToDefaultDomain Enabled `
-OriginGroupId $originpool.Id `
-SupportedProtocol Http,Https
测试 Azure Front Door
创建 Azure Front Door 配置文件后,配置需要几分钟时间才能完成全局部署。 完成后,访问你创建的前端主机。
运行 Get-AzFrontDoorCdnEndpoint 以获取 Azure Front Door 终结点的主机名:
$fd = Get-AzFrontDoorCdnEndpoint `
-EndpointName contosofrontend `
-ProfileName contosoafd `
-ResourceGroupName myRGFD
$fd.hostname
在浏览器中,转到终结点主机名:contosofrontend-<hash>.z01.azurefd.net
。 你的请求将路由到源组中延迟最低的 Web 应用。
若要测试即时全局故障转移,请执行以下操作:
打开浏览器并转到终结点主机名:
contosofrontend-<hash>.z01.azurefd.net
。通过运行 Stop-AzWebApp 停止其中一个 Web 应用:
Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
刷新浏览器。 应会看到相同的信息页。
停止其他 Web 应用:
Stop-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-02"
刷新浏览器。 此时,应会看到一条错误消息。
通过运行 Start-AzWebApp 重启其中一个 Web 应用。 刷新浏览器,页面将恢复正常:
Start-AzWebApp -ResourceGroupName myRGFD -Name "WebAppContoso-01"
清理资源
当不再需要使用 Azure Front Door 创建的资源时,请删除相应资源组。 此操作将删除 Azure Front Door 及其所有相关资源。 运行 Remove-AzResourceGroup:
Remove-AzResourceGroup -Name myRGFD
后续步骤
若要了解如何将自定义域添加到 Azure Front Door,请继续学习 Azure Front Door 教程。