除了現有的第 7 層功能 (HTTP、HTTPS、WebSocket 和 HTTP/2),Azure 應用程式閘道現在也支援第 4 層 (TCP 通訊協定) 和 TLS (傳傳輸層安全性) Proxy 處理。
應用程式閘道上的 TLS/TCP Proxy 功能
作為反向 Proxy 服務,應用程式閘道第 4 層作業的運作方式與第 7 層 Proxy 作業類似。 用戶端會使用應用程式閘道建立 TCP 連線,而應用程式閘道本身會從後端集區起始與後端伺服器的新 TCP 連線。 下圖顯示一般作業。
程序流程:
- 用戶端會使用前端接聽程式的 IP 位址和連接埠號碼,起始與應用程式閘道的 TCP 或 TLS 連線。 這會建立前端連線。 建立連線之後,用戶端會使用必要的應用層通訊協定來傳送要求。
- 應用程式閘道會從相關聯的後端集區與其中一個後端目標建立新的連線 (形成後端連線),並將用戶端要求傳送至該後端伺服器。
- 來自後端伺服器的回應會由應用程式閘道傳回用戶端。
- 除非 TCP 閒置逾時關閉該連線,否則來自該用戶端的後續要求會繼續使用相同的前端 TCP 連線。
比較 Azure Load Balancer 與 Azure 應用程式閘道:
| Products | 類型 |
|---|---|
| Azure 負載平衡器 | 傳遞負載平衡器,其中用戶端會直接建立與負載平衡器散發演算法所選取後端伺服器的連線。 |
| Azure 應用程式閘道 | 終止負載平衡器,其中用戶端會直接建立與應用程式閘道的連線,並使用應用程式閘道散發演算法所選取的後端伺服器來起始個別連線。 |
Azure 應用程式閘道 (TLS/TCP Proxy)
- 類型 — 第 4 層終止代理。
- 通訊協定 — 支援 TCP 或 TLS 通訊協定。
- 多功能性 — 使用單一端點 (前端 IP) 來提供 HTTP 和非 HTTP 工作負載。
- 擴展 — 設定自動擴展 (最多 125 個執行個體) 以處理您的 TCP 和 TLS 流量。
- 透過 TLS 終止進行安全性 — 透過集中式 TLS 終止和憑證管理簡化安全性,確保所有應用程式 (包括非 HTTP 工作負載) 的一致合規性。 與 Azure 金鑰保存庫無縫整合,以實現安全的憑證管理。
- 後端類型 – 靈活地將您的應用程式連接到任何地方的後端;在相同的虛擬網路中、跨對等互連的 VNet、透過遠端 FQDN 或 IP,甚至透過內部部署伺服器的混合式連線。
Azure Load Balancer
- 類型 — 第 4 層直通網路裝置。
- 通訊協定 — 支援 TCP 或 UDP 通訊協定。
- 效能 — 提供低延遲和高輸送量。 專為數百萬個同時連接而構建,具有微秒級延遲。
- 縮放 - 能處理長期連線,並針對所有 TCP 和 UDP 應用程式擴大為數百萬個流量。
- 輸入和輸出 – Azure Load Balancer 提供具有輸入和輸出功能的完整流量控制。 將外部用戶端無縫連線至您的應用程式,同時讓您的後端執行個體能夠安全地存取網際網路和其他服務。
- 直接伺服器傳回 — 對於傳回流量,後端執行個體會將回應封包直接傳送回用戶端的 IP 位址,以減少延遲並改善效能。
特性
- 使用單一端點 (前端 IP) 來處理 HTTP 和非 HTTP 工作負載。 相同的應用程式閘道部署可以支援第 7 層和第 4 層通訊協定:HTTP(S)、TCP 或 TLS。 您的所有用戶端都可以連線到相同的端點,並存取不同的後端應用程式。
- 使用自訂網域來處理任何後端服務。 使用應用程式閘道 V2 SKU 的前端作為公用和私人 IP 位址,您可以設定任何自訂網域名稱,以使用位址 (A) 記錄來指向其 IP 位址。 此外,透過憑證授權單位 (CA) 憑證的 TLS 終止和支援,您可以確保所選網域的連線安全性。
- 使用來自任何位置的後端伺服器 (Azure 或內部部署)。 應用程式閘道的後端可以是:
- Azure 資源,例如 IaaS 虛擬機器、虛擬機擴展集或 PaaS (App Service、事件中樞、SQL)
- 遠端資源,例如透過 FQDN 或 IP 位址存取的內部部署伺服器
- 僅限私人閘道支援。 透過私人應用程式閘道部署的 TLS 和 TCP Proxy 支援,您可以在隔離的環境中支援 HTTP 和非 HTTP 用戶端以提高安全性。
限制
- WAF v2 SKU 閘道允許建立 TLS 或 TCP 接聽程式和後端,以支援透過相同資源的 HTTP 和非 HTTP 流量。 不過,它不會檢查 TLS 和 TCP 接聽程式上的流量是否有惡意探索和安全弱點。
- 後端伺服器的預設清空逾時值為 30 秒。 目前不支援使用者定義的清空值。
- 應用程式閘道上的設定更新 (PUT) 會在預設清空逾時期間過後,結束作用中的連線。
- 不支援應用程式閘道輸入控制器 (AGIC),且只能透過 HTTP (S) 接聽程式與 L7 Proxy 搭配運作。