Answers:
根据该事件27中的StackOverflow的播客中,reddit的家伙似乎真的像HAProxy的。这是一个简短的教程,显示HAProxy与Amazon EC2一起使用。您可以在HAProxy网站上找到更多信息。
该问题没有提供有关负载,所需功能等的特定信息,因此,任何答案充其量都是猜测。
对于中小型网站,磅是一个不错的选择。它提供HTTPS支持并易于设置。
HAproxy可以扩展以饱和10G以太网管道,并提供连接限制,即,当您要处理Apache子级/ Ruby on Rails实例时,仅向每个后端服务器发送并发请求数。
nginx非常适合用作全方位负载平衡器和静态文件服务器。在进行负载平衡时,它可以执行HTTP压缩,URL重写和静态文件服务。
Apache在2.2系列中也是一个很好的负载平衡器。可以执行与nginx大致相同的操作,但是会比nginx给服务器带来更高的负载。如果您已经熟悉Apache并且非常成熟,那么非常值得研究。
Perlbal提供了对后端主机的简单连接限制,跨持久HTTP连接的多路请求,并且如果您已经在使用Perl,则可以轻松进行设置。
Varnish缓存是反向HTTP代理,具有基本的负载平衡支持。它不是一个很好的负载平衡器,但是在某些情况下,它对大多数请求对象的内存缓存可以消除很大一部分后端服务器命中率,并且性能出色。ESI包含可能很有趣。
我不确定100%,但是Perlbal和nginx不在我的脑海中提供了一些支持,可以在不重新启动负载均衡器的情况下更改配置。对于较大的站点,这很关键,这是好的商业负载平衡器设备做得很好的事情之一。
以上所有都是HTTP级别(第7层)负载均衡器。TCP / IP级别的负载平衡器有可能达到更高的吞吐量,但在其他方面受到限制。HAProxy作者已经很好地编写了负载平衡方法和问题的清晰易读的概述:http : //1wt.eu/articles/2006_lb/
LVS是一种广泛使用的TCP / IP级别的负载平衡器。大多数防火墙还可以通过在一定范围的后端IP地址上散列传入的请求,从而在IP级别上实现基本的负载平衡-至少OpenBSD的PF和Cisco ASA和Juniper Netscreens可以做到这一点。
我们在生产中使用LVS。它由我们的运营团队使用一组复杂且有害的脚本进行管理。一个相当聪明的定制系统会从我们的真实服务器上公布运行状况和性能数据,以使负载均衡器可以相应地设置权重。
LVS当然会给您带来单点故障-负载平衡器(有多种方法可以对其进行冗余设置)。
我以为设置起来太复杂了,所以我写了Fluffy Linux Cluster,它宽松地基于Windows NLB的工作原理(我想...我不确定那是如何工作的),并且也受到CLUSTERIP的启发。
我们没有在生产中使用它,但是Fluffy可以对合理数量(至少5台)的服务器进行负载平衡,没有单点故障,也没有中央管理节点等。