在ubuntu下用nginx+passenger进行rails部署

本文发布时间: 2019-Mar-22
接上一篇日记,这一篇日志主要是讲在测试中,为了模拟真实的环境,我用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


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表