最近网上有很多人在推荐使用nginx+mongerl来搭建了rails的生产环境,今天研究了一下。
在ubuntu上安装nginx比较简单 sudo apt-get install nginx 就可以了,如果要安装最新的版本可以去nginx的官方网站上去下载。
ubuntu上搭建rails的已经存在ubuntu的源库中,只要使用apt-get install rails 但是安装的不是最新的的版本。在gem install 分别安装 mongel 和Mongrel_cluster。
假如你的rails工程放在/var/www/myapp/下
[code]
adduser mongrel
cd /var/www/myapp
rails test
cd test
mongrel_rails start
chown -R mongrel:mongrel /var/www/myapp/test
[/code]
以上命令多是root用户
访问一下http://localhost:3000 看一下你的mongrel是否能启动 能启动,则继续搭建mongerl的集群,
[code] sudo mongrel_rails cluster::configure -e production
\-p 8000 -N 3 -c /var/www/myapp/test -a 127.0.0.1
\ --user mongrel --group mongrel[/code]
这样会在test工程下生成一个config/mongrel_cluster.yml 这样一个配置文件。记录了相关的配置信息。
[code]mongrel_rails cluster::start[/code] 就可以把起来了三个mongrel进程。
你也可以把mongrel_rails 作为系统服务
[code]
$ sudo mkdir /etc/mongrel_cluster
$ sudo cp /var/www/myapp/test/config/mongrel_cluster.yml \
/etc/mongrel_cluster/testapp.yml
$ sudo cp \
/path/to/mongrel_cluster_gem/resources/mongrel_cluster/mongrel_rails \
/etc/init.d/
$ sudo chmod +x /etc/init.d/mongrel_cluster
[/code]
你就可以在/etc/init.d/mongrel_cluster start 来启动这个mongrel的集群
接下来配置nginx 他的配置文件比较简单/etc/nginx/nginx.conf
下面可以帖一个简单的配置文件
[code]user mongrel;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
upstream mongrel {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
gzip on;
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/myapp/test/public;
index index.html index.htm;
}
location / {
proxy_pass http://mongrel;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$ {
root /var/www/myapp/test/public;
}
}
}[/code] 在nginx重启一下 访问一下http://localhost 一个简单的rails的生产环境就搭建完成了
在ubuntu上安装nginx比较简单 sudo apt-get install nginx 就可以了,如果要安装最新的版本可以去nginx的官方网站上去下载。
ubuntu上搭建rails的已经存在ubuntu的源库中,只要使用apt-get install rails 但是安装的不是最新的的版本。在gem install 分别安装 mongel 和Mongrel_cluster。
假如你的rails工程放在/var/www/myapp/下
[code]
adduser mongrel
cd /var/www/myapp
rails test
cd test
mongrel_rails start
chown -R mongrel:mongrel /var/www/myapp/test
[/code]
以上命令多是root用户
访问一下http://localhost:3000 看一下你的mongrel是否能启动 能启动,则继续搭建mongerl的集群,
[code] sudo mongrel_rails cluster::configure -e production
\-p 8000 -N 3 -c /var/www/myapp/test -a 127.0.0.1
\ --user mongrel --group mongrel[/code]
这样会在test工程下生成一个config/mongrel_cluster.yml 这样一个配置文件。记录了相关的配置信息。
[code]mongrel_rails cluster::start[/code] 就可以把起来了三个mongrel进程。
你也可以把mongrel_rails 作为系统服务
[code]
$ sudo mkdir /etc/mongrel_cluster
$ sudo cp /var/www/myapp/test/config/mongrel_cluster.yml \
/etc/mongrel_cluster/testapp.yml
$ sudo cp \
/path/to/mongrel_cluster_gem/resources/mongrel_cluster/mongrel_rails \
/etc/init.d/
$ sudo chmod +x /etc/init.d/mongrel_cluster
[/code]
你就可以在/etc/init.d/mongrel_cluster start 来启动这个mongrel的集群
接下来配置nginx 他的配置文件比较简单/etc/nginx/nginx.conf
下面可以帖一个简单的配置文件
[code]user mongrel;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
upstream mongrel {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
gzip on;
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www/myapp/test/public;
index index.html index.htm;
}
location / {
proxy_pass http://mongrel;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$ {
root /var/www/myapp/test/public;
}
}
}[/code] 在nginx重启一下 访问一下http://localhost 一个简单的rails的生产环境就搭建完成了