Nginx+mongrel+rails+ubuntu部署应用

作者: 北国的雨
发布时间:2015-07-13 11:10:09

我知道现在后端服务器有很多,但是为了与windows发布相对应,这里的后端选择mongrel。。。

思路:1.mongrel以守护进程方式运行rails

         2.安装配置Nginx

 

 一、mongrel以守护进程方式运行rails

    1. 安装mongrel

gem 'mongrel'

    

      2. 利用Nohup在后台运行命令

     编写rails_env.bat,存放在/opt/下,内容为

  
cd /workspace/SVNMS/SVNMS   /usr/local/bin/rails s mongrel -p 3003 -b 127.0.0.1

   然后利用nohup在后台运行

nohup /opt/rails_svnms.bat &

     

      可以用jobs命令查看后台运行进程

      使用 fn %n 命令关闭后台运行进程

       注意:运行nohup命令后,当Shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;

 

二、安装配置Nginx

      1. 安装nginx

sudo apt-get install nginx

      Ubuntu安装之后的文件结构大致为:

  • 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
  • 程序文件在/usr/sbin/nginx
  • 日志放在了/var/log/nginx中
  • 并已经在/etc/init.d/下创建了启动脚本nginx
  • 默认的虚拟主机的目录设置在了/var/www/nginx-default (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置)

     2.启动nginx

sudo /etc/init.d/nginx start

     3.配置nginx

server {          listen       8083;          server_name  liuwm-pc@grandsoft.com.cn;          root /workspace/SVNMS/SVNMS/public;                    location / {              root /workspace/SVNMS/SVNMS/public;                            proxy_set_header Host $host:8083;              proxy_set_header X-Real-IP $remote_addr;              proxy_set_header X-Forwarded-For $remote_addr;              proxy_pass http://127.0.0.1:3003/;                            proxy_set_header X-Forwarded-Proto https;              proxy_redirect off;          }          #SSL          ssl on;          ssl_certificate  /var/www/ssl/server.crt;          ssl_certificate_key  /var/www/ssl/server.key;          ssl_client_certificate /var/www/ssl/ssl/ca.crt;                   error_page   500 502 503 504  /50x.html;          location = /50x.html {              root   html;          }      }  

 

三、将mongrel启动rails、nginx启动做成开机启动

     Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本。

      当然要添加到语句:exit 0 前面才行。

      在 exit 0 前面添加好脚本代码。

nohup /opt/rails_svnms.bat &     sudo /etc/init.d/nginx start    

     参考:用Nohup命令让Linux下的程序在后台执行 http://www.linuxidc.com/Linux/2009-05/19963p2.htm

              Ubuntu Nginx中文      http://wiki.ubuntu.org.cn/Nginx

              Ubuntu添加开机自动启动程序的方法 http://www.linuxidc.com/Linux/2010-08/27668.htm

标签: Nginx Rails Ubuntu
来源:http://www.cnblogs.com/lwm-1988/archive/2012/04/27/2473824.h

推荐: