目前,每个网站/网络服务只有一个后端服务器。我很想听听大家对各种负载平衡器应用程序(在 Linux 上运行的应用程序)的体验。
你会推荐什么?
答案1
根据第 27 集的StackOverflow 播客Reddit 的人似乎真的很喜欢HAProxy。下面是一个简单的教程,展示HAProxy 与 Amazon EC2 配合使用。您可以在HAProxy 网站。
答案2
问题没有提供有关负载、所需功能等的具体信息,因此任何答案充其量都只是猜测。
磅是小型/中型网站的不错选择。它提供 HTTPS 支持并且易于设置。
HA代理可以扩展到饱和 10G 以太网管道,并提供连接限制,即,当您有 Apache 子级/Ruby on Rails 实例需要处理时,只向每个后端服务器发送同时请求的数量。
nginx是一款出色的全能负载均衡器和静态文件服务器。它可以在进行负载均衡的同时执行 HTTP 压缩、URL 重写和静态文件服务。
阿帕奇2.2 系列中也是一款非常出色的负载平衡器。可以执行与 nginx 相同的操作,但对服务器的负载比 nginx 高。如果您已经熟悉 Apache,并且非常成熟,那么非常值得一看。
佩尔巴尔提供对后端主机的简单连接限制、跨持久 HTTP 连接的多路复用请求以及简单的设置(如果您已经在使用 Perl)。
Varnish缓存是一个反向 HTTP 代理,具有基本的负载平衡支持。它不是一个很好的负载平衡器,但在某些情况下,它对大多数请求对象的内存缓存可以消除很大一部分后端服务器命中,并且它具有出色的性能。ESI 包含可能很有趣。
我并不是 100% 确定,但据我所知,Perlbal 和 nginx 提供了一些无需重新启动负载平衡器即可更改配置的支持。对于较大的站点来说,这一点至关重要,而且这是优秀的商业负载平衡器设备所擅长的事情之一。
以上都是 HTTP 级别(第 7 层)负载均衡器。TCP/IP 级别负载均衡器有可能达到更高的吞吐量,但在其他方面受到限制。HAProxy 作者撰写了一篇关于负载均衡方法和问题的优秀、易读的概述: http://1wt.eu/articles/2006_lb/
低压开关柜是一种广泛使用的 TCP/IP 级负载平衡器。大多数防火墙还可以在 IP 级别进行基本的负载平衡,方法是将传入请求散列到一系列后端 IP 地址上 - 至少 OpenBSD 的 PF、Cisco ASA 和 Juniper Netscreens 可以做到这一点。
答案3
- LVS——Linux 虚拟服务器,http://www.linuxvirtualserver.org/, 这是唯一的那个!
- L2LB——第 2 层负载平衡,http://code.google.com/p/l2lb/,这是我已经實施了!:)
答案4
我们在生产中使用 LVS。我们的运营团队使用一组复杂且邪恶的脚本来管理它。一个相当聪明的定制系统会公布来自我们真实服务器的健康和性能数据,以允许负载平衡器相应地设置权重。
LVS 当然会给您一个单点故障 - 负载均衡器(有方法可以冗余设置它们)。
我觉得这个设置太复杂了,所以我写了Fluffy Linux 集群它大致基于 Windows NLB 的工作方式(我认为......但我不确定它是如何工作的)并且也受到 CLUSTERIP 的启发。
我们不会在生产中使用它,但 Fluffy 可以对合理数量的服务器(至少 5 个)进行负载平衡,而不会出现单点故障,也没有中央管理节点等。