綠(lǜ)色資源網:您身邊最放心的安全下載站! 最(zuì)新軟件|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網

技術教程
您的位置:首頁服務器類Linux服務器 → Linux係(xì)統上配置(zhì)Nginx+Mongrel cluster

Linux係統上配置Nginx+Mongrel cluster

我要評論(lùn) 2009/05/04 17:00:03 來(lái)源:綠色資源網 編(biān)輯:korn [ ] 評論:0 點擊:1451次

Nginx不僅是一個小巧且高效(xiào)的HTTP服務器,也(yě)可以做一(yī)個高(gāo)效(xiào)的(de)負(fù)載均衡反(fǎn)向代理,通過它接受用戶的請求並分發到多個Mongrel進程可以極大提高Rails應用的並發能力。下麵介紹一下如何在一台服務器上配置Nginx + Mongrel cluster。

獲得Nginx,這裏我們假設(shè)大家是通過自己編譯,並配置(zhì)了默(mò)認的編譯的參數,此處使用的(de)是Nginx 0.5.x版。

配置Mongrel cluster

我(wǒ)們還(hái)需(xū)要獲得Mongrel和其Cluster插件(用來方便得啟動多個Mongrel進程),如下通(tōng)過gem進行安裝:

gem i -y mongrel mongrel_cluster

然後建立mongrel_cluster的配置文件。進入Rails應用即你的程序(xù)的根部目錄(以下假設/usr/rails),運行(háng):

mongrel_rails cluster::configure

然後mongrel_cluster便會在config目錄下生成一個mongrel_cluster.yml,內容如下(xià):

---

log_file: log/mongrel.log

port: 3000

pid_file: tmp/pids/mongrel.pid

servers: 2

我們可以通過修改其中的設置來更改mongrel_cluster的運行,這個範例配置省略了一些其他參(cān)數,具體的參數的含義如下:

address: 指定綁定的地址

port: 指定mongrel_cluster所運行的mongrel進程從哪個(gè)端(duān)口開始綁(bǎng)定

servers: 指定同時運行多少個mongrel進程,結(jié)合port參數,就是表示port到port+servers-1(含(hán))的端口將被使用(yòng)

environment: 指定Rails運行的配(pèi)置環(huán)境

user: 指定(dìng)mongrel進程以什麽用戶的身份運行

group: 指定mongrel進程以(yǐ)什麽組的(de)身份運行

cwd: 指定mongrel運行的根目錄

log_file: 各個mongrel進程的輸出(chū)日誌的位置,相對於cwd的目錄(lù),會在文件的擴(kuò)展名之前加上各(gè)進程對應的端口號

pid_file: 各個(gè)mongrel進程的pid文件的位置,相對於cwd的目錄,會在文件的擴展名之前加上各進程對應的端口號

大家可以(yǐ)根據自己的具體情況進行修改。以下是(shì)一個完(wán)整的mongrel_cluster.yml配置文件:

---

user: apache

cwd: /usr/rails/

log_file: log/mongrel.log

port: 3000

environment: production

group: apache

address: 127.0.0.1

pid_file: tmp/pids/mongrel.pid

servers: 5

接下來便可以啟動mongrel_cluster了(le),以(yǐ)下是控製mongrel_cluster的命(mìng)令:

mongrel_rails cluster::start #啟動

mongrel_rails cluster::restart #重啟

mongrel_rails cluster::stop #停止

配置Nginx負載均衡反向代(dài)理

利用nginx的upstream指令配置哪些服(fú)務(wù)器需要(yào)進行負載均衡。在(zài)這裏也可以說直接說告訴nginx mongrel_cluster在哪些地址和端口上,按照上麵的mongrel_cluster的配置,在nginx中應該這樣寫:

...

http{

...

#upstream段要放(fàng)在(zài)http段中

upstream mongrel {

server 127.0.0.1:3000;

server 127.0.0.1:3001;

server 127.0.0.1:3002;

server 127.0.0.1:3003;

server 127.0.0.1:3004;

}

...

}


upstream指(zhǐ)令後麵的mongrel指定了這(zhè)批上遊服務器的的名稱,大家可以使(shǐ)用別的名字。每個server指令指定了一個服務器,server指令(lìng)還支持別的參數可以設置重試(shì)次數和超時時間以(yǐ)及不同服務器(qì)的權重。


接下來配置nginx在接受哪些http請求時轉發到mongrel cluster,因為nginx處(chù)理靜態文件的速度遠遠高於mongrel,所以一般當請求的路徑不存在的時候(hòu)才將請求轉發到mongrel cluster:

server {

listen 80;

server_name example.com;

#設置服務(wù)器根(gēn)目錄為rails應用的public目錄,這(zhè)個(gè)目錄下放了對外的靜態文件

root /usr/rails/public;

index index.html index.htm;

locations / {

#轉發時保留原有請求的(de)IP信息和HOST信息

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_redirect false;

if (-f $request_filename/index.html) {

rewrite (.*) $1/index.html break;

}

if (-f $request_filename.html) {

rewrite (.*) $1.html break;

}

#當請求的文件不存在,轉發到mongrel cluster

if (!-f $request_filename) {

proxy_pass http://mongrel;

break;

}

}

error_page 500 502 503 504 /50x.html;

locations = /50x.html {

root html;

}

}

然後重啟Nginx,配置便成功了。

關(guān)鍵詞:Linux,Nginx,Mongrel,cluster

閱讀本文後您有什麽(me)感(gǎn)想? 已有 人給出評價!

  • 1 歡迎喜歡
  • 25 白癡
  • 2 拜托
  • 2 哇
  • 3 加油
  • 3 鄙視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡