欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用了nginx+mongerl来搭建了rails的生产环境 博客分类: ruby RailsnginxUbuntuRuby应用服务器 

程序员文章站 2024-03-14 19:11:23
...
     最近网上有很多人在推荐使用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/下
      
 
       adduser  mongrel
        cd /var/www/myapp
        rails test
        cd  test
        mongrel_rails start 
        chown -R mongrel:mongrel /var/www/myapp/test
  

   以上命令多是root用户
   访问一下http://localhost:3000 看一下你的mongrel是否能启动 能启动,则继续搭建mongerl的集群,

  
 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

这样会在test工程下生成一个config/mongrel_cluster.yml 这样一个配置文件。记录了相关的配置信息。
  
mongrel_rails cluster::start
就可以把起来了三个mongrel进程。
   你也可以把mongrel_rails 作为系统服务
  
  $ 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 
 

   你就可以在/etc/init.d/mongrel_cluster start 来启动这个mongrel的集群
   接下来配置nginx 他的配置文件比较简单/etc/nginx/nginx.conf
   下面可以帖一个简单的配置文件
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;
        }

    }

}
在nginx重启一下 访问一下http://localhost 一个简单的rails的生产环境就搭建完成了