Linux系统上配置Nginx+Mongrel cluster
nginx不仅是一个小巧且高效的http服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个mongrel进程可以极大提高rails应用的并发能力。下面介绍一下如何在一台服务器上配置nginx + mongrel cluster。 获得nginx,这里我们假设大家是通过自己编译,并配置了默认的编译的参数,此处使用的是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 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 #停止
Tag:
Nginx
,cluster