應用程式閘道接聽程式設定

注意

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

接聽程式是一種邏輯實體,可使用連接埠、通訊協定、主機和 IP 位址來檢查傳入連線要求。 在設定監聽器時,必須輸入與閘道輸入請求對應的設定值。

當您使用 Azure 入口網站建立應用程式閘道時,您也可以為接聽程式選擇通訊協定和連接埠,以建立預設接聽程式。 您可以選擇是否在接聽程式上啟用 HTTP2 支援。 建立應用程式閘道之後,您可以編輯該預設接聽程式 (appGatewayHttpListener) 的設定,或建立新的接聽程式。

接聽程式類型

建立新接聽程式時,您必須選擇基本或多個站台。 選擇取決於路由是否取決於接收請求中的主機名稱。

路由取決於主機名稱 接聽程式類型 行為
No 基本 接受並將任何網域的所有請求轉送至後端集區。 了解如何使用基本接聽程式建立應用程式閘道。
Yes 多地點 根據 主機 標頭或主機名稱,將請求轉發到不同的後端池。 「應用程式閘道」需依賴 HTTP 1.1 主機標頭,才能在相同的公用 IP 位址和連接埠上裝載多個網站。 要區分同一埠上的請求,必須指定與來訪請求相符的主機名稱。

若要深入了解多網站接聽程式,請參閱 使用 Application Gateway 裝載多個網站。

處理監聽器的順序

若為 v1 SKU,則會根據規則順序及接聽程式類型來比對要求。 如果帶有基本監聽器的規則在順序中排在前面,則會先進行處理,並接受所有針對該連接埠與 IP 組合的要求。 為避免此行為,請先設定使用多站台接聽程式的規則,然後將使用基本接聽程式的規則移至清單最後。

針對 v2 SKU,規則優先順序會定義監聽器處理的順序。 定義優先順序編號大於特定網站與多網站接聽程式的萬用字元和基本接聽程式。 此配置可確保特定網站與多網站監聽器會先於萬用字元與基本監聽器執行。

下表總結每個SKU中處理順序的決定方式。

SKU 決定順序的因素 建議組態
v1 規則的順序和聆聽者的類型。 排序在最前面的基本接聽程式規則會優先進行處理,並接受該連接埠與 IP 組合的任何要求。 先用多站點監聽器配置規則,然後用基本監聽器推送規則到清單的最後一個位置。
v2 規則的優先順序。 定義萬用字元與基本接聽程式,使其優先順序編號大於用於特定網站與多網站接聽程式的編號,以便讓特定網站與多網站接聽程式優先執行。

前端 IP 位址

選擇您計劃與此接聽程式相關聯的前端 IP 位址。 接聽程式會在此 IP 位址上接收傳入要求。

當用戶端透過網際網路連接到這個監聽器背後的應用程式時,選擇一個公開前端 IP 位址。 為未對網際網路公開的內部端點選擇一個私有前端 IP 位址,例如內部企業營運應用程式,或多層式應用程式中仍需要負載分配、工作階段黏性或 TLS 終止的某一層。 關於支援的組合,請參見 前端 IP 位址設定。

注意

應用程式閘道 前端支援雙堆疊 IP 位址。 你可以建立最多四個前端 IP 位址:兩個 IPv4 位址(公用與私有)和兩個 IPv6 位址(公用與私有)。

前端連接埠

關聯前端連接埠。 您可以選取現有的連接埠或建立一個新的。 從允許的連接埠範圍選擇任何值。 您不僅可以使用知名的連接埠,例如 80 和 443,也可以使用合適的任何允許的自訂連接埠。 相同的連接埠可用於公用和私人監聽器。

埠 80 是 HTTP 監聽器的典型選擇,而埠 443 則是 HTTPS 監聽器的典型選擇。 當你的應用程式需要時,請使用自訂埠,並確認該值是否落在你 SKU 允許的範圍內,因為 v1 和 v2 SKU 的支援範圍會有所不同。

注意

使用私人和公用接聽程式搭配使用的相同連接埠號碼時,您的應用程式閘道就會將輸入流程的「目的地」變更為閘道前端 IP。 因此,視您的網路安全組的設定而定,您可能需要在輸入規則中使用應用程式閘道的公用和私人前端 IP 作為目的地 IP 位址。

輸入規則:

  • 來源:(根據您的需求)
  • 目的地 IP 位址:應用程式閘道的公用和私人前端 IP。
  • 目的地連接埠:(根據接聽程式設定)
  • 通訊協定:TCP

輸出規則:(無特定需求)

通訊協定

選擇 HTTP 或 HTTPS。 當客戶端與應用閘道之間的流量必須加密時,請選擇 HTTPS,這樣也能讓閘道器卸載加密和解密工作,讓你的後端伺服器不會被 TLS 計算負擔所困擾。 當該加密對該接收者所接受的流量不需時,選擇 HTTP。

  • 如果您選擇 HTTP,用戶端與應用程式閘道之間的流量不會加密。

  • 如果您想要 TLS 終止或端對端 TLS 加密,請選擇 HTTPS。 用戶端與應用程式閘道之間的流量會加密,且 TLS 連線將會在應用程式閘道終止。 如果您想要端對端 TLS 加密至後端目標,則必須選擇後端 HTTP 設定中的 HTTPS。 這可確保應用程式閘道起始後端目標連線時流量會加密。

若要設定 TLS 終止,必須將 TLS/SSL 憑證新增至接聽程式。 這可讓應用程式閘道解密傳入流量,並將對用戶端的回應流量加密。 提供給應用程式閘道的憑證必須是個人資訊交換 (PFX) 格式,其包含私密金鑰和公開金鑰。

注意

針對接聽程式使用來自 金鑰保存庫 的 TLS 憑證時,您必須確保您的應用程式閘道一律可以存取該連結的 金鑰保存庫 資源及其內的憑證物件。 這可讓您順暢地操作 TLS 終止功能,並維護閘道資源的整體健康情況。 如果應用程式閘道資源偵測到設定錯誤的 Key Vault,其會自動將相關聯的 HTTPS 接聽程式置於停用狀態。 深入了解。

支援的憑證

請參閱 TLS 終止及端對端 TLS 與應用閘道的概述。

其他通訊協定支援

HTTP/2 支援

應用閘道支援 HTTP/2 協定,供連接應用閘道監聽器的用戶端使用。 與後端伺服器池的通訊始終使用 HTTP/1.1。 預設已停用 HTTP/2 支援。 以下 Azure PowerShell 程式碼摘要說明如何啟用此支援:

$gw = Get-AzApplicationGateway -Name test -ResourceGroupName hm

$gw.EnableHttp2 = $true

Set-AzApplicationGateway -ApplicationGateway $gw

這很重要

當你透過 Azure 入口建立應用程式閘道資源時,預設的 HTTP2 選項是啟用的。 你可以在建立時選擇「停用」,然後在 Azure 入口網站的應用程式閘道>設定中選擇「啟用」,重新啟用 HTTP/2 支援。

當用戶端不支援 HTTP/2 時,連線會使用 HTTP/1.1。 啟用 HTTP/2 並不代表關閉 HTTP/1.1;它允許同時支援兩者。

注意

應用閘道僅支援 HTTP/2 over TLS(HTTPS 監聽器)。 Application Gateway 不支援從 HTTP/1.1 升級 HTTP/2 明文(h2c)協定的嘗試,並回傳 403 禁止錯誤。 嘗試升級 h2c 的用戶端應使用原生 HTTP/2 連線而非 HTTPS,或維持 HTTP/1.1。

HTTP/3(QUIC)支援

這很重要

Azure 應用程式閘道 中的 HTTP/3 支援目前處於預覽階段。 雖然目前仍處於預覽階段,此功能的功能、可用性及其他面向可能會因回饋而改變。

此預覽版未簽訂服務等級協議,且不建議用於生產工作負載。 某些功能可能不支援或功能受限。

欲了解更多資訊,請參閱 Microsoft Azure 預覽版補充使用條款。

應用程式閘道僅支援使用 Basic 監聽器的用戶端連線 HTTP/3。 支援 HTTP/3 的監聽器也能接收來自用戶端的 HTTP/1.1 或 HTTP/2 流量。 從應用閘道到後端伺服器池的通訊仍使用 HTTP/1.1。

HTTP/3 支援預設是關閉的。

HTTP/3 支援的宣傳方式

應用閘道透過使用 Alt-Svc HTTP 回應標頭來宣傳 HTTP/3 支援。 當你在監聽器啟用 HTTP/3 時,應用閘道會在回應中包含以下 Alt-Svc 標頭。

Alt-Svc: h3=":<listener-port>"; ma=86400

當你停用 HTTP/3 時,Application Gateway 不會包含 Alt-Svc 標頭。

支援 HTTP/3 的用戶端可以使用宣告的服務在監聽器埠建立 QUIC 連線。 不支援 HTTP/3 的用戶端仍繼續使用 HTTP/2 或 HTTP/1.1 而非 TCP。

Application Gateway 如何宣傳 HTTP/3 支援的截圖。

WebSocket 支援

預設會啟用 WebSocket 支援。 沒有使用者可設定的設定可啟用或停用。 您可以使用 WebSockets 搭配 HTTP 和 HTTPS 接聽程式。

自訂錯誤頁面

你可以為應用程式閘道回傳的不同回應碼定義自訂錯誤頁面。 你可以針對回應代碼 400、403、405、408、500、502、503 和 504 設定錯誤頁面。 使用全域層級或接聽程式專屬的錯誤頁面設定,針對每個接聽程式進行細部設定。 如需詳細資訊,請參閱建立應用程式閘道的自訂錯誤頁面。

注意

應用閘道會將錯誤從後端伺服器傳遞給用戶端,但不修改錯誤。

TLS 原則

您可以將 TLS/SSL 憑證管理集中,並減少後端伺服器陣列的加密解密額外負荷。 集中式 TLS 處理也能讓你指定符合安全需求的中央 TLS 政策。 你可以選擇 預先定義 或 自訂 的 TLS 政策。

你設定 TLS 政策來控制 TLS 協定版本。 你可以設定應用程式閘道器,使用TLS 1.0、1.1、TLS 1.2和TLS 1.3的最低協議版本來進行TLS握手。 預設會停用 SSL 2.0 和 3.0,因此無法設定。 如需詳細資訊,請參閱應用程式閘道 TLS 原則概觀。

建立聆聽器之後,您會將其與要求路由規則關聯。 這條規則決定了監聽者收到的請求如何被路由到後端。

下一步