教學課程:使用 Azure 入口網站建立和設定應用程式閘道以裝載多個網站

您可以使用 Azure 入口網站,在建立應用程式閘道設定裝載多個站台。 在本教學課程中,您可以使用虛擬機器定義後端位址集區。 接著,您可以根據兩個網域來設定接聽程式和規則,確保網路流量會抵達集區中的適當伺服器。 本教學課程使用 www.contoso.comwww.fabrikam.com 範例。

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

  • 建立應用程式閘道
  • 建立後端伺服器的虛擬機器
  • 建立包含後端伺服器的後端集區
  • 建立接聽程式
  • 建立路由規則
  • 編輯主機檔案以進行名稱解析

Diagram showing multi-site application gateway.

如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

必要條件

  • Azure 訂閱

登入 Azure

登入 Azure 入口網站

建立應用程式閘道

  1. 從 Azure 入口網站功能表,選取 [+ 建立資源]>[網路]>[應用程式閘道],或在入口網站搜尋方塊中搜尋應用程式閘道群組

  2. 選取 建立

[基本] 索引標籤

  1. 在 [基本] 索引標籤上,輸入這些值:

    • 資源群組:選取 myResourceGroupAG 作為資源群組。 如果資源群組不存在,請選取 [新建] 加以建立。

    • 應用程式閘道名稱:輸入 myAppGateway 作為應用程式閘道的名稱。

      Screenshot showing Create application gateway page.

  2. Azure 需要虛擬網路才能在您所建立的資源之間進行通訊。 您可以建立新的虛擬網路,或使用現有的虛擬網路。 在此範例中,您將會在建立應用程式閘道時,同時建立新的虛擬網路。 在不同的子網路中,建立應用程式閘道執行個體。 在此範例中您會建立兩個子網路:一個用於應用程式閘道,另一個用於後端伺服器。

    在 [設定虛擬網路] 底下,選取 [建立] 以建立新的虛擬網路。 在隨即開啟的 [建立虛擬網路] 視窗中,輸入下列值以建立虛擬網路和兩個子網路:

    • 名稱:輸入 myVNet 作為虛擬網路的名稱。

    • 子網路名稱 (應用程式閘道子網路):[子網路] 方格將會顯示名為 Default 的子網路。 將此子網路的名稱變更為 myAGSubnet
      應用程式閘道子網路只能包含應用程式閘道。 不允許任何其他資源。 預設 IP 位址範圍為 10.0.0.0/24。

    選取 [確定] 以關閉 [建立虛擬網路] 視窗並儲存虛擬網路設定。

    Create VNet

  3. 在 [基本] 索引標籤上,接受其他設定的預設值,然後選取 [下一步:前端]

[前端] 索引標籤

  1. 在 [前端] 索引標籤上,確認 [前端 IP 位址類型] 已被設為 [公用]
    您可以根據自己的使用案例,設定為公用或私人前端 IP。 在此範例中,您會選擇公用前端 IP。

    注意

    對於應用程式閘道 v2 SKU,您只能選擇 [公用] 前端 IP 組態。 使用私人前端 IP 位址設定目前為公開預覽狀態。 如需詳細資訊,請參閱私人應用程式閘道部署

  2. 針對 [公用 IP 位址] 選擇 [新增],而針對公用 IP 位址名稱輸入 myAGPublicIPAddress,然後選取 [確定]。

    Create another VNet

  3. 選取 [下一步:後端]

[後端] 索引標籤

後端集區用於將要求路由傳送至可為要求提供服務的後端伺服器。 後端集區可以是 NIC、虛擬機器擴展集、公用 IP、內部 IP、完整的網域名稱 (FQDN),以及 Azure App Service 等多租用戶後端。 在此範例中,您將會搭配應用程式閘道建立空的後端集區,然後將後端目標新增至該後端集區。

  1. 在 [後端] 索引標籤上,選取 [新增後端集區]

  2. 在隨即開啟的 [新增後端集區] 視窗中,輸入下列值以建立空的後端集區:

    • 名稱:輸入 contosoPool 作為後端集區的名稱。
    • 新增不含目標的後端集區:選取 [是] 以建立不含目標的後端集區。 您將會在建立應用程式閘道之後再新增後端目標。
  3. 在 [新增後端集區] 視窗中,選取 [新增] 以儲存後端集區設定,並返回 [後端] 索引標籤。

  4. 現在,新增另一個名為 fabrikamPool 的後端集區,與您新增上一個集區的方式相同。

  5. 選取 [新增]。

    Create Backends

  6. 在 [後端] 索引標籤上,選取 [下一步:設定]

設定索引標籤

在 [設定] 索引標籤上,您將會連線至您使用路由規則所建立的前端和後端集區。

  1. 選取 [路由規則] 欄中的 [新增路由規則]

  2. 在隨即開啟的 [新增路由規則] 視窗中,針對 [規則名稱] 輸入 contosoRule

  3. 路由規則需要接聽程式。 在 [新增路由規則] 視窗內的 [接聽程式] 索引標籤上,針對接聽程式輸入下列值:

    • 規則名稱contosoRule
    • 接聽程式名稱contosoListener
    • 前端 IP:選取 [公用] 以選擇您針對前端所建立的公用 IP。

    在 [其他設定] 之下:

    • 接聽程式類型:多站台
    • 主機名稱www.contoso.com

    接受 [接聽程式] 索引標籤上其他設定的預設值,然後選取 [後端目標] 索引標籤以設定其餘的路由規則。

    Create routing rule

  4. 在 [後端目標] 索引標籤上,針對 [後端目標] 選取 [contosoPool]

  5. 針對 [後端設定],選取 [新增] 以新增新的後端設定。 後端設定將會決定路由規則的行為。 在開啟的 [新增後端設定] 視窗中,在 [後端設定名稱] 中輸入 contosoSetting,並針對 [後端連接埠] 輸入 80。 接受 [新增後端設定] 視窗中其餘設定的預設值,然後選取 [新增] 以返回 [新增路由規則] 視窗。

  6. 在 [新增路由規則] 視窗上,選取 [新增] 以儲存路由規則,並返回 [設定] 索引標籤。

  7. 選取 [新增路由規則],然後為 Fabrikam 新增類似的規則、接聽程式、後端目標和後端設定。

    Fabrikam rule

  8. 選取 [下一步:標籤],然後選取 [下一步:檢閱 + 建立]

[檢閱 + 建立] 索引標籤

檢閱 [檢閱 + 建立] 索引標籤上的設定,然後選取 [建立] 以建立虛擬網路、公用 IP 位址和應用程式閘道。 Azure 建立應用程式閘道可能需要幾分鐘的時間。

請等候部署成功完成後,再繼續進行至下一節。

新增後端目標

在此範例中,您會使用虛擬機器作為目標後端。 您可以使用現有的虛擬機器,或建立新的虛擬機器。 您會建立兩個虛擬機器,供 Azure 作為應用程式閘道的後端伺服器。

若要新增後端目標,您會:

  1. 新增後端子網路。
  2. 建立 2 個新 VM (contosoVMfabrikamVM),以作為後端伺服器。
  3. 在虛擬機器上安裝 IIS,以確認成功建立應用程式閘道。
  4. 將後端伺服器新增至後端集區。

新增後端子網路

  1. 在 Azure 入口網站搜尋 [虛擬網路]並選取 *[myVNet]
  2. 在 [設定] 下,選取 [子網路]。
  3. 選取 [ + 子網路],然後在 [新增子網路] 窗格中,輸入 myBackendSubnet 作為 [名稱],並接受 10.0.1.0/24 作為 [子網路位址範圍]
  4. 接受所有其他預設設定,並選取 [儲存]

建立虛擬機器

  1. 在 Azure 入口網站中,選取 [建立資源]。 [新增] 視窗隨即出現。

  2. 選取 [熱門] 清單中的 [Windows Server 2016 Datacenter]。 [建立虛擬機器] 頁面隨即出現。
    應用程式閘道可將流量路由至其後端集區中所用任何類型的虛擬機器。 在此範例中,您會使用 Windows Server 2016 Datacenter。

  3. 在 [基本] 索引標籤中,為下列虛擬機器設定輸入這些值:

    • 訂用帳戶︰選取您的訂用帳戶。
    • 資源群組:選取 myResourceGroupAG 作為資源群組名稱。
    • 虛擬機器名稱:輸入 contosoVM 作為虛擬機器的名稱。
    • [區域]:選取您先前使用的相同區域。
    • 使用者名稱:輸入系統管理員使用者的名稱。
    • 密碼:輸入管理員的密碼。
  4. 接受其他預設值,然後選取 [下一步:磁碟]

  5. 接受 [磁碟] 索引標籤的預設值,然後選取 [下一步:網路]

  6. 在 [網路] 索引標籤上,確認已選取 [myVNet] 作為[虛擬網路],且 [子網路] 設為 [myBackendSubnet]。 接受其他預設值,然後選取 [下一步:管理]
    「應用程式閘道」可與其虛擬網路外的執行個體進行通訊,但您需要確保具有 IP 連線能力。

  7. 在 [管理] 索引標籤上,將 [開機診斷] 設為 [停用]。 接受其他預設值,然後選取 [檢閱 + 建立]

  8. 在 [檢閱 + 建立] 索引標籤上檢閱設定,並更正任何驗證錯誤,然後選取 [建立]

  9. 請等候虛擬機器建立完成,再繼續操作。

安裝 IIS 進行測試

在此範例中,您在虛擬機器上安裝 IIS,只為了驗證 Azure 已成功建立應用程式閘道。

  1. 開啟 Azure PowerShell。 若要這樣做,請從 Azure 入口網站的頂端導覽列中選取 [Cloud Shell],然後從下拉式清單中選取 [PowerShell]

    Install custom extension

  2. 執行下列命令以在虛擬機器上安裝 IIS,並以您的資源群組區域取代<位置>:

    Set-AzVMExtension `
      -ResourceGroupName myResourceGroupAG `
      -ExtensionName IIS `
      -VMName contosoVM `
      -Publisher Microsoft.Compute `
      -ExtensionType CustomScriptExtension `
      -TypeHandlerVersion 1.4 `
      -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
      -Location <location>
    
  3. 使用您先前完成的步驟,建立第二個虛擬機器並安裝 IIS。 請使用 fabrikamVM 作為虛擬機器名稱,並作為 Set-AzVMExtension Cmdlet 的 VMName 設定。

將後端伺服器新增至後端集區

  1. 選取 [所有資源],然後選取 [myAppGateway]

  2. 從左側功能表中中選取 [後端集區]

  3. 選取 [contosoPool]

  4. 在 [目標類型] 下方,從下拉式清單中選取 [虛擬機器]

  5. 在 [目標] 下方,從下拉式清單中選取 [contosoVM] 虛擬機器的網路介面。

    Add backend servers

  6. 選取 [儲存]。

  7. 重複執行,新增 fabrikamVM 並連接至 fabrikamPool

等候部署完成,再繼續進行下一個步驟。

編輯您的主機檔案以進行名稱解析

在以公用 IP 位址建立應用程式閘道之後,您可以取得 IP 位址並用來編輯您的主機檔案來解決 www.contoso.comwww.fabrikam.com。 在生產環境中,您可以在 DNS 中建立名稱解析 CNAME

  1. 選取 [所有資源],然後選取 [myAGPublicIPAddress]

    Record application gateway DNS address

  2. 複製 IP 位址,並將其作為您 hosts 檔案之新項目的值。

  3. 在您的本機電腦上,開啟系統管理命令提示字元,並導覽至 c:\Windows\System32\drivers\etc

  4. 開啟 hosts 檔案,並新增下列項目,其中 x.x.x.x 是應用程式閘道的公用 IP 位址:

    # Copyright (c) 1993-2009 Microsoft Corp.
    #
    # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
    #
    # This file contains the mappings of IP addresses to host names. Each
    # entry should be kept on an individual line. The IP address should
    # be placed in the first column followed by the corresponding host name.
    # The IP address and the host name should be separated by at least one
    # space.
    #
    # Additionally, comments (such as these) may be inserted on individual
    # lines or following the machine name denoted by a '#' symbol.
    #
    # For example:
    #
    #      102.54.94.97     rhino.acme.com          # source server
    #       38.25.63.10     x.acme.com              # x client host
    
    # localhost name resolution is handled within DNS itself.
    #	127.0.0.1       localhost
    #	::1             localhost
    x.x.x.x www.contoso.com
    x.x.x.x www.fabrikam.com
    
    
  5. 儲存檔案。

  6. 執行下列命令以載入並顯示主機檔案的變更:

     ipconfig/registerdns
     ipconfig/displaydns
    

測試應用程式閘道

  1. 在瀏覽器的網址列中輸入您的網域名稱。 例如: http://www.contoso.com

    Test contoso site in application gateway

  2. 將位址變更為另一個網域,您應該會看到類似下列的範例:

    Test fabrikam site in application gateway

清除資源

當您不再需要先前為應用程式閘道建立的資源時,請刪除資源群組。 當您刪除資源群組時,也可以刪除應用程式閘道及其所有相關資源。

若要移除資源群組:

  1. 在 Azure 入口網站的左側功能表上,選取 [資源群組]
  2. 在 [資源群組] 頁面上,在清單中搜尋 myResourceGroupAG 並加以選取。
  3. 在 [myResourceGroupAG] 頁面中,選取 [刪除資源群組]
  4. 針對 [輸入資源群組名稱] 輸入 myResourceGroupAG,然後選取 [刪除]

若要還原 hosts 檔案:

  1. hosts 檔案中刪除 www.contoso.comwww.fabrikam.com 行。
  2. 從命令提示字元執行 ipconfig/registerdnsipconfig/flushdns

下一步

在本教學課程中,您已:

  • 根據兩個網域建立具有接聽程式和規則的應用程式閘道
  • 在編輯後端伺服器的主機檔案之後測試應用程式閘道

若要深入了解載入多個網站,請參閱應用程式閘道多站台裝載

若要了解如何使用 Azure 入口網站,建立及設定具有路徑型路由規則的應用程式閘道,請繼續進行下一個教學課程。