软件负载均衡器是否管理双向SSL连接?如果是这样,怎么样?

时间:2009-02-13 18:34:48

标签: linux ssl load-balancing

我对软件或硬件负载均衡器的工作方式没有最微弱的线索。我猜硬件负载均衡器基本上是一个交换机,基于某种算法决定切换到哪个节点用于传入请求。在软件负​​载平衡器方面,我想软件会选择一个节点并使用反向代理连接。在这种情况下,双向SSL不会工作,因为负载均衡器不能拥有客户端的私钥。

同样,我不知道软件负载均衡器如何工作,但由于我的应用程序需要负载均衡器,并且应用程序使用双向SSL连接,我想知道软件负载均衡器如何处理2 - SSL连接。

3 个答案:

答案 0 :(得分:2)

一般来说,软件负载均衡器会注意到有新的传入连接请求,评估可用计算机上的工作负载,并将新请求分配给最合适的计算机。当存在基于会话的服务时,该连接将持续会话期间;只有在服务器出现故障时才会进行重新平衡,并且可能会在新的平衡配置中建立新的连接。

因此,正如Jon暗示的那样,SSL会话将与服务器建立,并将继续使用该服务器,直到会话终止。

如果您想更加动态地路由连接,那么可能必须在软件前面终止(解密)SSL会话,该软件会动态地将请求发送到不同的服务器。

所有这些都是可能的 - 它们不一定高效或实施。

答案 1 :(得分:2)

不,SSL适用于负载均衡器。它们通常在TCP级别工作,因此客户端连接到LB IP地址,但它将连接NAT连接到真实服务器。连接在其生命周期内持续存在于同一个真实服务器上,但如果同一个客户端生成另一个,它可以(并且通常会)转到不同的服务器。

对于HTTPS,这可以正常工作,除非您有一个支持SSL会话缓存的Web服务器,否则如果客户端返回到其他服务器,SSL会话缓存将会丢失。在实践中,这不是一个大问题。当然,HTTP保持活动会话不受影响,因为它们是单个TCP连接,因此它们保留在同一个真实服务器上。

答案 2 :(得分:0)

软件负载均衡器将在多个服务器之间均匀分配会话。

因此,如果用户点击您的负载均衡器,它会将他发送到特定服务器,该服务器将协商SSL。用户将不断与该服务器通信,直到他的会话到期为止。那时,他将再次击中负载均衡器。