我对软件或硬件负载平衡器的工作原理一无所知。我猜硬件负载均衡器基本上是一个开关,并基于某种算法决定为传入请求切换到哪个节点。在软件负载平衡器方面,我猜该软件会选择一个节点并使用反向代理连接到它。在这种情况下,2-way SSL 将无法工作,因为负载均衡器不能拥有客户端的私钥。
同样,我不知道软件负载均衡器是如何工作的,但由于我的应用程序需要负载均衡器并且应用程序使用 2 路 SSL 连接,我想知道软件负载均衡器如何处理 2 路 SSL联系。
我对软件或硬件负载平衡器的工作原理一无所知。我猜硬件负载均衡器基本上是一个开关,并基于某种算法决定为传入请求切换到哪个节点。在软件负载平衡器方面,我猜该软件会选择一个节点并使用反向代理连接到它。在这种情况下,2-way SSL 将无法工作,因为负载均衡器不能拥有客户端的私钥。
同样,我不知道软件负载均衡器是如何工作的,但由于我的应用程序需要负载均衡器并且应用程序使用 2 路 SSL 连接,我想知道软件负载均衡器如何处理 2 路 SSL联系。
一般来说,软件负载均衡器会注意到有新的传入连接请求,评估可用机器上的工作负载,并将新请求分配给最合适的机器。当存在基于会话的服务时,该连接将在会话期间持续;仅当服务器出现故障时才会发生重新平衡,并且可能会在新平衡的配置中建立新连接。
因此,正如 Jon 所暗示的那样,SSL 会话将与服务器建立,并将与该服务器继续,直到会话终止。
如果您想更动态地路由连接,那么可能必须在将请求动态发送到不同服务器的软件之前终止(解密)SSL会话。
所有这些都是可能的——它们不一定是有效的或实施的。
不,SSL 与负载平衡器一起使用。它们通常在 TCP 级别工作,因此客户端连接到 LB IP 地址,但它会将连接 NAT 到真实服务器。连接在其生命周期内一直持续到同一个真实服务器,但如果同一个客户端创建另一个,它可以(并且通常会)转到不同的服务器。
对于 HTTPS,这可以正常工作,除了如果您有一个支持 SSL 会话缓存的 Web 服务器,那么如果客户端返回到不同的服务器,SSL 会话缓存将丢失。在实践中,这不是一个大问题。当然,HTTP 保持活动会话不受影响,因为它们是单个 TCP 连接,因此它们保持在同一个真实服务器上。
软件负载平衡器将在多台服务器上平均分配会话。
因此,如果用户点击您的负载均衡器,它会将他发送到特定服务器,并且该服务器将协商 SSL。用户将不断地与该服务器对话,直到他的会话到期。届时,他将再次访问负载均衡器。