Ssl
為什麼第 7 層負載均衡器無法通過 SSL 終止?
我需要在伺服器場或多個程序之間共享 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
TCP 層只是通過添加標頭/控制來自底層的網路數據包來路由流量。它不知道它傳輸的是什麼,因此不需要處理它的內容,以及它是否是 HTTP(S)。HTTP/HTTPS 沒關係。
在處理應用程序層時,您在內容的深處,因為您處理的是應用程序。如果是 HTTPS,您將需要 SSL 終止。HTTP/HTTPS 確實很重要。
因此,如果您想在應用程序級別進行負載平衡,則需要在相同的負載平衡器上執行 SSL 終止。nginx 允許你這樣做。
如果您希望分離這些任務,您將需要一個網路/路由級別的負載均衡器。