2010-10-06 178 views
15

SSL對負載平衡的工作方式有什麼影響?我知道如果您選擇不將會話信息存儲在數據庫或過程中,則需要使用粘性會話,但這對SSL有何影響?SSL和負載平衡

+0

發現了這個有趣的鏈接http://wiki.metawerx.net/wiki/StickySessions – 2010-10-06 11:33:29

+1

這個問題似乎是題外話,因爲它不是關於節目。也許[服務器故障](http://serverfault.com/)或[Webmaster Stack Exchange](http://webmasters.stackexchange.com/)會是一個更好的地方。 – jww 2014-06-24 12:35:53

回答

32

爲了澄清,SSL/TLS會話與HTTP會話無關。 (有些實現可能使用SSL/TLS會話ID作爲維護HTTP會話的基礎,但這是一個糟糕的設計,因爲SSL/TLS可能會完全獨立地改變HTTP會話的會話)。

在負載均衡方面,你會得到兩個選擇:

  • 使用負載平衡器這是你的SSL/TLS終點。在這種情況下,負載均衡將在HTTP級別完成:客戶端連接到負載均衡器,負載均衡器解開SSL/TLS連接以將HTTP內容(然後清晰地)傳遞給其工作人員。

  • 在TCP/IP級別使用負載平衡器,它將整個TCP連接直接重定向到工作節點。在這種情況下,每個工作節點必須擁有證書和私鑰(如果一致地管理,這不一定是個問題)。使用這種技術,負載平衡器根本不執行任何HTTP處理(因爲它不在SSL/TLS連接中查看):一方面,這減少了負載平衡器本身完成的處理那麼它將阻止您根據URL結構調度到特定的工作節點。兩種方法都有其優點和缺點。

+3

很好的答案!您可能想提到的第二種方法的缺點是,由於平衡器無法在所有SSL內部看到HTTP請求,因此無法添加標題來指出真實的客戶端IP;因此對於Web服務器來說,它看起來好像所有請求都來自單個Web客戶端:負載均衡器本身的IP地址。 – 2011-05-27 20:47:02

+0

@Brandon Craig Rhodes,您可能能夠讓負載均衡器發送數據包,就好像它來自初始客戶端一樣,就像反向NAT可以做的那樣。 – Bruno 2011-05-27 21:16:31

+0

- 是的,但只有在我修改所有服務器以將負載平衡器用作其TCP網關的情況下,才能使所有返回到任意客戶端IP的數據包通過平衡器回傳。據我所知,只有當我在同一個局域網上運行這些機器時,纔有可能通過以太網訪問彼此的網絡接口。 (因此不可能從雲服務器提供商的任意主機?) – 2011-05-27 21:40:11