教學課程:在自訂網域中建立 Web 應用程式的 DNS 記錄

您可以設定 Azure DNS 來裝載 Web 應用程式的自訂網域。 例如,您可以建立一個 Azure Web 應用程式,並讓使用者使用 www.contoso.com 或 contoso.com 作為完整網域名稱 (FQDN) 存取該應用程式。

注意

本教學課程會使用 Contoso.com 作為範例。 用您自己的網域名稱來取代 contoso.com。

若要這樣做,您必須建立三筆記錄︰

  • 指向 contoso.com 的根 "A" 記錄
  • 要進行驗證的根 "TXT" 記錄
  • 指向 A 記錄之 www 名稱的 "CNAME" 記錄

請記住,如果您在 Azure 中建立 Web 應用程式的 A 記錄,如果 Web 應用程式的基礎 IP 位址變更,則您必須手動更新 A 記錄。

在本教學課程中,您會了解如何:

  • 建立自訂網域的 A 記錄和 TXT 記錄
  • 建立自訂網域的 CNAME 記錄
  • 測試新記錄
  • 將自訂主機名稱新增至 Web 應用程式
  • 測試自訂主機名稱

Prerequisites

如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

注意

本文已更新為使用 Azure Az PowerShell 模組。 Az PowerShell 模組是用來與 Azure 互動的建議 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

  • 您必須提供可用的網域名稱,才能使用可裝載於 Azure DNS 的網域名稱進行測試。 您必須擁有此網域的完整控制權。 完整控制權包括為網域設定名稱伺服器 (NS) 記錄的能力。

  • 建立 App Service 應用程式,或使用您針對另一個教學課程建立的應用程式。

  • 在 Azure DNS 中建立 DNS 區域,並將註冊機構中的區域委派給 Azure DNS。

    1. 若要建立 DNS 區域,請依照 建立 DNS 區域的步驟進行。
    2. 若要將區域委派給 Azure DNS,請依照 DNS 網域委派中的步驟進行。

建立區域並委派給 Azure DNS 之後,便可以為您的自訂網域建立記錄。

使用 Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 Azure Cloud Shell 已預先安裝一些命令,可讓您執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼區塊右上角的 [試試看]。 選取 [試用] 並不會自動將程式碼複製到 Cloud Shell 中。 Azure Cloud Shell 的試試看範例
請前往 https://shell.azure.com 或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 在新視窗中啟動 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 鍵執行程式碼。

建立 A 記錄和 TXT 記錄

A 記錄可用來將名稱對應到其 IP 位址。 在下列範例中,我們會使用您的 Web 應用程式 IPv4 位址將 「@」指派為 A 記錄。 @ 通常代表根網域。

取得 IPV4 位址

在 Azure 入口網站的應用程式服務頁面左側導覽中,選取 [自訂網域] 。

[自訂網域] 功能表

在 [自訂網域] 頁面中,複製應用程式的 IPv4 位址:

入口網站瀏覽至 Azure 應用程式

<a name="create-the-a-record">建立 A 記錄

New-AzDnsRecordSet -Name &quot;@&quot; -RecordType &quot;A&quot; -ZoneName &quot;contoso.com&quot; `
 -ResourceGroupName &quot;MyAzureResourceGroup&quot; -Ttl 600 `
 -DnsRecords (New-AzDnsRecordConfig -IPv4Address &quot;<your web app IP address>")

建立 TXT 記錄

應用程式服務只會在設定時使用此記錄,以確認您擁有自訂網域。 系統驗證您的自訂網域並在 App Service 中設定之後,您就可以刪除此 TXT 記錄。

注意

如果您想要確認網域名稱,但不要將生產流量路由傳送至 Web 應用程式,則只需針對驗證步驟指定 TXT 記錄。 除了 TXT 記錄,驗證不需要 A 或 CNAME 記錄。

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 記錄。

開啟 Azure PowerShell 並建立新的 CNAME 記錄。 此範例會建立一個記錄集類型 CNAME,並在 DNS 區域中建立一個「存留期」為 600 秒的 "contoso.com",其 Web 應用程式的別名為 contoso.azurewebsites.net。

建立記錄

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 : myresourcegroup
    Ttl               : 600
    Etag              : 8baceeb9-4c2c-4608-a22c-229923ee185
    RecordType        : CNAME
    Records           : {contoso.azurewebsites.net}
    Tags              : {}

測試新記錄

如下所示,您可以使用 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 MyAzureResourceGroup `
 -HostNames @("contoso.com","www.contoso.com","contoso.azurewebsites.net")

測試自訂主機名稱

請開啟網頁瀏覽器,然後瀏覽至 http://www.<your domainname>http://<you domain name>

注意

請確定您納入了 http:// 前置詞,否則瀏覽器可能會嘗試為您預測 URL!

這兩個 URL 應該會導向相同的頁面。 例如:

Contoso 應用程式服務

清除資源

若不再需要本教學課程中建立的資源,請刪除 myresourcegroup 資源群組。

後續步驟

了解如何建立 Azure DNS 私人區域。