Mark Renouf Asked: 2009-05-01 03:35:10 +0800 CST2009-05-01 03:35:10 +0800 CST 2009-05-01 03:35:10 +0800 CST 软件http负载均衡器? 772 现在我们每个站点/Web 服务只有一个后端服务器。我很想听听人们对各种负载均衡器应用程序(在 Linux 上运行的东西)的体验。 你会推荐什么? load-balancing web-services web-applications 8 个回答 Voted user2874 2009-05-18T15:12:40+08:002009-05-18T15:12:40+08:00 该问题没有提供有关负载、所需功能等的具体信息,因此任何答案充其量只是猜测。 磅是中小型网站的不错选择。它提供 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 可以做到这一点。 Best Answer John Siracusa 2009-05-01T04:12:20+08:002009-05-01T04:12:20+08:00 根据StackOverflow 播客的第 27 集,Reddit 的家伙似乎真的很喜欢HAProxy。这是一个简短的教程,展示了与 Amazon 的 EC2 一起使用的 HAProxy。您可以在HAProxy 网站上找到更多信息。 Daniel Silveira 2009-05-01T04:02:03+08:002009-05-01T04:02:03+08:00 LVS - Linux 虚拟服务器,http://www.linuxvirtualserver.org/,这是唯一的! L2LB - 第 2 层负载平衡,http://code.google.com/p/l2lb/,这是我实现的!:) Jauder Ho 2009-05-01T04:04:35+08:002009-05-01T04:04:35+08:00 haproxy 和 LVS 一样好用。 FWIW,wordpress.com 使用 nginx 作为他们的平衡器/代理。 MarkR 2009-05-18T13:18:11+08:002009-05-18T13:18:11+08:00 我们在生产中使用 LVS。它由我们的运营团队使用一组复杂而邪恶的脚本进行管理。一个相当聪明的定制系统宣布来自我们的真实服务器的健康和性能数据,以允许负载均衡器相应地设置权重。 LVS 当然会给你一个单点故障 - 负载均衡器(有一些方法可以冗余设置它们)。 我认为这设置起来太复杂了,所以我编写了Fluffy Linux Cluster,它大致基于 Windows NLB 的工作原理(我认为......我不确定它是如何工作的),并且也受到 CLUSTERIP 的启发。 我们不在生产中使用它,但 Fluffy 可以负载平衡合理(至少 5 个)数量的服务器,没有单点故障,也没有中央管理节点等。 mryan1 2009-05-18T19:19:22+08:002009-05-18T19:19:22+08:00 我过去用过英镑。它快速、简单并且需要最少的关注。 Chopper3 2009-05-18T13:58:12+08:002009-05-18T13:58:12+08:00 我是 Zeus 的 ZXTM 多层 LB 的忠实粉丝 - 单击此处 Aaron Bush 2009-07-09T17:45:06+08:002009-07-09T17:45:06+08:00 如果您决定使用 LVS,那么如果您要使负载平衡服务器层高度可用,我也会考虑 Keepalived。几个月来,我一直在使用带有 LVS 的 Heartbeat/Pacemaker,发现它对于简单的 HA LB 层来说过于复杂,有时甚至不稳定。
该问题没有提供有关负载、所需功能等的具体信息,因此任何答案充其量只是猜测。
磅是中小型网站的不错选择。它提供 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 可以做到这一点。
根据StackOverflow 播客的第 27 集,Reddit 的家伙似乎真的很喜欢HAProxy。这是一个简短的教程,展示了与 Amazon 的 EC2 一起使用的 HAProxy。您可以在HAProxy 网站上找到更多信息。
haproxy 和 LVS 一样好用。
FWIW,wordpress.com 使用 nginx 作为他们的平衡器/代理。
我们在生产中使用 LVS。它由我们的运营团队使用一组复杂而邪恶的脚本进行管理。一个相当聪明的定制系统宣布来自我们的真实服务器的健康和性能数据,以允许负载均衡器相应地设置权重。
LVS 当然会给你一个单点故障 - 负载均衡器(有一些方法可以冗余设置它们)。
我认为这设置起来太复杂了,所以我编写了Fluffy Linux Cluster,它大致基于 Windows NLB 的工作原理(我认为......我不确定它是如何工作的),并且也受到 CLUSTERIP 的启发。
我们不在生产中使用它,但 Fluffy 可以负载平衡合理(至少 5 个)数量的服务器,没有单点故障,也没有中央管理节点等。
我过去用过英镑。它快速、简单并且需要最少的关注。
我是 Zeus 的 ZXTM 多层 LB 的忠实粉丝 - 单击此处
如果您决定使用 LVS,那么如果您要使负载平衡服务器层高度可用,我也会考虑 Keepalived。几个月来,我一直在使用带有 LVS 的 Heartbeat/Pacemaker,发现它对于简单的 HA LB 层来说过于复杂,有时甚至不稳定。