2008-10-13 19 views
3

我们使用专用加速器在http://hansard.millbanksystems.com上运行Rails站点。我们目前使用mod-proxy-balancer进行Apache设置,代理运行应用程序的四个mongrels。代理选择:mod_proxy_balancer,nginx +代理平衡器,haproxy?

一些请求相当慢,为了防止其他请求在其后排队,我们正在考虑代理的选项,如果有请求,它会将请求指向空闲杂种。

选项似乎包括:

  • http://labs.reevoo.com/

  • 编译nginx的与公平代理平衡器用于Solaris

  • 编译HAProxy的开放的Solaris(尽管如所描述的重新编译为Apache mod_proxy_balancer的这可能不适用于SMF)

这些合理的选择?我们错过了什么明显的?我们非常感谢您的建议。

回答

4

Apache是​​一个奇怪的野兽用于你的平衡。这当然有能力,但它就像使用坦克来购物。

Haproxy/Nginx更专门为这项工作量身打造。您应该获得更高的吞吐量并同时使用更少的资源。

2

如果您想避开Apache,可以使用其他Web服务器(如nginx或lighttpd)以及某种类型的负载平衡器(如Pound或基于硬件的解决方案)来部署Mongrel群集。

磅(http://www.apsis.ch/pound/)适合我!

0

我已经成功地使用了mod_proxy_balancer + mongrel_cluster(小流量网站)。

3

HAProxy提供了比mod_proxy_balancer,nginx以及其他几乎任何其他软件都更加丰富的负载均衡功能。

特别是针对您的情况,日志输出是高度可定制的,因此应该更容易确定何时,何地以及为什么会发生缓慢的请求。

此外,还有几种不同的负载分配算法可用,并具有很好的自动故障转移功能。

37信号在Rails和HAProxy上有帖子here(最初见过here)。

2

haproxy和SMF的唯一问题是,除非您编写包装脚本,否则不能使用它的软重启功能来实施“刷新”操作。我写了一些更详细的内容here

但是,IME haproxy在solaris上绝对是防弹的,我会推荐它。我们通过solaris 10上的一个haproxy实例每天运送几百GB到几TB的物品,到目前为止(触摸木材)在2年以上的运行中我们没有任何问题。

1

Pound是我过去成功使用的HTTP负载均衡器。它包括一个动态的缩放功能,可与您的具体问题有所帮助:

DynScale(0 | 1):启用或禁用 动态缩放码(默认: 0)。如果被启用的磅会周期性地 尝试修改后端优先级 ,以便平衡来自各个后端的响应 次。对于特定的 服务,此 值可以被覆盖。

磅很小,记录良好,并且易于配置。