SSL会话持久性 – HA心跳

我有两台服务器,我们称之为Milo和Otis。 现在,当Otis接pipe共享虚拟IP时,现在Milo和Otis被设置成一个主动 – 被动的高可用服务器对,Milo通常是Otis的主人,等待Milo出现故障。 我有一个关于失败期间SSL连接会发生什么的问题。

考虑以下:

  1. 有些客户(我)与Milobuild立SSL连接。
  2. SSL连接设置为保持活动状态,因此可以说通过SSL连接请求网页。 该页面完全下载,连接打开准备好另一个请求(让我们说一个像CSS文件资产)。
  3. 在对css文件的请求开始之前,Milo经历了一些灾难性的失败,现在Otis已经接pipe了。
  4. 现在发生了什么,我想要的CSS文件的请求? 我仍然认为我与Milo有一个开放的联系,但虚拟IP现在指向Otis。

Otis是否会selectMilo自动进行的SSL会话? 我的浏览器是否开始与奥的斯沟通,奥的斯说:“嘿,我们应该先握手。”? 任何和所有关于这个评论/答案将不胜感激。

发生故障转移时,当前活动的连接将中断。 这将发生在TCP级别,所以SSL / TLS甚至不会进入现场。 TCP连接要求两个端点知道连接并且具有正确的信息(序列号,窗口大小等),所以当IP故障切换到备份机器时,将不知道主机已经build立的TCP连接。 当备份机器接收到属于先前TCP连接的数据包时,它将回复一个RST数据包,这将导致客户端closures连接。

即使TCP连接被恢复,SSL / TLS也会出现类似的情况。 每个会话在每一端都需要状态,包括会话密钥(实际上是确保应用程序数据的安全)。 备份机器不会有这个会话状态,所以现有的会话将被终止。