你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:为 Web 应用在自定义域中创建 DNS 记录
可以配置 Azure DNS 来托管 Web 应用的自定义域。 例如,你可以创建 Azure Web 应用,并让用户使用 www.contoso.com
或 contoso.com
作为完全限定的域名 (FQDN) 访问它。
为此,必须创建三条记录:
- 指向 contoso.com 的根 A 记录
- 用于验证的根 TXT 记录
- 指向 A 记录的 www 名称的 CNAME 记录
在本教程中,你将了解如何执行以下操作:
- 为自定义域创建 A 记录和 TXT 记录
- 创建自定义域的 CNAME 记录
- 测试新记录
- 向 Web 应用添加自定义主机名
- 测试自定义主机名
如果还没有 Azure 订阅,可以在开始前创建一个免费帐户。
先决条件
具有活动订阅的 Azure 帐户。
可在 Azure DNS 中托管的域名。 必须能够完全控制此域。 完全控制包括能够为域设置名称服务器 (NS) 记录。
Web 应用。 如果没有 Web 应用,可以创建本教程的静态 HTML Web 应用。
一个在注册机构中委托到 Azure DNS 的 Azure DNS 区域。 如果没有 Azure DNS 区域,可以创建一个 DNS 区域,然后将域委托给 Azure DNS。
注意
在本教程中,contoso.com
用作示例域名。 将 contoso.com
替换为你自己的域名。
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”运行代码或命令。
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
登录 Azure
登录到 Azure 门户。
创建 A 记录
A 记录可用于将名称映射到其 IP 地址。 在下面的示例中,使用你的 Web 应用 IPv4 地址将“@”分配为 A 记录。 @ 通常表示根域。
获取 IPv4 地址
在 Azure 门户的“应用服务”页的左侧导航窗格中,选择“自定义域”,然后复制 Web 应用的 IP 地址:
创建记录
若要创建 A 记录,请使用:
New-AzDnsRecordSet -Name "@" -RecordType "A" -ZoneName "contoso.com" `
-ResourceGroupName "MyAzureResourceGroup" -Ttl 600 `
-DnsRecords (New-AzDnsRecordConfig -IPv4Address "<ip of web app service>")
重要
如果 Web 应用的基础 IP 地址更改,则必须手动更新 A 记录。
创建 TXT 记录
应用服务仅在配置时使用此记录来验证你是否拥有自定义域。 自定义域经过验证并且在应用服务中配置后,可以删除此 TXT 记录。
注意
如果想要验证域名,但是不将生产流量路由到 Web 应用,只需指定验证步骤的 TXT 记录即可。 验证不需要除 TXT 记录之外的 A 或 CNAME 记录。
若要创建 TXT 记录,请使用:
New-AzDnsRecordSet -ZoneName contoso.com -ResourceGroupName MyAzureResourceGroup `
-Name "@" -RecordType "txt" -Ttl 600 `
-DnsRecords (New-AzDnsRecordConfig -Value "contoso.azurewebsites.net")
创建 CNAME 记录
如果域已由 Azure DNS 管理(请参阅 DNS 域委托),可以使用下面的示例创建 contoso.azurewebsites.net 的 CNAME 记录。 此示例中创建的 CNAME 使用 Web 应用 contoso.azurewebsites.net 的别名,在名为“contoso.com”的 DNS 区域中的“生存时间”为 600 秒。
New-AzDnsRecordSet -ZoneName contoso.com -ResourceGroupName "MyAzureResourceGroup" `
-Name "www" -RecordType "CNAME" -Ttl 600 `
-DnsRecords (New-AzDnsRecordConfig -cname "contoso.azurewebsites.net")
以下示例是响应:
Name : www
ZoneName : contoso.com
ResourceGroupName : myazureresourcegroup
Ttl : 600
Etag : 8baceeb9-4c2c-4608-a22c-229923ee185
RecordType : CNAME
Records : {contoso.azurewebsites.net}
Tags : {}
测试新记录
在读取连接以进行顺序访问的文件时遇到 endfile 记录。可以通过使用 nslookup 查询“www.contoso.com”和“contoso.com”来验证记录是否已正确创建,如下所示:
PS C:\> nslookup
Default Server: Default
Address: 192.168.0.1
> www.contoso.com
Server: default server
Address: 192.168.0.1
Non-authoritative answer:
Name: <instance of web app service>.cloudapp.net
Address: <ip of web app service>
Aliases: www.contoso.com
contoso.azurewebsites.net
<instance of web app service>.vip.azurewebsites.windows.net
> contoso.com
Server: default server
Address: 192.168.0.1
Non-authoritative answer:
Name: contoso.com
Address: <ip of web app service>
> set type=txt
> contoso.com
Server: default server
Address: 192.168.0.1
Non-authoritative answer:
contoso.com text =
"contoso.azurewebsites.net"
添加自定义主机名
现在,可以向 Web 应用添加自定义主机名:
set-AzWebApp `
-Name contoso `
-ResourceGroupName <your web app resource group> `
-HostNames @("contoso.com","www.contoso.com","contoso.azurewebsites.net")
测试自定义主机名
打开浏览器并浏览到 http://www.<your domain name>
和 http://<you domain name>
。
注意
请务必包括 http://
前缀,否则浏览器可能会尝试替你预测 URL!
对于上述两个 URL,应当会看到相同的页面。 例如:
清理资源
不再需要本教程中创建的所有资源时,可以通过删除资源组 MyAzureResourceGroup 来删除它们:
- 在 Azure 门户菜单中,选择“资源组”。
- 选择“MyAzureResourceGroup”资源组。
- 在“概述”页上,选择“删除资源组” 。
- 输入 MyAzureResourceGroup,然后选择“删除”。
后续步骤
在本教程中,你了解了如何在自定义域中为 Web 应用创建 DNS 记录。 要了解如何创建别名记录以引用区域记录,请继续下一个教程: