2006 年 7 月 3 日星期一

使用 Pound 使 lighty 和 Mongrel 配合良好

由 David 发布

随着 Mongrel 的迅速崛起,我们已经看到越来越多的人由于 mod_proxy_balancer 而从 lighttpd 转到了 Apache 2.2。看到 Mongrel 重新让 Apache 在 Rails 网络服务器上占据优势真是太好了,但除非你出于其他原因需要使用 Apache,否则你当然不必跳槽。

lighttpd 的问题在于它对 mod_proxy 的实现状态,当用作多个 Mongrel 后端的负载均衡器时,这会带来很多不便。但是,由于整个 Rails 部署堆栈将直接HTTP ,因此其修复起来出人意料地容易。你需要做的就是向组合中添加一个更强大的负载均衡器即可,这很容易。

最近很受欢迎的此类均衡器之一是 PoundOS X 安装说明)。它小巧、快速,且在大型网站上得到证明。因此,如果你想继续使用 lighttpd 并且仍然使用 Mongrel,你可以这样做:

  • 在端口 80 上使用 mod_proxy 设置 lighttpd 以指向一个后端服务器(请参阅 Mongrel lighty 文档,但仅使用一个后端,而不是四个)。
  • 在较高的端口(例如 7999)上设置 Pound,并使其指向任意数量的 Mongrel 进程(请参阅 Mongrel Pound 文档)。
  • 使用 mongrel_cluster 或即将提交的与 Mongrel 兼容的 script/process/spawner 启动端口 8000 到 8002 之间的 n 个 Mongrel

是的,现在你应该拥有一个已准备好投入生产的堆栈,可以应对全球挑战。对于我们 37signals 团队来说,这很好地概述了我们准备很快在生产中使用 Mongrel 的方式。

你还可以高兴地看到,Jan Knesche 正在努力工作,让 Pound 的拐杖变得不再必要。在今年夏季,他保证将 mod_proxy 提升到与竞争对手同等的地步,并且这个三向堆栈应该会再次变成双向堆栈。