閘道負載轉移模式

將共用或特定服務功能轉移至閘道代理。 此方法簡化應用程式開發,將跨領域關注事項集中於閘道器,例如面向客戶端的 TLS 憑證終止,而非在各服務間重複處理。

當多個服務共同負責認證、監控或協定轉譯等任務時,將這些問題整合到單一閘道器中,可以降低每項服務的設定負擔與部署風險。

內容和問題

某些功能通常用於多個服務,這些功能需要設定、管理和維護。 每次應用程式部署時分發的共享或專用服務會增加管理負擔,並增加部署錯誤的可能性。 你必須在所有共享該功能的服務中部署任何共享功能的更新。

安全議題如令牌驗證、加密及TLS憑證管理,可能需要團隊成員具備高度專業技能。 例如,若沒有閘道器,你可能需要在每個應用程式實例上設定並部署面向用戶端的憑證。 你必須追蹤它的有效期限,並在這些情況下更新、測試並驗證。

其他常見的服務,例如驗證、授權、記錄、監視或 節流 ,可能難以在大量部署中實作和管理。 整合這類功能可降低開銷與錯誤機率。

解決方案

將部分功能卸載到閘道器。 閘道接著處理跨領域的問題,如面向用戶端的憑證管理、認證、TLS 終止、監控、協定轉譯,以及代表後端服務的限速。

下圖展示了一個閘道器,該閘道終止入站的 TLS 連線並套用共享能力。 閘道器會驗證後端憑證,並透過獨立的 TLS 連線重新加密流量至後端服務。

客戶端透過 TLS 連接閘道器的示意圖。

此模式的優點包括:

  • 透過集中共享配置(如認證、限速和請求記錄)來簡化服務開發,而非在每個後端服務中實作。 集中化提升一致性,使服務升級更為簡單。

  • 允許專用小組實作需要特殊專業知識的功能,例如安全性。 你的核心團隊可以專注於應用程式功能,將這些專門但跨領域的問題交由相關專家處理。

  • 為請求和回應的記錄與監控提供一致性。 即使服務未正確安裝,閘道器仍能提供基線的監控與記錄。

  • 集中化碳排放感知交通管理。 閘道器可根據即時碳強度訊號調整快取、速率限制及日誌行為。 Azure API 管理 提供這些功能,提供有限預覽版、特定區域及經典層級(開發者、基礎、標準與高級)。 關於可用性與設定細節,請參閱 Azure API 管理 中的環境永續 API。

問題和考慮

當您決定如何實作此模式時,請考慮下列幾點:

  • 高可用性與韌性。 確保閘道具備高可用性並能抵禦故障。 執行閘道的多個實例,以避免單一失敗點。 由於閘道器會終止用戶端連線並可緩衝請求實體,請考慮在實例失敗時如何處理正在進行的請求。 使用連線清空或正常關機機制,避免在移除或重新啟動閘道實例時中斷使用中的工作階段。

  • 容量與規模。 請確定閘道是針對應用程式和端點的容量和調整需求所設計。 請確定閘道不會成為應用程式的瓶頸,且具有足夠的可擴展性。 閘道器必須配置以處理尖峰流量突發,而非僅僅是平均負載。 為了降低成本而對閘道器配置不足,會直接降低背後所有服務的效能。

  • 卸載瞄準鏡。 將多個服務或路由共用的功能卸載,當集中管理時,可以減少重複的實作與管理。

  • 商業邏輯分離。 絕對不要把商業邏輯卸給閘道器。

  • 交易追蹤。 如果您需要追蹤交易,請考慮針對記錄目的產生相互關聯標識符。

  • 額外延遲。 閘道器會在每個請求中加入一個網路跳點。 閘道執行的每個卸載功能,如 TLS 終止、認證或請求檢查,都會為請求路徑增加處理時間。 閘道的連線集區與對後端服務的持續連線,可透過重複使用既有連線,而非為每個請求建立新連線,來部分抵消延遲成本。 評估閘道跳與卸載功能的綜合延遲是否符合工作負載的效能目標。

  • 操作複雜度。 集中式閘道不僅整合管理,也集中營運責任。 你必須將閘道設定、憑證生命週期、政策更新及版本升級視為共同關注事項來管理。 確保負責閘道器的團隊具備能力與工具,能在所有依賴該閘道服務的規模上管理閘道。

  • 安全問題。 閘道是一個高價值的目標,因為它集中管理跨領域的安全功能,如認證、TLS 終止及請求檢查。 閘道器一旦被入侵,可能會暴露所有下游服務。 強化閘道器的安全性,限制其管理介面,並在其所保護的後端服務之外獨立監控閘道器的異常行為。

  • 防止閘道繞過 設定後端服務只接受透過預定閘道路徑的請求。 否則,用戶端可直接連線至後端,繞過在閘道進行的認證、流量限制、請求檢查及記錄。

  • 身份傳播。 定義每個後端是否授權原始呼叫者、閘道器的工作負載身份,或兩者皆有授權。 只有當後端需要委派使用者上下文時,才保留呼叫者權杖或受信任的聲明。 務必將閘道與後端分別進行驗證。 不要將未經驗證的轉寄標頭視為身分識別依據。

  • TLS 維護。 如果閘道終止 TLS,請重新建立 TLS 到後端。 不要透過未加密的 HTTP 轉發流量。 把所有網路都當作不可信。 此拓撲仍需執行後端憑證的發行、輪替及撤銷程序。

  • 轉送標頭與用戶端上下文。 當閘道器終止用戶端連線並建立與後端服務的新連線時,除非閘道器明確轉發,否則用戶端 IP 位址、原始協定及主機名稱等資訊會遺失。 關於緩解策略,請參見「 在反向代理與其後端網頁應用程式之間保留原始 HTTP 主機名稱」。

使用此模式的時機

當下列情況時,請使用此模式:

  • 應用程式部署有共同的關注點,例如TLS憑證或加密。
  • 一個在應用程式部署中常見的功能,可能有不同的資源需求,例如記憶體資源、儲存容量或網路連線。
  • 你應該把像網路安全、限速或其他網路邊界問題的責任,交給更專業的團隊處理。

在下列情況下,此模式可能不適用:

  • 閘道必須包含服務專屬邏輯或路由規則,將後端服務變更與閘道設定變更緊密結合。 將閘道層與內部服務結合,意味著後端更新可能迫使閘道重新部署,降低部署獨立性。
  • 卸載的處理項目較為輕量,且該工作負載對延遲敏感。 當額外負擔超過集中化帶來的好處時,經由閘道所增加的額外一跳可能並不合理。
  • 將關切集中於共享閘道會造成變更管理瓶頸。 若閘道團隊的發布週期比服務團隊慢,卸載可能會延遲憑證、認證政策或網路規則的更新。

工作負載設計

架構設計人員應該評估閘道卸除模式如何用於其工作負載的設計,以解決 Azure 良好架構架構支柱中涵蓋的目標和原則。 例如:

支柱 此模式如何支援支柱目標
可靠性 設計決策有助於使工作負載具有韌性,並確保在故障發生後能復原到正常運作的狀態。 將此責任卸載至閘道可降低後端節點上應用程式程式碼的複雜性。 在某些情況下,卸載會將功能完全轉移為由平臺提供的可靠功能。

- RE:01 簡單性和效率
安全性 設計決策有助於確保 工作負載數據和系統的機密性、 完整性和 可用性 。 在請求流程中加入閘道器,可以集中管理像是網頁應用程式防火牆和用戶端 TLS 政策等控制。 由平台提供的任何卸載功能都已具備增強的安全性。

- SE:06 網路控制
- SE:08 強化資源
成本優化 專注於 維持並提升 您的工作負載的 投資報酬率。 此模式可讓您將成本從每個節點花費的資源重新導向至閘道實作。 集中式處理模型中的成本經常低於分散式模型的成本。

- CO:14 合併
卓越營運有助於透過標準化流程和團隊凝聚力來提供工作負載品質。 在此模式中,卸載功能的配置與維護皆由單一節點負責,而非多個節點管理。 這種集中化標準化了跨領域議題的應用方式,使日常及臨時的營運變更保持一致且可預測。

- OE:02 標準化作業
效能效率 可透過調整、數據和程式碼的優化, 有效率地協助您的工作負載符合需求 。 在請求流程中加入卸載閘道,可以減少每個節點的資源使用,因為功能集中在閘道器。 您可以優化與應用程式程式代碼無關之卸除功能的實作。 已經轉移的平臺提供功能可能已具高度效能。

- PE:03 選擇服務

如果此模式在一個支柱內部引入取捨,請將它們與其他支柱的目標進行考量。

Example

Azure 應用程式閘道 WAF_v2可以實作此模式用於區域網路應用程式。 閘道器終止用戶端 TLS 連線,套用 WAF 與路由政策,並建立新的 TLS 連線至後端服務。 此設計避免了共享的請求處理問題進入後端應用程式碼。

具備 TLS 卸載的應用閘道

下圖顯示應用閘道如何終止入站的 TLS 連線,檢查並過濾流量,並在透過 TLS 轉發至後端池前重新加密。

圖示顯示應用閘道終止用戶端的入站 TLS,套用 WAF 與路由規則,並透過 TLS 重新加密流量至後端池。

此架構使用以下應用閘道元件來卸載共享能力並重新加密後端流量:

  • HTTPS 監聽器。 位於 443 埠的 HTTPS 監聽器接受用戶端的 TLS 入站連線。
  • TLS 證書。 一個來自 Azure Key Vault 的 PFX 憑證會附加在 HTTPS 監聽器上。 應用閘道會解密入站流量以檢查並路由,然後再重新加密到後端池。 後端伺服器仍需憑證來執行重新加密的連線,但在許多情況下可以使用平台管理憑證。
  • 後端池。 後端池定義接收重新加密流量的 HTTPS 伺服器集合。 後端目標可以是虛擬機、Azure 虛擬機器擴展集、IP 位址或 Azure App 服務 實例。 限制後端存取,讓用戶端無法直接連線繞過 Application Gateway 及其 WAF 政策。
  • 後端 HTTP 設定。 將後端協定設為 HTTPS,埠口設為後端的 TLS 埠,例如 443。 設定憑證信任與與後端憑證相符的主機名稱。 若為私有憑證授權單位,請設定受信任根憑證。 如需詳細資訊,請參閱 v2 SKU 的端對端 TLS。
  • 路由規則。 請求路由規則將監聽者與後端池及後端 HTTP 設定關聯起來。 基於路徑的規則可以將不同的 URL 路徑路由到不同的後端池。
  • WAF 政策。 該政策定義了用於檢查請求的管理與自訂規則,包括任何地理匹配規則。

由於應用閘道會解密流量,因此它可以檢查請求內容以進行智慧路由、重寫 HTTP 標頭與網址,並套用 WAF 規則。 接著它會重新加密流量,然後將請求轉發到後端。

關於設定指引,請參閱 《端對端 TLS 加密與應用閘道器》。

支援技術

以下 Azure 服務能協助你實作此模式:

下一步