我最近一直在考虑为我们的环境添加一些新的负载平衡器,因为我们预计在未来 12 个月内我们的客户群将增加一倍。
目前,我们在 Coyote Point Balancers 上有 400 个公共 IPS 为 800 个集群(由于端口原因,每个 IP 有 2 个集群)提供服务,并将连接分发到 3 个 Web 服务器,每天提供约 6GB 的传出流量和 2GB 的传入流量。如果我们将其翻倍,那么 IP 数量将达到约 800 个,集群数量可能达到 1600 个,每个集群大约有 6 台服务器(用 Barracuda 的术语来说,总共有 9600 台所谓的“真实服务器”)。
由于集群数量众多,我研究过的大多数解决方案(Coyote、Barracuda、Loadbalancer.org)似乎不确定它们是否能够处理我们计划的增长,主要是因为在服务器上执行了健康检查......当您考虑它时,这完全是有道理的。
因此,loadbalancer.org 的优秀人员建议我们最好将 SSL 电子商务解决方案所需的 400-800 个公共 IP 卸载到面向前方的路由器上。从那时起,路由器可以做一些调整,将 EXT_IP:443 路由到 INT_IP:INT_PORT,这将使我们能够将负载均衡器配置减少到 1 或 2 个集群,从而解决健康检查问题。
你们觉得这个想法有意义吗?或者你们还有其他建议吗?
其次,对于这样的任务,您会推荐哪种路由器?我会考虑使用内置某种故障转移机制的路由器。
再说一件完全不相关的事,我必须承认我对 loadbalancer.org 的回复非常满意。他们对我的询问的回复出乎意料地有帮助(也就是说,我并不觉得自己是在向一个试图推销某种东西的销售人员求助)。(不,我不为他们工作,而且悲哀地他们也没有给我发送免费的装备)。
答案1
我使用 vyatta 做了几乎同样的事情。
我也使用 pfSense 做了同样的事情 - 但出于支持原因,vyatta 可能更成熟一些。
与其他选择相比,成本非常低……私信我了解详情
答案2
我建议使用 Cisco ACE/ASA、Foundry(现为 Brocade)ServerIron 和 Zeus ZXTM(虽然价格昂贵,但该死快速而强大。
所有这些都可以满足您的需要,但没有一个是免费的。
答案3
我有一个类似的设置,其中我在 F5 BigIP 盒上定义了大部分 /22 IP 块,并将外部 IP 一对一映射到我每台后端机器上的内部端口号。
在我的例子中,所有端口都是同一个 Apache 实例的一部分——我只为基本端口定义了健康检查。如果它不启动,其他端口也不会启动,因此整个后端节点都会失效。
您可以使用您描述的前端路由器来执行此 NAT 工作,但您仍然需要为每个中间主机:端口组合定义集群——根据客户端中 SNI 支持的当前状态,执行 SSL 时需要将证书映射到端口。通常端口为 443,因此您可以按站点执行 IP,但使用路由器/LB 的中间层,您可以自由移动端口,只是仍然需要有几百个端口。
答案4
我们同时使用 Vyatta(作为 BGP 路由器)和 pfSense(防火墙/NAT/VPN),并从下周开始使用 loadbalancer.org 设备(负载平衡)。:-)
这里的问题难道不是您需要一个具有数千个 IP 和 SSL 证书故障转移功能的高可用性系统吗?Vyatta 和 pfSense(等等)只会进行端口转发,但您还需要应用 SSL“传输”——不是吗?如果 Coyote/Loadbalancer.org/etc 无法做到这一点,您可能需要花大价钱购买更昂贵的供应商之一(假设他们可以……)或(更好?)“自己构建”。
使用 keepalived 在少数几个盒子之间来回移动 IP,然后让例如 nginx 充当 SSL 代理,将请求转发回您的负载均衡器(在任何适当的端口上)。它甚至可以设置/强制执行某些标头,因此您的负载均衡器配置可能非常简单,您只需在后端检查这些标头即可。