Tag Archives: cluster

Linux 上配置 Nginx + Mongrel cluster

Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。下面介绍一下如何在一台服务器上配置Nginx + Mongrel cluster。 获得Nginx方法可以参考前一篇配置Nginx+PHP5 FastCGI的文章,这里我们假设大家是通过自己编译,并配置了默认的编译的参数,此处使用的是Nginx 0.5.x版。 配置Mongrel cluster 我们还需要获得Mongrel和其Cluster插件(用来方便得启动多个Mongrel进程),如下通过gem进行安装: gem i -y mongrel mongrel_cluster 然后建立mongrel_cluster的配置文件。进入Rails应用即你的程序的根部目录(以下假设/usr/rails),运行: mongrel_rails cluster::configure 然后mongrel_cluster便会在config目录下生成一个mongrel_cluster.yml,内容如下: — log_file: log/mongrel.log port: 3000 pid_file: tmp/pids/mongrel.pid servers: 2 我们可以通过修改其中的设置来更改mongrel_cluster的运行,这个范例配置省略了一些其他参数,具体的参数的含义如下: address: 指定绑定的地址 port: 指定mongrel_cluster所运行的mongrel进程从哪个端口开始绑定 servers: 指定同时运行多少个mongrel进程,结合port参数,就是表示port到port+servers-1(含)的端口将被使用 environment: 指定Rails运行的配置环境 user: 指定mongrel进程以什么用户的身份运行 group: 指定mongrel进程以什么组的身份运行 cwd: 指定mongrel运行的根目录 log_file: 各个mongrel进程的输出日志的位置,相对于cwd的目录,会在文件的扩展名之前加上各进程对应的端口号 pid_file: 各个mongrel进程的pid文件的位置,相对于cwd的目录,会在文件的扩展名之前加上各进程对应的端口号 大家可以根据自己的具体情况进行修改。以下是一个完整的mongrel_cluster.yml配置文件: — user: apache cwd: /usr/rails/ log_file: log/mongrel.log [...]