rails部署

production中key缺失问题

#该问题在部署nginx的时候会呈现出如下的表现形式
Incomplete response received from application

rails secret RAILS_ENV=production #生成key
#复制上面的值,粘贴到config/secret.yml中相应的production位置

production环境下样式缺失问题

#config/initializers/assets.rb中添加/app/assets/中所有的js和css样式,包括其他格式
#例子:
Rails.application.config.assets.precompile += %w( 
application.css article.scss  )

mac下进行passenger和nginx部署

#步骤1:相关软件和依赖
ruby2.3.0;rvm;xcode;rails5.0.0
#新建一个项目nginx_demo,并且启动
rails new nginx_demo
rails s

#步骤2:安装passenger和nginx
passenger是一个app server,支持基于Rack框架的 Ruby app(包括 Rails)
因为Nginx不支持动态module载入,所以需要通过Passenger来自动下载,编译,安装由Passenger修改版的Nginx

gem install passenger #gem 安装 passenger
passenger-install-nginx-module #安装nginx
安装nginx注意两个问题
1.选择步骤1
2.填写路径:/usr/local/nginx

将nginx命令行程序连接到/usr/local/bin
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin

#步骤3:配置Nginx + Passenger + Rails
修改hosts文件,给你的项目一个本地域名, 比如nginx_demo
$ sudo vim /etc/hosts
127.0.0.1 nginx_demo

测试hosts
$ ping nginx_demo


配置Nginx, 这里我给出一个最小可运行的Nginx配置文件
$ vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events { worker_connections 1024;}
http { 
  passenger_root /Users/jayzen/.rvm/gems/ruby-2.3.0-p290/gems/passenger-3.0.10; 
  passenger_ruby /Users/jayzen/.rvm/wrappers/ruby-2.3.0-p290/ruby; 

  include mime.types; 
  default_type application/octet-stream; sendfile on; 
  keepalive_timeout 65; 
  
  server { 
    listen 80; 
    server_name nginx_demo; 
    root /Users/jayzen/workshop/nginx/public; 
    passenger_enabled on;
    rails_env development; }
}


测试Nginx的配置文件语法是否正确
$ sudo nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动Nginx
$ sudo nginx

如何在修改Nginx的配置文件后,让Nginx载入新配置
$ sudo nginx -s reload

如何停止Nginx
$ sudo nginx -s stop

如何在不停Nginx的情况下,重新启动Passenger
$ cd workshop/nginx_demo
$ touch tmp/restart.txt

#访问
http://nginx_demo

阿里云远程连接ubuntu

独立IP地址是:120.26.141.56
mac(linux)登录ubuntu方式:ssh root@120.26.141.56

window登录ubuntu方式:使用putty软件:
ip如上所示,端口号是22,登录方式是ssh,登录的用户名是root

阿里云中安装nginx和运行

登录
#更新软件源
apt-get update
#安装nginx
apt-get -y install nginx
#查看nginx的运行状态
service service status

#查看nginx运行文件存放位置
vim /etc/nginx/sites-enabled/default
可知存放文件在此位置:root /usr/share/nginx/html #将需要运行的文件放置此位置

ubuntu14.04使用passenger和nginx部署rails

第一步:安装rvm ruby2.3.0 rails5.0.0
注意的问题是.bashrc中添加相关代码以启动rvm

第二步:安装passenger和nginx
#导入passenger密匙
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
#安装 apt 插件以支持 https 传输:
sudo apt-get install apt-transport-https ca-certificates
#添加 apt 源(对应 Ubuntu 14.04 LTS):
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update
#安装 Passenger 的包:
sudo apt-get install nginx-extras passenger

第三步:修改配置文件
#/etc/nginx/nginx.conf中添加下面两行到http中
#这会打开 Passenger 支持,并且指定使用之前用 rvm 安装的 ruby 版本
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/deploy/.rvm/wrappers/default/ruby;

#删除和新建配置
rm /etc/nginx/sites-enabled/default
touch /etc/nginx/sites-enabled/example.com.conf

#example.com.conf添加如下代码
server {
    listen 80 default;
    server_name example.com; # 这里填写你真实域名
    root /var/www/example.com/current/public; #current是项目名称
    passenger_enabled on;
    passenger_app_env production;#模式就是production,这里可以省略
}

#current项目需要进行如下操作
bundle install
#生成production环境下的数据库
RAILS_ENV=production rake db:create db:migrate
#样式编译
rake assets:precompile
#添加key到config/sercret.yml的production中
rails secret RAILS_ENV=production

第四步:添加root路由和重启nginx
#config/routes.rb
root to: 'homes/index'
#重启nginx
sudo service nginx restart
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容