我们正在http://hansard.millbanksystems.com上的专用加速器上运行Rails站点。我们目前使用mod-proxy-balancer进行Apache设置,代理运行该应用程序的四个mongrel。
有些请求速度很慢,为了防止其他请求在其后排队,我们正在考虑代理选项,如果有请求,会将请求定向到空闲杂项。
选项似乎包括:
重新编译Apache的mod_proxy_balancer,如http://labs.reevoo.com/所述
使用Solaris的公平代理平衡器
为Open Solaris编译haproxy(虽然这可能不适用于SMF)
这些合理的选择吗?我们错过了什么明显的错我们非常感谢您的建议。
答案 0 :(得分:4)
Apache用于平衡是一种奇怪的野兽。它当然有能力,但就像用坦克去购物一样。
Haproxy / Nginx更专门针对这项工作量身定制。您应该获得更高的吞吐量并同时使用更少的资源。
答案 1 :(得分:3)
HAProxy提供了比mod_proxy_balancer
,nginx以及几乎任何其他软件更丰富的负载均衡功能。
特别是对于您的情况,日志输出是高度可定制的,因此应该更容易识别缓慢请求发生的时间,地点和原因。
此外,还有一些不同的负载分配算法,具有良好的自动故障转移功能。
答案 2 :(得分:2)
如果您想避免使用Apache,可以使用备用Web服务器(如nginx或lighttpd)和各种负载均衡器(如Pound或基于硬件的解决方案)部署Mongrel群集。
磅(http://www.apsis.ch/pound/)对我来说效果很好!
答案 3 :(得分:2)
haproxy和SMF的唯一问题是,除非编写包装器脚本,否则不能使用它的软重启功能来实现“刷新”操作。我更详细地写了here
然而,IME haproxy在solaris上绝对是防弹的,我会高度推荐它。我们通过solaris 10上的单个haproxy实例每天从几百GB到几TB的运输,到目前为止(触摸木材)在2年多的运行中我们没有遇到任何问题。
答案 4 :(得分:1)
Pound是我过去成功使用的HTTP负载均衡器。它包含一个动态缩放功能,可以帮助您解决特定问题:
DynScale(0 | 1):启用或禁用 动态重新缩放代码(默认值: 0)。如果启用庞德将定期 尝试修改后端优先级 为了平衡响应 来自各个后端的时间。这个 可以为特定值覆盖值 服务。
庞德很小,文档齐全,易于配置。
答案 5 :(得分:0)
我已经成功使用了mod_proxy_balancer + mongrel_cluster(小型网站)。