我从一些书中读到,Phusion Passenger 是轻松部署 Ruby on Rails 的答案。但是我朋友说先是Apache+一堆Mongrel,然后是lighttpd,然后是nginx,现在是Passenger,好像没完没了……
他还说他使用了使用Passenger的dreamhost,有时他看到他的请求没有得到处理。
所以我想知道Passenger是否是RoR部署的最终答案?您是否使用它并使用“ab”命令来测试站点是否运行良好?
我从一些书中读到,Phusion Passenger 是轻松部署 Ruby on Rails 的答案。但是我朋友说先是Apache+一堆Mongrel,然后是lighttpd,然后是nginx,现在是Passenger,好像没完没了……
他还说他使用了使用Passenger的dreamhost,有时他看到他的请求没有得到处理。
所以我想知道Passenger是否是RoR部署的最终答案?您是否使用它并使用“ab”命令来测试站点是否运行良好?
简短的回答:是的。
LONG答案:YEEEEEEEEEEEEEESSSSSSSSSSSSSSSS。
说真的,Phusion Passenger 和 Ruby Enterprise Edition 几乎消除了将 Rails 应用程序投入生产的所有痛苦。以前的方法,包括运行一套 Mongrel,需要围绕启动、停止和回收由乘客透明处理的侦听器进程或通过简单的 Apache(或 nginx)配置选项进行大量设置。并且 REE 的互补垃圾收集器意味着分叉一个新的侦听器使用更少的内存,并且启动速度更快(在乘客的“智能”产卵模式下)。
编辑:@srboisvert 提出了一个很好的观点;乘客不是 RoR 部署的最终答案,但目前它是我最喜欢的。有一天,在解决了很多工程难题之后,主流的 Ruby 可能会从使用多进程模型托管 RoR 转向单进程模型,这将比使用Passenger 更容易管理。
这是迄今为止最好的解决方案。我开始使用 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 让它变得非常简单。
(通过)
是的,它是最简单、最快和最有效的解决方案。在最近的版本中解决了诸如 soap4r 等 gem 的许多问题之后,Passenger 现在是部署问题的答案。
我们在一个平衡的环境中运行 Apache/mod_rails,HAProxy 在 2 个服务器前。它比我们之前使用 Mongrel/Aapache 的设置更可靠。
很容易控制
马特
最终答案?没有什么是最终的答案。
我会说乘客是当前的答案。
是的。自从几周前发布 2.2.0 以来,我一直在 Apache 前面运行 Nginx/Passenger 来解决仍然需要 PHP 的任何问题。尤其是 Ruby 企业版,它接近了我所说的“完美”。
我猜现在人们会坚持使用 mod_rails 很多年。模块真的很好。配置非常简单。很难用更好的解决方案代替它。类似于 mod_php。唯一缺少的关键组件:Windows 端口。
在某些情况下(企业等),JVM也是一个不错的选择。