RoR的部署方案选择

手头有个RoR的小项目要进入部署阶段了,一直很头疼RoR的部署方案。

Iteye的robbin在2008年写了篇文章http://www.iteye.com/topic/155542,深度剖析了RoR部署方案,给出了如下的选择对比:

Lighttpd+FastCGI > Lighttpd+Mongrel > Nginx+Mongrel > Apache+Mongrel > Ngignx+FastCGI > Apache+FastCGI

文中强推Lighttpd+FastCGI,说实话个人当时准备的是Nginx+Mongrel,看了robbin的文章后有点害怕。要使用L+F吗?该文章写于3年前,这些部署方案的对比是否发生变化?您是否部署过RoR,是如何选择的?

阅读 8.3k
6 个回答

貌似这个问题回答晚了。。。
RoR的发展非常迅速,目前部署方案也趋于成熟,主要两大派别:

  • Apache+passenger
  • Nginx+Unicorn

不过以目前的情况看,好想 Nginx+Unicorn是未来趋势。

我知道的目前采用Nginx+Unicorn方案的站点包括 GitHub ,Ruby-China ,GeaKit

Segmentfault应该也是(如果没有猜错的话)

新手上路,请多包涵

目前Mongrel已经很久不更新了,并且对RAILS 3好像也不怎么支持。如果是快速部署,还是首选:passenger

lighhtpd+fastcgi 比 nginx+fastcgi好在哪里?后者多一次内存copy?

小项目的话,若对访问速度要求不是特别高的话,可以试试Rails的云服务Heroku.com
Heroku是目前最好的Rails云服务平台,免费帐户可创建无限量的App,每个App有100M的空间,5M的数据库,若超过了这个值,则需按量付费。
Heroku可以让你忘了那烦人的部署工作,真正把精力留在业务。

这其实有几个问题:

Ruby引擎的选择:
服务端程序不建议使用RVM,如果是独立程序的话,使用REE比较好(不过REE只能支持Ruby1.8.7)

应用处理FastCGI程序的选择:
推荐 passenger 类似于 PHP-FPM 的作用

Web服务器:
推荐 nginx 对于小站比Apache省空间

unicorn 貌似是github在用的,也非常值得尝试(替代passenger)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进