接上一篇日记,这一篇日志主要是讲在测试中,为了模拟真实的环境,我用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很好入门贴
转载于:https://blog.51cto.com/jacksongblack/1243467