国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

Linux系統(tǒng)上配置Nginx+Mongrel cluster

2024-08-30 12:27:32
字體:
供稿:網(wǎng)友

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

獲得Nginx,這里我們假設(shè)大家是通過自己編譯,并配置了默認(rèn)的編譯的參數(shù),此處使用的是Nginx 0.5.x版。

配置Mongrel cluster

我們還需要獲得Mongrel和其Cluster插件(用來方便得啟動多個Mongrel進(jìn)程),如下通過gem進(jìn)行安裝:

gem i -y mongrel mongrel_cluster

然后建立mongrel_cluster的配置文件。進(jìn)入Rails應(yīng)用即你的程序的根部目錄(以下假設(shè)/usr/rails),運(yùn)行:

mongrel_rails cluster::configure

然后mongrel_cluster便會在config目錄下生成一個mongrel_cluster.yml,內(nèi)容如下:

---

log_file: log/mongrel.log

port: 3000

pid_file: tmp/pids/mongrel.pid

servers: 2

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

address: 指定綁定的地址

port: 指定mongrel_cluster所運(yùn)行的mongrel進(jìn)程從哪個端口開始綁定

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

environment: 指定Rails運(yùn)行的配置環(huán)境

user: 指定mongrel進(jìn)程以什么用戶的身份運(yùn)行

group: 指定mongrel進(jìn)程以什么組的身份運(yùn)行

cwd: 指定mongrel運(yùn)行的根目錄

log_file: 各個mongrel進(jìn)程的輸出日志的位置,相對于cwd的目錄,會在文件的擴(kuò)展名之前加上各進(jìn)程對應(yīng)的端口號

pid_file: 各個mongrel進(jìn)程的pid文件的位置,相對于cwd的目錄,會在文件的擴(kuò)展名之前加上各進(jìn)程對應(yīng)的端口號

大家可以根據(jù)自己的具體情況進(jì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了,以下是控制mongrel_cluster的命令:

mongrel_rails cluster::start #啟動

mongrel_rails cluster::restart #重啟

mongrel_rails cluster::stop #停止

配置Nginx負(fù)載均衡反向代理

利用nginx的upstream指令配置哪些服務(wù)器需要進(jìn)行負(fù)載均衡。在這里也可以說直接說告訴nginx mongrel_cluster在哪些地址和端口上,按照上面的mongrel_cluster的配置,在nginx中應(yīng)該這樣寫:

...

http{

...

#upstream段要放在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指令后面的mongrel指定了這批上游服務(wù)器的的名稱,大家可以使用別的名字。每個server指令指定了一個服務(wù)器,server指令還支持別的參數(shù)可以設(shè)置重試次數(shù)和超時時間以及不同服務(wù)器的權(quán)重。

接下來配置nginx在接受哪些http請求時轉(zhuǎn)發(fā)到mongrel cluster,因?yàn)閚ginx處理靜態(tài)文件的速度遠(yuǎn)遠(yuǎn)高于mongrel,所以一般當(dāng)請求的路徑不存在的時候才將請求轉(zhuǎn)發(fā)到mongrel cluster:

server {

listen 80;

server_name example.com;

#設(shè)置服務(wù)器根目錄為rails應(yīng)用的public目錄,這個目錄下放了對外的靜態(tài)文件

root /usr/rails/public;

index index.html index.htm;

location / {

#轉(zhuǎn)發(fā)時保留原有請求的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;

}

#當(dāng)請求的文件不存在,轉(zhuǎn)發(fā)到mongrel cluster

if (!-f $request_filename) {

proxy_pass http://mongrel;

break;

}

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 独山县| 肥东县| 聂拉木县| 公安县| 囊谦县| 信丰县| 星子县| 赤城县| 石台县| 富川| 衢州市| 夹江县| 闸北区| 沙洋县| 凉城县| 全椒县| 南开区| 吴忠市| 宽城| 临沧市| 微山县| 娱乐| 城口县| 丰都县| 华阴市| 新绛县| 什邡市| 虎林市| 千阳县| 碌曲县| 康保县| 永宁县| 腾冲县| 崇阳县| 扶风县| 通化市| 大新县| 融水| 吉水县| 北辰区| 安丘市|