2008 年 12 月 16 日,星期二

使用 Passenger 托管 Ruby on Rails

作者:David

Phusion Passenger,也称为 mod_rails,最近表现出色,这是理所当然的。它使 Rails 部署变得更加简单,并结合 REE,速度更快,内存开销更小。因此,我很高兴看到 Rails 世界中的许多托管公司都在采用它并将其提供给客户。

Rails Machine 最近宣布 Passenger 已成为其标准配置的一部分,并且它们已使其从基于 Mongrel 的设置切换到 Passenger 变得非常容易。Joyent 的最新 Accelerator 2.14 也预配置了 Passenger。在共享托管方面,Dreamhost 支持 Passenger 已经有一段时间了(这是在 Dreamhost 上使用 Passenger 进行部署的精彩教程)。

我个人一直在 Slicehost 上使用 Ubuntu 设置 Passenger,并取得了很好的效果。在 37signals,我们已经在 Passenger 上运行 Ta-da List(在 EC2 上)和 Backpack(在 Rackspace),并计划很快将其他应用程序迁移过来。我们的系统管理员肯定很高兴不再需要处理 Mongrels 了。

许多其他托管商也正在对 Passenger 进行高级测试。Brightbox 正在构建 Passenger 的 Ubuntu 包,并正在为 REE 准备一个。它们应该很快就会提供完整的 Passenger 支持。我与之交谈过的大多数其他 Rails 托管商至少也在考虑这个问题。

但 Passenger 是 Rails 托管的一大进步,但这并不意味着其他方法突然变得毫无用处。可能仍有不需要 Apache 的情况,在这种情况下,传统代理/Mongrel 设置仍然是最佳选择。例如,如果您由于某种原因无法使用 Apache,那么这仍然是最佳选择。Rails 将继续支持 FCGI、代理/Mongrel、任何 Rack Web 服务器,当然还有 Passenger。

改变的是,如果您尚未投资于替代解决方案,或者如果您对该解决方案感到痛苦,那么您绝对应该考虑将 Passenger 作为 Rails 的默认选择。

更新:Phusion 发布了一篇关于如何在 Phusion Passenger 中控制 Rails 和 Ruby 环境变量的指南。这对于调整 GC 设置等非常有用。