使用nginx+mongerl来搭建了rails的生产环境
  
  
   时间:2014-10-28 11:56来源:linux.it.net.cn 作者:it
  
  
   
    
     
            最近网上有很多人在推荐使用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:  
 
		- 
			            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的生产环境就搭建完成了
      (责任编辑:IT) | 
    
   
 
 
  
  
  
   
   ------分隔线----------------------------