2009-02-13 12 views
1

我對軟件或硬件負載平衡器的工作方式並沒有太多的線索。我猜硬件負載平衡器基本上是一個交換機,基於某種算法決定哪個節點切換到一個傳入請求。在軟件負​​載平衡器方面,我猜測軟件會選擇一個節點並使用反向代理連接。在這種情況下,由於負載均衡器無法擁有客戶端的私鑰,因此雙向SSL無法工作。軟件負載平衡器是否管理雙向SSL連接?如果是這樣,怎麼樣?

同樣,我不是一個軟件負載平衡器如何工作,但由於我的應用程序需要一個負載平衡器,而且當應用程序使用雙向SSL連接時,我想知道軟件負載平衡器如何處理2路SSL連接。

+0

請問您是否可以詳細說明您的雙向SSL意味着什麼?對於負載平衡器有幾種不同的配置,其中一種情況是它們終止SSL請求並在某種意義上轉發新請求,而另一種情況下它僅僅轉發我認爲的請求。 – 2009-02-13 19:09:25

+0

在雙向SSL中,客戶端和服務器交換其證書並共享128位密鑰。該密鑰用於加密客戶端和服務器之間的數據。在這種情況下反向代理將失敗,因爲LB不會有客戶私鑰。 – kittugadu 2009-02-14 04:04:15

回答

2

不,SSL可以與負載均衡器一起使用。它們通常在TCP層次上工作,因此客戶端連接到LB IP地址,但它將連接轉移到真實服務器上。連接在其整個生命週期內都保持在同一個真實服務器上,但是如果同一個客戶端創建另一個連接,它可以(通常會)轉到不同的服務器。

對於HTTPS,此工作正常,但是如果您有支持SSL會話緩存的Web服務器,則SSL會話緩存將在客戶端返回到其他服務器時丟失。實際上這不是一個大問題。當然,HTTP保持活動會話不會受到影響,因爲它們是單個TCP連接,因此它們保持在同一個真實服務器上。

0

軟件負載均衡器將會話均勻分配到多個服務器。

因此,如果用戶點擊您的負載均衡器,它會將他發送到特定服務器,並且該服務器將協商SSL。用戶將不斷與該服務器通話,直至其會話過期。此時,他將再次擊中負載平衡器。

2

一般來說,軟件負載平衡器會注意到有新的傳入連接請求,評估可用機器上的工作負載,並將新請求分配給最合適的機器。當存在基於會話的服務時,該連接將在會話期間持續;僅當服務器關閉時纔會發生重新平衡,並且可能會在新平衡配置中建立新連接。

因此,正如喬恩暗示的那樣,SSL會話將與服務器建立在一起,並且會繼續服務器直到會話終止。

如果您想要更加動態地路由連接,那麼SSL會話必須在動態發送請求到不同服務器的軟件前終止(解密)。

所有這些都是可能的 - 它們不一定高效或實施。

相關問題