假设我有一个TCP级别的负载均衡器,它在两个后端HTTPS服务器之一和客户端之间传递TCP数据包。 为了确保encryption没有问题,负载均衡器必须维护一个表格,以确保X客户端IP始终loginHTTPS服务器A,Y客户端IPlogin到HTTPS服务器B等。
假设客户端是移动的,当从3G切换到1X互联网连接协议时会发生什么? 在这种情况下(几乎肯定)会导致IP地址的更改。 用户体验到什么?
如果你有一个对HTTP有很好理解的负载平衡器(大多数),你通常可以根据cookie来给一个给定的真实服务器configuration“stickiness”。 负载均衡器会在服务器的响应中注入一个cookie,每个可能的真实服务器都有一个唯一的值。 在对同一个域的后续请求中,一个运行良好的浏览器将发回相同的cookie,负载均衡器将读取并使用它将其redirect回到同一个服务器。
它将取决于具体的负载平衡器的实现,以确定是否将Cookie值赋予不同的源IP地址,还是将其重新放回到循环(或加权)池中,但是我一直使用的大多数如果存在“粘性”configuration,请使用cookie。
您的更大的问题将取决于您如何申请您的SSL证书。 您必须让负载均衡器执行SSLencryption/解密才能正常工作。 如果将SSL证书应用于服务器 ,则负载平衡器将无法检查encryption隧道中的底层HTTP数据,因此只能执行TCP负载平衡(即wweighted或round-robin)。 如果需要此设置(例如,作为某些端到端encryption合同条款的一部分),则必须设置规则,以便一台服务器比另一台服务器更受青睐,除非它不可用(例如,将其设置为故障切换备份,而不是一个负载均衡的服务) – 在这种情况下,您只需简单地重新连接客户端。 您可以通过将应用程序/会话状态存储在弹性/冗余(数据库)存储中,并在每个请求中发布会话标识符(通过cookie,隐藏表单字段或查询string参数)来减轻应用程序的负担 – 非常小心重新:会话安全,如果你这样做。
其他规定将适用于您在同一IP上应用多个支持SSL的网站。 大多数(如果不是全部的话)负载均衡器/服务器设备将(可以)不将多个SSL证书绑定到相同的IP /端口组合。 充其量, *.yourdomain.example.org的通配符证书可以应用于一个IP /端口(例如,覆盖www.yourdomain.example.org,other.yourdomain.example.org)或具有多个SAN的证书(主题备用名称),但是(尽pipe大多数证书供应商不会针对多个根域颁发基于SAN的SAN证书)。