教程:为 Web 应用在自定义域中创建 DNS 记录

可以配置 Azure DNS 来托管 Web 应用的自定义域。 例如,你可以创建 Azure Web 应用,并让用户使用 www.contoso.comcontoso.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 Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

登录 Azure

登录 Azure 门户

创建 A 记录

A 记录可用于将名称映射到其 IP 地址。 在下面的示例中,使用你的 Web 应用 IPv4 地址将“@”分配为 A 记录。 @ 通常表示根域。

获取 IPv4 地址

在 Azure 门户的“应用服务”页的左侧导航窗格中,选择“自定义域”,然后复制 Web 应用的 IP 地址:

Screenshot of Azure App Service Custom domains page showing the web app I P address.

创建记录

若要创建 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.chinacloudsites.cn")

创建 CNAME 记录

如果域已由 Azure DNS 管理(请参阅 DNS 域委派),可以使用以下示例创建 contoso.chinacloudsites.cn 的 CNAME 记录。 此示例中创建的 CNAME 使用 Web 应用 web app contoso.chinacloudsites.cn 的别名,在名为“contoso.com”的 DNS 区域中的“生存时间”为 600 秒。

New-AzDnsRecordSet -ZoneName contoso.com -ResourceGroupName "MyAzureResourceGroup" `
 -Name "www" -RecordType "CNAME" -Ttl 600 `
 -DnsRecords (New-AzDnsRecordConfig -cname "contoso.chinacloudsites.cn")

以下示例是响应:

    Name              : www
    ZoneName          : contoso.com
    ResourceGroupName : myazureresourcegroup
    Ttl               : 600
    Etag              : 8baceeb9-4c2c-4608-a22c-229923ee185
    RecordType        : CNAME
    Records           : {contoso.chinacloudsites.cn}
    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>.chinacloudapp.cn
Address:  <ip of web app service>
Aliases:  www.contoso.com
contoso.chinacloudsites.cn
<instance of web app service>.chinacloudsites.cn

> 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.chinacloudsites.cn"

添加自定义主机名

现在,可以向 Web 应用添加自定义主机名:

set-AzWebApp `
 -Name contoso `
 -ResourceGroupName <your web app resource group> `
 -HostNames @("contoso.com","www.contoso.com","contoso.chinacloudsites.cn")

测试自定义主机名

打开浏览器并浏览到 http://www.<your domain name>http://<you domain name>

注意

请务必包括 http:// 前缀,否则浏览器可能会尝试替你预测 URL!

对于上述两个 URL,应当会看到相同的页面。 例如:

Screenshot of the contoso Azure App Service Web App accessed via web browser.

清理资源

不再需要本教程中创建的所有资源时,可以通过删除资源组 MyAzureResourceGroup 来删除它们:

  1. 在 Azure 门户菜单中,选择“资源组”。
  2. 选择“MyAzureResourceGroup”资源组。
  3. 在“概述”页上,选择“删除资源组” 。
  4. 输入 MyAzureResourceGroup,然后选择“删除”。

后续步骤

在本教程中,你了解了如何在自定义域中为 Web 应用创建 DNS 记录。 要了解如何创建别名记录以引用区域记录,请继续下一个教程: