我该使用Apache还是Nginx & Passenger或Mongrel来运行我的Rails应用程序?

5
我有一个Ruby on Rails应用程序,将成为CMS,这意味着它主要是DB密集型的。我预计它将有相当数量的流量,因此在设计之前,我正在选择要使用的服务器。对我来说最重要的是性能。
我听说Nginx很不错,Rails社区中的许多开发人员都推荐它,我唯一关心的是它的版本是0.8,我相信这是Beta版本,所以我担心可能会出现问题。你怎么看?
此外,我想决定是否使用Mongrel集群或Phusion Passenger。你觉得呢?
我计划使用Ruby 1.9,因为它比Ruby 1.8性能更好,并且我将使用VPS来托管我的网站。
我的主要关注点是性能,即使设置一个比另一个需要更长时间。
非常感谢你的意见。
谢谢,
Tam
3个回答

9

我建议使用Passenger和Nginx。它的内存占用非常低,而且设置也不太困难。您要部署到哪种服务器?规格?操作系统?这些都需要考虑,因为它们会影响可用硬件。如果您已经有足够的内存,那么无论是使用Passenger还是Apache都不应该成为问题,只需高效地优化和缓存您的应用程序即可。


感谢Omar和Nick的回答。我的服务器将是一台512 RAM和40GB磁盘空间的VPS。我在上面使用Debian Linux(您是否推荐其他操作系统?)。您知道Passenger是否与Ruby 1.9兼容吗?我在他们的网站上找不到任何迹象,想知道您是否尝试过。 - Tam
2
512RAM足够了,所以您可以使用标准的Passenger + Apache,但是如果您想节省更多的内存,请尝试Nginx。它将使内存占用更小。是的,Passenger可以与Ruby 1.9一起使用。祝您玩得愉快! - Nick L
1
关于nginx/passenger的一个令人烦恼的问题是,由于nginx不支持动态加载模块,因此您需要从源代码编译所有内容。 - jonnii
1
@jonnii passenger-install-nginx-module会为您完成 :) 但是当您需要其他功能时可能会有问题。没错。 - Dalibor Filus

2

有两点需要注意:

第一,您可以将任何Rails应用程序部署到您提到的任何服务器上,因此现在无需做出决定。

第二,我认为Mongrel集群已经不再值得麻烦了。选择让您满意的任何服务器上使用Passenger即可。


2
我建议使用乘客版nginx,配置很整洁,而且与passenger apache相比,内存占用率非常低。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接