[心得] Mongrel 三部曲之二:Mongrel Cluster

看板Ruby作者 (lala)時間18年前 (2006/10/05 17:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
出自我的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
文章代碼(AID): #159D1sZ_ (Ruby)
文章代碼(AID): #159D1sZ_ (Ruby)