接上一篇日记,这一篇日志主要是讲在测试中,为了模拟真实的环境,我用nginx搭建production模式时遇到的问题,总体来说 这次搭建环境,不是很顺畅,遇到诸多的问题,原计划要一天完成的,但是花了两个工作日,不过我也得到部署的锻炼,为了方便以后我不再走这个坑,先把东西记录到这


 第一:我遇到一个不能载入log文件的问题,去提示的路径,没有相应的文件,这是我最这次遇到最麻烦的地方,害我研究很久,最后终于发现原来是版本的bug,使用passenger -  v 4.0.7版本就ok。


第二:执行restrart的时候,无法stop 上一次的运行的nginx,主要是没有配置记录pid的文本,而配置

pid        /var/run/nginx.pid;

这样才能得到运行的pid,不然只有kill掉进程。

第三:配置文件中server{}与location的关系是,server 中括号中包含的是location,server中配置的是nginx服务端口,location中配置的是passenger的服务端口示例如下

server {
        listen       3000;
        server_name  127.0.0.1;
          root /your/app/path;
          index  index.html index.htm;
          passenger_enabled on;
          rails_env production;
        location / {
          proxy_pass http://127.0.0.1:3001;
          proxy_set_header Host $host;
        }
}

这里还要注意的是 passenger_enabled 要放在root后面。


第四:有时无法open某个文件,有个原因是系统的权限不够,这里我也是第一次使用linux类系统,在linux中,所有东西都是文件,文件夹也是文件一种,那么他就有读写权限,查看文件命令是

ls -l

修改文件的命令如下

chmod xxx *dirname -R

中间的三位数,xxx表示的是权限,在linux系统中文件夹权限由三个字节表示 分别为

r=4,w=2,x=1 

如果全部权限都具有那么表示为777,为了方便和安全我们一般设置为775.


第五:passenger 开启运行,主要是nginx.conf里面要设置正确的路径,首先如果你用的rvm安装的ruby 那么你就要用

ruby -v

来查看你的使用ruby版本,

如果不对

你要使用

sudo rvm use --default *ruby_version

当然 如果你不知道装了哪些版本,也可以用

rvm list

来获取所有安装的文件。


信息确认OK,来到你的rails_application文件夹下

passenger start -a *ip_url -p *port

一般第一次会做初始化操作,如果不做这一步nginx只会读取静态html文件,

最后

有个小技巧,如何验证你的nginx 的配置是否正确,你可以运行

sudo /opt/nginx/sbin/nginx -t

参考链接

http://ruby-china.org/wiki/install-rails-on-ubuntu-12-04-server ruby china很好入门贴