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

教程:为 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 Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

选项 示例/链接
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 显示 Azure Cloud Shell 的“试用”示例的屏幕截图。
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 用于启动 Azure Cloud Shell 的按钮。
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 显示 Azure 门户中的 Cloud Shell 按钮的屏幕截图

若要使用 Azure Cloud Shell,请执行以下操作:

  1. 启动 Cloud Shell。

  2. 选择代码块(或命令块)上的“复制”按钮以复制代码或命令。

  3. 在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。

  4. 选择“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 地址:

显示 web 应用 IP 地址的“Azure 应用服务自定义域”页的屏幕视图。

创建记录

若要创建 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,应当会看到相同的页面。 例如:

通过 web 浏览器访问的 contoso Azure 应用服务 Web 应用的屏幕截图。

清理资源

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

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

后续步骤

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