14

我从一些书中读到,Phusion Passenger 是轻松部署 Ruby on Rails 的答案。但是我朋友说先是Apache+一堆Mongrel,然后是lighttpd,然后是nginx,现在是Passenger,好像没完没了……

他还说他使用了使用Passenger的dreamhost,有时他看到他的请求没有得到处理。

所以我想知道Passenger是否是RoR部署的最终答案?您是否使用它并使用“ab”命令来测试站点是否运行良好?

4

7 回答 7

20

简短的回答:是的。

LONG答案:YEEEEEEEEEEEEEESSSSSSSSSSSSSSSS。

说真的,Phusion Passenger 和 Ruby Enterprise Edition 几乎消除了将 Rails 应用程序投入生产的所有痛苦。以前的方法,包括运行一套 Mongrel,需要围绕启动、停止和回收由乘客透明处理的侦听器进程或通过简单的 Apache(或 nginx)配置选项进行大量设置。并且 REE 的互补垃圾收集器意味着分叉一个新的侦听器使用更少的内存,并且启动速度更快(在乘客的“智能”产卵模式下)。

编辑:@srboisvert 提出了一个很好的观点;乘客不是 RoR 部署的最终答案,但目前它是我最喜欢的。有一天,在解决了很多工程难题之后,主流的 Ruby 可能会从使用多进程模型托管 RoR 转向单进程模型,这将比使用Passenger 更容易管理。

于 2009-05-11T17:48:17.937 回答
4

这是迄今为止最好的解决方案。我开始使用 FCGI 进行部署,这很痛苦。然后是杂种,情况好多了。然后是 mod_rails,它好多了。

还有很多大型酷应用程序正在迁移到 mod_rails,包括一些 37signals,所以你知道这很好。

我将以 DHH 的一句话作为结尾:

Phusion Passenger 的一体式解决方案

一旦您完成了极其简单的安装,您将获得一个 Apache,它同时充当 Web 服务器、负载平衡器、应用程序服务器和进程观察器。您只需放入您的应用程序并在您想要弹回它时触摸 tmp/restart.txt,然后 bam,您就可以启动并运行了。

但不知何故,Passenger 的信息接收速度有点慢。已经有大量的大型网站正在运行它。包括 Shopify、MTV、Geni、Yammer,我们将很快完成第一个 Ta-da 列表,然后希望之后能很快完成 37signals 套件的其余部分。

因此,尽管仍然有理由运行您自己的手动配置的自定义多层设置,就像有些人因为他们的细节而回避 mod_php,但我认为我们最终确定了一个默认答案。不需要您真正考虑 Rails 应用程序的第一次部署。开箱即用的东西。即使那个盒子是共享主机!

总之,Rails 不再难以部署。Phusion Passenger 让它变得非常简单。

通过

于 2009-05-11T21:17:19.703 回答
3

是的,它是最简单、最快和最有效的解决方案。在最近的版本中解决了诸如 soap4r 等 gem 的许多问题之后,Passenger 现在是部署问题的答案。

我们在一个平衡的环境中运行 Apache/mod_rails,HAProxy 在 2 个服务器前。它比我们之前使用 Mongrel/Aapache 的设置更可靠。

很容易控制

  • 在 Apache 中运行的乘客进程的数量
  • 每个应用程序运行的乘客进程数量
  • 所有这一切都无需调整大量配置文件,如 mod_proxy、Apache。
  • 设置一个虚拟主机并向您的 Apache 配置添加 3 行基本上足以让它运行

马特

于 2009-05-11T18:20:41.363 回答
3

最终答案?没有什么是最终的答案。

我会说乘客是当前的答案。

于 2009-05-11T19:53:53.380 回答
2

是的。自从几周前发布 2.2.0 以来,我一直在 Apache 前面运行 Nginx/Passenger 来解决仍然需要 PHP 的任何问题。尤其是 Ruby 企业版,它接近了我所说的“完美”。

于 2009-05-11T22:55:31.557 回答
1

我猜现在人们会坚持使用 mod_rails 很多年。模块真的很好。配置非常简单。很难用更好的解决方案代替它。类似于 mod_php。唯一缺少的关键组件:Windows 端口。

于 2009-05-11T22:06:58.513 回答
1

在某些情况下(企业等),JVM也是一个不错的选择。

于 2009-05-13T20:32:23.707 回答