论坛首页 编程语言技术论坛

[讨论]部署Rails的最佳方案是什么?

浏览 19479 次
精华帖 (5) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-08  
我想dogstar的问题是haproxy+mongrel处理静态资源的能力如何?
0 请登录后投票
   发表时间:2007-07-09  
Nginx + Mongrel是Rails社区未来的方向,Railsconf2007上一个Session,"Xen and the Art of Rails Deployment",PDF在这里下。

这也是我期待已久的完美组合。看看大家现在Pound + Apache/Lighttpd + mod_fastcgi/mod_fcgid + Mongrel,不堪回首。
0 请登录后投票
   发表时间:2007-07-09  
freemind 写道
dogstar 写道
freemind 写道
dogstar 写道
haproxy+mongrel

静态资源怎么处理?直接交给mongrel?
把haproxy整合进lighttpd多好,呵呵




没有这个必要性。lighttpd自己对于fastcgi的负载均衡分发能力就足够强了。如果真的到了lighttpd都撑不住的时候,像haproxy这种应用级别的balancer也一样撑不住的。到了那个时候起码得是kernel级别的LVS来做负载分发了,或者直接购买硬件负载均衡器。


前面你不是说过lighttpd的proxy现在很差么,haproxy很强。现在怎么有差不多了?


http proxy <> fastcgi dispatcher

我只说过lighttpd的http proxy功能不完善,没有说过它差,更没有说过它很差。

真是对牛弹琴!


说话何必如此犀利?我只是在请教你,也许是我语言没有组织好吧,呵呵。
0 请登录后投票
   发表时间:2007-07-09  
freemind和robbin写的一篇博客一模一样,见RoR的部署方案选择freemind是robbin的马甲么?
0 请登录后投票
   发表时间:2007-07-09  
gigix 写道
引用
ThoughtWorks的RubyWorks选择的是HAProxy和Mongel,这里没有静态 web server,文档里说可以用apache和一个叫nginx的东东。我想大公司选择这些东东作为RubyWorks的默认安装,肯定是有原因的吧。那它们的lighttpd+fastcgi比较起来如何呢?gigix也许可以解释一下。

FastCGI最大的问题是不成熟,稳定性不够,即便像DreamHost这样老资格的shared host也经常出现FastCGI进程挂死的情况。至于Apache,我们还没有看到把它放进统一配置的需求,也许以后会加进去。
我列举了几个一站式的Rails环境安装方案:http://gigix.thoughtworkers.org/articles/2007/07/05/existing-rails-deployment-stacks


这里有另外一个 fastcgi 的实现 http://fastcgi.coremail.cn/,看它的介绍应该是解决了 mod_fastcgi 的大部分问题。
0 请登录后投票
   发表时间:2007-07-12  
引用
Nginx + Mongrel是Rails社区未来的方向,Railsconf2007上一个Session,"Xen and the Art of Rails Deployment",PDF在这里下。


前几天测试了文中提到的Swiftiply,有些高明的地方,不过不知道在生产系统上能否经受住考验。
0 请登录后投票
   发表时间:2007-07-17  
公司现在用nginx -> mongrel的部署
nginx绝对是个杀手应用,超高性能,proxy也相当的爽
以前用lightty 1.4,不仅proxy比较诡异,而且并不是很稳定
最重要的是,nginx的代码写的太爽了,要增加点儿东西简直就是个享受
0 请登录后投票
   发表时间:2007-07-26  
Nginx + Mongrel,简单,高性能,稳定!
0 请登录后投票
   发表时间:2007-09-14  
freemind 写道
AllenYoung 写道
freemind 写道

JavaEye为什么用lighttpd + fcgi呢?原因如下:

1) lighttpd发展了好几年了,市场占有率也相当高,是一个经过实践检验的server,它的文档也很全;而nginx还没有经过足够的市场检验,文档也很缺乏
2) JavaEye的ruby进程和web server在一台机器上面跑,通过unix socket使用fcgi协议通讯可以避免tcp的网络开销,其通讯速度比使用tcp socket使用http协议通讯要快一些。

谢谢你的详细讲解,受益匪浅。我看Agile Web Development with Rails 2e里面说fastcgi总是会出现莫名其妙的问题,而mongrel则是未来的一个趋势,因此它推荐使用mongrel而确实也说道one-box下使用fastcgi也可以。

也许可以先用lighttpd+fastcgi搭配,然后当lighttpd对mongrel的支持增强后再换到mongrel。

很是奇怪,既然lighttpd性能这么好,呼声这么高,咋没有谁弄个lighttpd+XXX的one-stack安装包出来呢。


第一,不是fastcgi有问题,fastcgi只是一个协议(程序之间的语言),是apache的mod_fastcgi这个模块有问题。打个比方,有个人英语水平很差,和你用英语对话,总是结结巴巴的,那你说是英语(fastcgi)这种语言有问题呢?还是和你对话的这个人(mod_fastcgi)有问题呢?

第二,分布式部署使用lighttpd + fastcgi也是已经被证明了非常stable的方案,至少是目前RoR方案当中performance和stablition最好的。

第三,lighttpd下一个版本1.5.0搭配fastcgi还是通过http proxy代理到mongrel,没有什么区别。1.5.0已经把这两种协议统一在一个module里面了。但是单机情况下,使用fastcgi比走http有一个额外的优势,就是通过unix socket通讯,可以降低通讯开销。

第四,one-stack的installer也只有ThoughtWorks一家在做,没有其他人在做。你也可以问问他们,为什么不做apache的installer,为什么不做nginx的installer,为什么不做litespeed的installer。

第五,传统Unix的Adminstrator都不屑于使用one-stack installer这种东西。高性能的Server需要通过自己手工安装和调整每一个参数来取得最好的效果。这是one-stack installer这种东西做不到的。打个比方,你有没有见过专业的摄影师用傻瓜相机的?



写的很明了、清楚,学到了很多知识。程序员如果都有你这样的沟通能力,中国未来的软件将不可限量。
0 请登录后投票
   发表时间:2007-09-20  
在没有达到百万、千万流量的时候,部署问题没有太大意义,apache+fcgi这种傻瓜方案完全可以应付。

这么说只是希望一些看热闹的同学不要陷入太深,这淌水比较深,没有必要的话可以先绕过去。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics