應用程式閘道建立及設定

已完成

應用程式閘道包含一系列的元件,這些元件會協力將要求路由傳送至 Web 伺服器集區,以及檢查這些 Web 伺服器的健康情況。 讓我們看看這些元件彼此之間的關係,以及它們在應用程式閘道中所扮演的角色。

具有應用程式閘道元件視覺效果的圖表。

前端 IP 位址

用戶端要求是由「前端 IP 位址」所接收。 您可以設定讓應用程式閘道擁有公用 IP 位址、私人 IP 位址或兩者。 應用程式閘道無法擁有超過一個公用或私人 IP 位址。

接聽程式

應用程式閘道會使用一或多個「接聽程式」來接收傳入要求。 接聽會接受以特定通訊協定、連接埠、主機及 IP 位址的組合傳入的流量。 每個接聽程式都會依據您所指定的路由規則,將要求路由至伺服器的後端集區。 接聽程式可以是「基本」或「多網站」。 基本接聽程式只會根據 URL 中的路徑來路由傳送要求。 多網站接聽程式也可以使用 URL 的主機名稱元素來路由傳送要求。

接聽程式也可以處理 SSL 憑證,來在使用者和應用程式閘道之間保護您的應用程式。

路由規則

「路由規則」會將接聽程式繫結至後端集區。 規則能指定在要求的 URL 中解譯主機名稱和路徑元素的方式,以及如何將要求導向適當的後端集區。 路由規則也有相關聯的 HTTP 設定集合。 這些設定會指出是否會針對應用程式閘道和後端伺服器之間的流量進行加密 (以及加密的方式),以及其他設定資訊,例如:

  • 通訊協定 (HTTP 或 HTTPS)。
  • 工作階段黏著度,以將用戶端工作階段中的所有要求傳遞至相同的 Web 伺服器,而非使用負載平衡將它們分散到所有伺服器上。
  • 清空連線,以從後端集區正常移除伺服器。
  • 要求逾時期間,以秒為單位。
  • 健康情況探查,指定探查 URL、逾時期間,以及用來判斷後端集區中伺服器可用性的其他參數。

後端集區

「後端集區」會參考 Web 伺服器的集合。 您會在設定集區時提供每部 Web 伺服器的 IP 位址,以及該伺服器用來接聽要求的連接埠。 每個集區都可以指定固定的虛擬機器集合、虛擬機器擴展集、由 Azure App Service 裝載的應用程式,或是內部部署伺服器集合。 每個後端集區都具有相關聯的負載平衡器,其能將作業分散到集區上

Web 應用程式防火牆

「Web 應用程式防火牆」(WAF) 是選擇性的元件,它能在傳入要求抵達接聽程式之前先行處理該要求。 Web 應用程式防火牆會根據 Open Web Application Security Project (OWASP) 針對許多常見的威脅檢查每個要求。 包括:

  • SQL 插入式攻擊
  • 跨網站指令碼處理
  • 命令插入式攻擊
  • HTTP 要求走私攻擊
  • HTTP 回應分割攻擊
  • 遠端檔案包含
  • Bot、編目程式及掃描程式攻擊
  • HTTP 通訊協定違規和異常情況

OWASP 已定義一組一般規則來偵測稱為核心規則集 (CRS) 的攻擊。 該規則集會隨著日漸複雜的攻擊而持續被檢閱。 WAF 支援兩個規則集,CRS 2.2.9 和 CRS 3.0。 CRS 3.0 是預設規則集,也是這兩個規則集中較新的。 若有必要,您可以僅選取規則集中的特定規則,以特定威脅為目標。 此外,您可以自訂防火牆以指定要檢查要求中的哪些元素,並限制訊息大小以防止伺服器被大量上傳癱瘓。

您可以在建立閘道時選取 WAF 層,以在應用程式閘道上啟用 WAF。

健康情況探查

健康情況探查是協助負載平衡器判斷後端集區中有哪些伺服器可供進行負載平衡的重要元素。 應用程式閘道會使用健康情況探查來將要求傳送至伺服器。 如果該伺服器傳回的 HTTP 回應具有介於 200 到 399 之間的狀態碼,便代表該伺服器的健康情況良好。

如果您未設定健康情況探查,應用程式閘道會建立預設探查,它會等候 30 秒再決定伺服器是否不可用。

應用程式閘道網路需求

應用程式閘道需要虛擬網路以在其中運作。 您必須先建立此虛擬網路及專用的子網路,才能設定應用程式閘道。 應用程式閘道會針對內部用途使用數個私人位址,並會在閘道相應放大的情況下將它們用來與每個執行個體進行通訊。例如,如果您計畫擴充為四個執行個體,請建立 /28 大小的子網路。 如果您很可能會擴充為更多執行個體,則請建立更大的子網路。

您可以透過公用 IP 位址公開應用程式閘道,也可以僅給予它虛擬網路內的私人 IP 來將它保持不公開。 這在您擁有想要使用應用程式閘道來提供負載平衡的內部網站時將會非常有用。

應用程式閘道選項

您可以在「標準」層或 WAF 層上建立應用程式閘道。 您也可以從三種具有不同效能、定價和延展性的大小中選擇:小型、中型和大型。

「標準」WAF 層提供兩種版本,V1 和 V2。 V2 支援 Azure 可用性區域,但它目前為預覽狀態。

應用程式閘道支援手動和自動調整規模。 如果您選取自動調整規模,應用程式閘道將會根據應用程式流量自動擴充和縮小規模。 您可以限制應用程式閘道執行個體的最大和最小數目。

建立及設定閘道

您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來建立及設定應用程式閘道。 針對 Azure CLI,請使用 az network application-gateway create 命令來建立新的閘道。 如果您偏好使用 PowerShell,請使用 New-AzApplicationGateway Cmdlet。 您也可以使用 Azure 入口網站來執行大部分的作業。

您可以檢查並修改閘道中元件的設定,方法是從 Azure CLI 使用 az network application-gateway http-listeneraz network application-gateway ruleaz network application-gateway address-poolaz network application-gateway http-settingsaz network application-gateway front-end-port 命令。 Get-AzApplicationGateway*Set-AzApplicationGateway* 系列 Cmdlet 能為 PowerShell 提供相同的作業。

讓我們針對先前所部署的機動車輛部門網站建立並設定應用程式閘道。