国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页服务器类Linux服务器 → Linux系统上配置Nginx+Mongrel cluster

Linux系统上配置Nginx+Mongrel cluster

我要评论 2009/05/04 17:00:03 来源:国语自产精品视频在线看 编辑:korn [ ] 评论:0 点击:1451次

Nginx不仅是一个小💉巧且高效的【gāo xiào de】HTTP服务器,也可以✍做一个高效的【gāo xiào de】负载均衡反向【héng fǎn xiàng】代理,通过它🦗接受用户的请求并分🔌发到多【fā dào duō】🏀个Mongrel进程可【jìn chéng kě】🥍以极大【yǐ jí dà】🛍提高Rails应用的【yīng yòng de】并发能力。下面介【xià miàn jiè】绍一下如何在🍷一台服务器上【wù qì shàng】配置❎Nginx + Mongrel cluster。

获得Nginx,这里我【zhè lǐ wǒ】🆗们假设大家是通过自💇己编译,并配置👕了默认🥁的编译的参数【de cān shù】,此处使用的是【yòng de shì】Nginx 0.5.x版【bǎn】。

配置Mongrel cluster

我们还💦需要获【xū yào huò】得Mongrel和其Cluster插件(用来方🥧便得启【biàn dé qǐ】动多个【dòng duō gè】📸Mongrel进程【jìn chéng】),如下通过🏻gem进行安装:

gem i -y mongrel mongrel_cluster

然后建立【lì】🚞mongrel_cluster的配置文件。进入🏓Rails应用即🕟你的程序的根部目录🥧(以下假【yǐ xià jiǎ】设【shè】/usr/rails),运行【yùn háng】:

mongrel_rails cluster::configure

然后🆖mongrel_cluster便会在🌋config目录下【mù lù xià】生成一【shēng chéng yī】个【gè】⛵mongrel_cluster.yml,内容如下:

---

log_file: log/mongrel.log

port: 3000

pid_file: tmp/pids/mongrel.pid

servers: 2

我们可以通过【yǐ tōng guò】修改其【xiū gǎi qí】中的设🖲置来更改mongrel_cluster的运行,这个范【zhè gè fàn】⛩例配置省略了【shěng luè le】一些其【yī xiē qí】🌧他参数,具体的参数的🕶含义如🌳下:

address: 指定绑定的地址

port: 指定🍅mongrel_cluster所运行【suǒ yùn háng】的【de】mongrel进程从🕔哪个端口开始绑定【bǎng dìng】😽

servers: 指定同【zhǐ dìng tóng】🍶时运行多少个【duō shǎo gè】mongrel进程,结合🗾port参数🥇,就是表示port到port+servers-1(含)的端口【de duān kǒu】将被使【jiāng bèi shǐ】用💕

environment: 指定【zhǐ dìng】Rails运行的🌵配置环【pèi zhì huán】境💉

user: 指定mongrel进程以【jìn chéng yǐ】🕤什么用【shí me yòng】户的身份运行🌽

group: 指定mongrel进程以【jìn chéng yǐ】🚺什么组的身份运行【yùn háng】👌

cwd: 指定mongrel运行的【yùn háng de】🔔根目录

log_file: 各个【gè gè】💦mongrel进程的🍡输出日【shū chū rì】志的位置,相对于cwd的目录,会在文👳件的扩展名之【zhǎn míng zhī】前加上【qián jiā shàng】各进程【gè jìn chéng】👸对应的👸端口号

pid_file: 各个【gè gè】mongrel进程的【jìn chéng de】🔋pid文件的🍍位置【wèi zhì】,相对于📑cwd的目录,会在文🖕件的扩展名之前加上【qián jiā shàng】各进程对应的端口号

大家可【dà jiā kě】以根据【yǐ gēn jù】🌏自己的具体情【jù tǐ qíng】❄况进行修改【xiū gǎi】。以下是一个完整的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

接下来【jiē xià lái】🧛便可以【biàn kě yǐ】启动🐌mongrel_cluster了,以下是🕊控制mongrel_cluster的命令【de mìng lìng】:

mongrel_rails cluster::start #启动【qǐ dòng】🅰

mongrel_rails cluster::restart #重启【chóng qǐ】🍱

mongrel_rails cluster::stop #停止【tíng zhǐ】🚚

配置Nginx负载均衡反向代理

利用【lì yòng】nginx的【de】upstream指令配置哪些服务器需要进【xū yào jìn】行负载【háng fù zǎi】🙏均衡。在这里👩也可以【yě kě yǐ】说直接【shuō zhí jiē】说告诉nginx mongrel_cluster在哪些🎏地址和端口上【duān kǒu shàng】,按照上👝面的【de】mongrel_cluster的【de】配置🐶,在🐾nginx中应该🐐这样写:

...

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指定了这批上游服务器【qì】的的名称,大家可【dà jiā kě】🛋以使用别的名字。每个server指令指定了一【dìng le yī】🏿个服务【gè fú wù】💕器【qì】,server指令还🥈支持别的参数【de cān shù】可以设【kě yǐ shè】🌄置重试次数和【cì shù hé】超时时🧛间以及【jiān yǐ jí】♑不同服【bú tóng fú】✈务器【qì】的权重🌳。


接下来【jiē xià lái】🤽配置🐟nginx在接受哪些http请求时【qǐng qiú shí】转发到mongrel cluster,因为nginx处理静态文件的速度【de sù dù】🛌远远高【yuǎn yuǎn gāo】于mongrel,所以一🎼般当请🌮求的路【qiú de lù】径不存在的时候才将【hòu cái jiāng】请求转🚓发到mongrel cluster:

server {

listen 80;

server_name example.com;

#设置服【shè zhì fú】🚺务器根目录为🎺rails应用的【yīng yòng de】😰public目录,这个目录下放了对外【le duì wài】的静态文件

root /usr/rails/public;

index index.html index.htm;

location / {

#转发时保留原🌽有请求🥑的【de】IP信息和【xìn xī hé】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 qǐng qiú】⛩的文件🥥不存在,转发到【zhuǎn fā dào】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,配置便成功了。

关键词【guān jiàn cí】🏨:Linux,Nginx,Mongrel,cluster

阅读本文后您有什么感想? 已有 人给出评价!

  • 1 欢迎喜欢
  • 25 白痴
  • 2 拜托
  • 2 哇
  • 3 加油
  • 3 鄙视