透過應用程式閘道設定 App Service

應用程式閘道可讓您以 App Service 應用程式或其他多租用戶服務作為後端集區成員。 在本文中,您將了解如何透過應用程式閘道設定 App Service 應用程式。 應用程式閘道的設定會根據 App Service 存取方式而不同:

  • 第一個選項會使用後端中應用程式閘道和 App Service 上的「自訂網域」
  • 第二個選項是使用「預設網域」 (尾碼為 ".azurewebsites.net"),以讓應用程式閘道存取 App Service。

此設定建議用於生產等級案例,並符合在要求流程中不變更主機名稱的做法。 您必須擁有自訂網域 (和相關聯的憑證),以避免必須依賴預設 ".azurewebsites" 網域。

將相同的網域名稱與後端集區中的應用程式閘道和 App Service 產生關聯,要求流程就不需要覆寫主機名稱。 後端 Web 應用程式將會看到用戶端所使用的原始主機。

Scenario overview for Application Gateway to App Service using the same custom domain for both

在本文章中,您將了解如何:

  • 設定 DNS
  • 將 App Service 以後端集區形式新增至應用程式閘道
  • 設定連線至 App Service 的 HTTP 設定
  • 設定 HTTP 接聽程式
  • 設定要求路由規則

必要條件

設定 DNS

在此案例的內容中,DNS 在兩個位置相關:

  • 使用者或用戶端用於應用程式閘道且顯示在瀏覽器中的 DNS 名稱
  • 應用程式閘道內部用來存取後端中 App Service 的 DNS 名稱

使用自訂網域,將使用者或用戶端路由傳送至應用程式閘道。 針對應用程式閘道,使用指向 DNS 的 CNAME 別名來設定 DNS。 應用程式閘道 DNS 位址會顯示在相關聯公用 IP 位址的概觀頁面上。 或者,直接建立指向 IP 位址的 A 記錄。 (針對應用程式閘道 V1,如果您停止並啟動此服務,則 VIP 可能會變更,而這會讓此選項變成不需要。)

應該設定 App Service,使其使用自訂網域名稱作為傳入主機來接受來自應用程式閘道的流量。 如需如何將自訂網域對應至 App Service 的詳細資訊,請參閱教學課程:將現有自訂 DNS 名稱對應至 Azure App Service。若要驗證網域,App Service 只需要新增 TXT 記錄。 CNAME 或 A-records 不需要變更。 自訂網域的 DNS 設定仍然會導向至應用程式閘道。

若要接受透過 HTTPS 的 App Service 連線,請設定其 TLS 繫結。 如需詳細資訊,請參閱在 Azure App Service 中使用 TLS/SSL 繫結來保護自訂 DNS 名稱。設定 App Service 從 Azure Key Vault 中提取自訂網域的憑證。

將 App Service 新增為後端集區

  1. 在 Azure 入口網站中,選取您的應用程式閘道。

  2. 在 [後端集區] 下,選取後端集區。

  3. 在 [目標類型] 下,選取 [應用程式服務]

  4. 在 [目標] 下,選取您的 App Service。

    App service backend

    注意

    下拉式清單只會填入與您應用程式閘道位於相同訂用帳戶中的應用程式服務。 如果您想要使用應用程式服務,而其訂用帳戶與應用程式閘道所在的訂用帳戶不同,則請不要在 [目標] 下拉式清單中選擇 [應用程式服務],而是選擇 [IP 位址或主機名稱] 選項,然後輸入應用程式服務的主機名稱 (example.azurewebsites.net)。

  5. 選取 [儲存]。

編輯 App Service 的 HTTP 設定

需要 HTTP 設定,以指示應用程式閘道使用「自訂網域名稱」來存取 App Service 後端。 HTTP 設定預設將使用預設健全狀態探查。 雖然預設健全狀態探查將使用接收流量的主機名稱轉送要求,但由於尚未明確定義主機名稱,因此健全狀態探查將使用 127.0.0.1 作為後端集區的主機名稱。 基於這個理由,我們需要建立以正確的自訂網域名稱作為其主機名稱進行設定的自訂健全狀態探查

我們將使用 HTTPS 連線至後端。

  1. 在 [HTTP 設定] 下,選取現有 HTTP 設定,或新增新的 HTTP 設定。
  2. 建立新的 HTTP 設定時,請為其指定名稱
  3. 使用連接埠 443 來選取 HTTPS 作為所需的後端通訊協定
  4. 如果憑證是由已知的授權單位所簽署,則請針對 [使用已知的 CA 憑證] 選取 [是]。 或者,新增後端伺服器的驗證/受信任的根憑證
  5. 請務必將 [以新的主機名稱覆寫] 設定為 [否]
  6. 在 [自訂探查] 下拉式清單中,選取自訂 HTTPS 健康情況探查。

Configure H T T P Settings to use custom domain towards App Service backend using No Override

設定 HTTP 接聽程式

若要接受流量,我們需要設定接聽程式。 如需此作業的詳細資訊,請參閱應用程式閘道接聽程式設定

  1. 開啟 [接聽程式] 區段,然後選擇 [新增接聽程式] 或按一下現有的接聽程式來進行編輯
  2. 針對新的接聽程式:提供為名稱
  3. 在 [前端 IP] 下,選取要接聽的 IP 位址
  4. 在 [連接埠] 下,選取 [443]
  5. 在 [通訊協定] 下,選取 [HTTPS]
  6. 在 [選擇憑證] 下,選取 [從 Key Vault 選擇憑證]。 如需詳細資訊,請參閱使用 Key Vault,而您可以在其中找到如何指派受控身分識別以及對其提供您 Key Vault 權限的詳細資訊。
    1. 指定憑證的名稱
    2. 選取 [受控身分識別]
    3. 選取從中取得憑證的 Key Vault
    4. 選取憑證
  7. 在 [接聽程式類型] 下,選取 [基本]
  8. 按一下 [新增] 以新增接聽程式

Add a listener for H T T P S traffic

設定要求路由規則

使用稍早設定的後端集區和 HTTP 設定,可以設定要求路由規則來取得接聽程式的流量,並使用 HTTP 設定將其路由傳送至後端集區。 因此,請確定您有 HTTP 或 HTTPS 接聽程式,而此接聽程式尚未繫結至現有的路由規則。

  1. 在 [規則] 下,按一下以新增 [要求路由規則]
  2. 提供具有名稱的規則
  3. 選取尚未繫結至現有路由規則的 HTTP 或 HTTPS 接聽程式
  4. 在 [後端目標] 下,選擇已在其中設定 App Service 的後端集區
  5. 設定哪個應用程式閘道應該連線至 App Service 後端的 HTTP 設定
  6. 選取 [新增] 以儲存此設定

Add a new Routing rule from the listener to the App Service Backend Pool using the configured H T T P Settings

測試

在這麼做之前,請確定後端健康情況顯示為狀況良好:

開啟 [後端健康情況] 區段,並確定 [狀態] 資料行指出 [HTTP 設定] 和 [後端集區] 的組合顯示為[狀況良好]。

Check backend health in Azure portal

現在,使用您與後端中應用程式閘道和 App Service 相關聯的自訂網域,來瀏覽至 Web 應用程式。

限制存取

在這些範例中部署的 Web 應用程式會使用可直接從網際網路存取的公用 IP 位址。 這在您了解新功能及嘗試新事物時,可協助進行疑難排解。 但是,如果您想要將一項功能部署到生產環境,則需要新增更多限制。 請考慮下列選項:

  • 設定根據服務端點的存取限制規則。 這可讓您鎖定應用程式的輸入存取權,以確定來源位址來自應用程式閘道。
  • 使用 Azure App Service 靜態 IP 限制。 例如,您可以限制 Web 應用程式,使它只會從應用程式閘道接收流量。 您可以使用應用程式服務 IP 限制功能,將應用程式閘道 VIP 列為具有存取權的唯一位址。