作者giive (lala)
看板Ruby
标题[心得] Mongrel 三部曲之二:Mongrel Cluster
时间Thu Oct 5 17:29:47 2006
出自我的Blog
http://lightyror.blogspot.com/2006/10/mongrel-part-2-mongrel-cluster.html
看完上一篇,大家一定很想丢鸡蛋
这样的 tutorial 也可以出来混一篇文章
在大家浪费买蛋钱之前,我必须要说,好戏在後头呀!!!
Mongrel 如果只有单独启动在 80 port
他充其量不过是一个速度较普普的 Web Server
但是,当作 Backend Application Server 才是他的宿命呀
今天的需求是这样
我们可以开启数个 Mongrel Process 在其他 port
前端开一个 Proxy Server
当 Proxy Server 接受到 request
他会传给 backend application server
其实作法很像 Mod_fastcgi 的作法
只是中间的 application server 将 fastcgi 改成了 mongrel
如果要开启众多的 Mongrel Process
我们当然可以用
mongrel_rails start -d -p 8000 -P log/mongrel_1.pid
mongrel_rails start -d -p 8001 -P log/mongrel_2.pid
....
这样来执行,但是要管理就变得相当的麻烦
不但要一一起动,要关掉或是重起的变得相当麻烦
如果 Mongrel 那麽麻烦的话
那我们还搞屁,直接用 fastcgi 就好啦 XD
这时候请用 mongrel cluster
有了他,Mongrel 才变成简单好用的 Application Server
安装方式
gem i mongrel_cluster
即可
设定方式
一开始,请到 Ruby on Rails 的根目录
先设定 Mongrel 的设定档
mongrel_rails cluster::configure -e 那些环境 \
-p 8000 \
-N 3 \
-c /var/www/servers/ \
-a 127.0.0.1 \
--user mongrel \
--group mongrel
他会将 config 写到 config/database.yml
我解释一下选项
* -e 就是用那个环境启动(production/development/test)
* -p 就是用那个 port 开始
* -N 就是开启几个 process
* -c 就是先切到那个目录,再执行 mongrel cluster (通常是这个Ruby on Rails 的根目录)
* -a 就是在那个 host 启动
* --user 就是以那个 user 身份启动
* --group 就是以那个 group 启动
如果设定好後,以後使用 mongrel_rails cluster::start 他就会立刻使用刚刚的设定档
这里要注意的是 -N 跟 -p 的选项
假设 -p = 8000 -N 为 3
那他会开启三个mongrel process ,分别以 8000 , 8001 , 8002 来听
其实 -p 8000 -N 3
就跟
mongrel_rails start -d -p 8000 -P log/mongrel_1.pid
mongrel_rails start -d -p 8001 -P log/mongrel_2.pid
mongrel_rails start -d -p 8002 -P log/mongrel_3.pid
一样的意义
以此类推假设 -p = 7000 -N 为 5
那他会开启五个mongrel process ,分别以 7000 , 7001 , 7002 , 7003 , 7004 来听
使用方式
启动方式
mongrel_rails cluster::start
关闭方式
mongrel_rails cluster::stop
重起方式
mongrel_rails cluster::restart
--
lighty RoR 是一个介绍 lighttpd , SQLite , Ruby and Rails 的 Blog
http://lightyror.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.218.90.242