论坛首页 Ruby版 rails

关于lighttpd+fastCGI部署的疑问

浏览 1188 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-01-09
看了好多网上的文章都介绍了在各种平台下搭建lighttpd+fastCGI,可是,我有一个疑问,就是网上的文章大多数都是假设lighttpd与rails部署在同一台机器上面的,我现在的情况是总共有3台机器,计划一台安装lighttd,另外两台安装rails应用,使用fastCGI的方式。可是,rails应用如何配置为standalone fastCGI的启动方式呢?我的设想是lighttpd通过fastCGI协议,使用tcp方式与其它机器上的rails应用通讯。死活搞不定rails的配置和启动。谁有这样配置过的经验,谢谢了。
   
最后更新时间:2008-01-09
你需要用到lighttpd自带的spawn-fcgi命令来启动Rails应用为fcgi进程,比方说:

/usr/local/lighttpd/bin/spawn-fcgi -f yourrails/public/dispatch.fcgi -p 3001
/usr/local/lighttpd/bin/spawn-fcgi -f yourrails/public/dispatch.fcgi -p 3002
......
/usr/local/lighttpd/bin/spawn-fcgi -f yourrails/public/dispatch.fcgi -p 3010

这样可以启动10个fcgi进程,分别监听3001到3010端口。然后lighttpd那边配置转发这10个端口就可以了。当然你可以自己写一个脚本来控制fcgi进程的启动关闭重起等等。更进一步,你可以在通过SSH远程发布应用,重起fcgi进程。
   
0 请登录后投票
最后更新时间:2008-01-09
现在rails2.0有新的script/process/spawner,可以试试
引用

$ ruby spawner --help
=> Starting mongrel dispatchers
Usage: spawner [platform] [options]

  Description:

The spawner is a wrapper for spawn-fcgi and mongrel that makes it
    easier to start multiple processes running the Rails dispatcher.
   
0 请登录后投票
最后更新时间:2008-01-09
花花公子 写道
现在rails2.0有新的script/process/spawner,可以试试
引用

$ ruby spawner --help
=> Starting mongrel dispatchers
Usage: spawner [platform] [options]

  Description:

The spawner is a wrapper for spawn-fcgi and mongrel that makes it
    easier to start multiple processes running the Rails dispatcher.


这上面不是写了吗,script/process/spawner就是lighttpd的spawn-fcgi的封装而已。你说直接用spawn-fcgi去启动方便呢? 还是非要七绕八绕用ruby去启动一个shell,再用sell去启动spawn-fcgi方便呢?何必自找麻烦?
   
0 请登录后投票
最后更新时间:2008-01-09
感谢robbin的回复。其实在之前已经搜索过很多资料了,lighttpd的spawn-fcig也试过了,不过,是在windows平台上。为什么不用*nix?没有别的目的,就是想做一个测试而已。

spawn-fcgi -f e:\rubyproject\depot\public\dispatch.fcgi -p 3001

运行上述命令后,提示无此文件或目录的错误。真是奇怪。不知道是不是lighttpd真的不适合windows平台。
   
0 请登录后投票
最后更新时间:2008-01-11
还有就是rails好像还提供了一个fcgi.gem,不知道这个gem是用来做什么用的?即使不安装这个fcgi.gem,按照robbin的做法,也一样可以以fcgi方式来启动rails应用了,有谁清楚吗?
   
0 请登录后投票
论坛首页 Ruby版 rails

跳转论坛:
JavaEye推荐