我应该为我的 Rails 应用程序使用 Apache 还是 Nginx &Passenger 或 Mongrel

Posted

技术标签:

【中文标题】我应该为我的 Rails 应用程序使用 Apache 还是 Nginx &Passenger 或 Mongrel【英文标题】:Should I user Apache or Nginx & Passenger or Mongrel for my Rails application 【发布时间】:2010-11-28 01:22:21 【问题描述】:

我有一个 Ruby on Rails 应用程序,它将成为一个 CMS,这意味着它主要是数据库密集型的。我希望它有相当数量的流量,所以在设计之前我会选择要使用的服务器。对我来说最重要的是性能。

我听说过关于 nginx 的好消息,Rails 社区中的许多开发人员都推荐它,我唯一担心的是它的版本是 0.8,我相信它是 Beta,所以我担心潜在的问题。你有什么意见?

另外,我想在使用 Mongrel 集群或 Phusion Passenger 之间做出决定。你怎么看?

我计划使用 Ruby 1.9,因为它比 Ruby 1.8 具有更好的性能,我将使用 VPS 来托管我的网站。

我的主要目标是性能,即使设置一个比另一个需要更长的时间。

非常感谢您的意见。

谢谢,

【问题讨论】:

【参考方案1】:

Passenger + Nginx 排名第二。非常低的内存,设置起来并不难。你也在部署什么类型的服务器?眼镜?操作系统?考虑到您可用的硬件,我也会考虑到这一点。如果您已经拥有足够的内存,那么无论是Passenger 还是Apache,都应该不是问题,只需有效地优化和缓存您的应用即可。

【讨论】:

感谢 Omar 和 Nick 的回答。我的服务器将是一个具有 512 RAM 和 40GB 磁盘空间的 VPS。我在上面使用 Debian Linux(你推荐另一个吗?)。您知道Passenger 是否适用于Ruby 1.9?我在他们的网站上找不到任何迹象,想知道您是否尝试过。 512RAM 足够了,所以你最好使用标准的 Passenger + Apache,但是,如果你想节省更多的内存,请尝试 Nginx。它会使内存占用更小。是的,Passenger 确实可以使用 Ruby 1.9。 -=) 玩得开心! 关于 nginx/passenger 的一个恼人的事情是你需要从源代码编译所有内容,因为 nginx 不支持动态加载的模块。 @jonniipassenger-install-nginx-module 会为你做这件事:) .. 但是当你需要其他功能时它可能是个问题。对。【参考方案2】:

我推荐乘客 nginx,配置很好而且整洁,而且内存占用比乘客 apache 低。

【讨论】:

【参考方案3】:

两个厘米: 您可以将任何 Rails 应用程序部署到您提到的任何服务器上,因此现在无需一劳永逸地做出决定。

IMO 杂种集群不再值得麻烦。在任何让您开心的服务器上寻找乘客。

【讨论】:

以上是关于我应该为我的 Rails 应用程序使用 Apache 还是 Nginx &Passenger 或 Mongrel的主要内容,如果未能解决你的问题,请参考以下文章

为我的 Rails 应用程序创建自定义配置选项的最佳方式?

为我的Rails应用程序创建自定义配置选项的最佳方法?

如何在 Rails 应用程序中为我的用户添加角色?

在 UIwebView 应用中使用 Facebook 登录

在 Rails 中存储布局逻辑的最佳位置在哪里?

如何在 Ruby on Rails 中为我的开发和生产环境设置不同的 api 密钥?