Ssl

為什麼第 7 層負載均衡器無法通過 SSL 終止?

  • January 28, 2022

我需要在伺服器場或多個程序之間共享 ssl 終止任務。在這個架構中,在這個 ssl 終止任務之前應該有一個負載均衡器。在尋找合適的軟體負載均衡器一段時間後,發現只有第 4 層 (TCP) 負載均衡器 (haproxy) 適合這項工作,而不是第 7 層 (HTTP/HTTPS) 負載均衡器。

我的問題是,為什麼像 nginx、perlbal 這樣的第 7 層負載均衡器不能只通過 ssl 終止?客戶端 IP 地址應在第 7 層負載均衡器中可用。他們只能轉發請求,對嗎?

架構是這樣的:

HTTPS balancer (L4/TCP balancer)
 / | \        <--- HTTPS traffic
SSL server farm/processes
 \ | /        <--- HTTP traffic
HTTP balancer (L7/HTTP balancer)
 / | \
HTTP server farm/processes

參考:http: //1wt.eu/articles/2006_lb/index_09.html

TCP 層只是通過添加標頭/控制來自底層的網路數據包來路由流量。它不知道它傳輸的是什麼,因此不需要處理它的內容,以及它是否是 HTTP(S)。HTTP/HTTPS 沒關係

在處理應用程序層時,您在內容的深處,因為您處理的是應用程序。如果是 HTTPS,您將需要 SSL 終止。HTTP/HTTPS 確實很重要

因此,如果您想在應用程序級別進行負載平衡,則需要在相同的負載平衡器上執行 SSL 終止。nginx 允許你這樣做。

如果您希望分離這些任務,您將需要一個網路/路由級別的負載均衡器。

引用自:https://serverfault.com/questions/642642