Mar*_*ouf 19 web-services web-applications load-balancing
现在我们每个站点/网络服务只有一个后端服务器。我很想听听人们对各种负载均衡器应用程序(在 Linux 上运行的应用程序)的体验。
你会推荐什么?
Jes*_*r M 21
该问题不提供有关负载、所需功能等的具体信息,因此任何答案充其量只是猜测。
Pound是小型/中型网站的不错选择。它提供 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 和瞻博网络屏幕可以做到这一点。
小智 13
根据该事件27中的StackOverflow的播客中,reddit的家伙似乎真的像HAProxy的。这是一个简短的教程,展示了HAProxy 与 Amazon 的 EC2 一起使用。您可以在HAProxy 网站上找到更多信息。