教學課程:在 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 應用程式。 如果您沒有靜態 HTML Web 應用程式,您可以 為此教學課程建立靜態 HTML Web 應用程式

  • 在註冊機構中委派至 Azure DNS 的 Azure DNS 區域。 如果您沒有 DNS 區域,您可以 建立 DNS 區域,然後將 網域 委派給 Azure DNS。

注意

在本教學課程中, contoso.com 會作為範例功能變數名稱使用。 將取代 contoso.com 為您自己的功能變數名稱。

Azure Cloud Shell

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

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Screenshot that shows an example of Try It for Azure Cloud Shell.
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 Button to launch Azure Cloud Shell.
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 Screenshot that shows the Cloud Shell button in the Azure portal

若要使用 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 位址:

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

App Services 只會在設定時間使用此記錄來確認您擁有自定義網域。 您可以在 App Service 中驗證和設定自訂網域之後,刪除此 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 在名為 「contoso.com」 的 DNS 區域中有 600 秒的「存留時間」,且 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 : myazureresourcegroup
    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 <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 的相同頁面。 例如:

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

清除資源

不再需要時,您可以刪除資源群組 MyAzureResourceGroup,以刪除本教學課程中建立的所有資源:

  1. 在 [Azure 入口網站] 功能表上,選取 [資源群組]。
  2. 選取 MyAzureResourceGroup 資源群組。
  3. 在 [概 觀] 頁面上,選取 [ 刪除資源群組]。
  4. 輸入 MyAzureResourceGroup ,然後選取 [ 刪除]。

下一步

在本教學課程中,您已瞭解如何在 Web 應用程式的自定義網域中建立 DNS 記錄。 若要瞭解如何建立別名記錄以參考區域記錄,請繼續進行下一個教學課程: