ror笔记2
在rails
app的
config
文件夹中新建unicorn.rb内容如下
worker_processes
2
working_directory
"/home/mage/boleht"
listen
"/tmp/unicorn.boleht.sock"
listen
19555, :tcp_nopush => true
timeout
120
pid
"/home/mage/boleht/tmp/pids/unicorn.pid"
stderr_path
"/home/mage/boleht/log/unicorn.stderr.log"
stdout_path
"/home/mage/boleht/log/unicorn.stdout.log”
在rail
app 根目录新建unicorn.sh
UNICORN=/usr/local/ruby/bin/unicorn_rails
killall
-9 unicorn_rails
$UNICORN
-D -c /home/mage/boleht/config/unicorn.rb
参考
使用Nginx
+ unicorn搭建ruby
on rails的生产环境
nginx启动、重启、关闭
一、启动
cd
usr/local/nginx/sbin
./nginx
二、重启
更改配置重启nginx
kill
-HUP 主进程号或进程号文件路径
或者使用
cd
/usr/local/nginx/sbin
./nginx
-s reload
判断配置文件是否正确
nginx
-t -c /usr/local/nginx/conf/nginx.conf
或者
cd
/usr/local/nginx/sbin
./nginx
-t
三、关闭
查询nginx主进程号
ps
-ef | grep nginx
从容停止
kill
-QUIT 主进程号
快速停止
kill
-TERM 主进程号
强制停止
kill
-9 nginx
若nginx.conf配置了pid文件路径,如果没有,则在logs目录下
kill
-信号类型
'/usr/local/nginx/logs/nginx.pid'
四、升级
、先用新程序替换旧程序文件
、kill
-USR2 旧版程序的主进程号或者进程文件名
此时旧的nginx主进程会把自己的进程文件改名为.oldbin,然后执行新版nginx,此时新旧版本同时运行
、kill
-WINCH 旧版本主进程号
、不重载配置启动新/旧工作进程
kill
-HUP 旧/新版本主进程号
从容关闭旧/新进程
kill
-QUIT 旧/新进程号
快速关闭旧/新进程
kill
-TERM 旧/新进程号
unicorn
+ nginx 搞定之后======================
rails-api
new myapp -d mysql —skip-bundle
vi
G
vi
conf/database.yml
rails
g scaffold task\
>空格
uid:string
name:string
不要用id做字段名
rake
db:create
rake
db:migrate
scp
-r myapp root@115.28.232.242
bundle
install
rails-api
server -b 115.28.232.242
front
html
=====================================
yum
install nginx
service
nginx start
service
nginx stop
service
nginx reconfigure
service
nginx status
gem
install unicorn
写一个unicorn.rb配置文件
放入ror工程的config文件夹
worker_processes
1
working_directory
"/home/mage/jdwy"
listen
"/var/tmp/.unicorn.sock", :backlog => 64
listen
19527, :tcp_nopush => true
timeout
120
pid
"/home/mage/jdwy/tmp/pids/unicorn.pid"
stderr_path
"/home/mage/jdwy/log/unicorn.stderr.log"
stdout_path
"/home/mage/jdwy/log/unicorn.stdout.log"
preload_app
true
GC.respond_to?(:copy_on_write_friendly=)
and
GC.copy_on_write_friendly
= true
check_client_connection
false
before_fork
do |server, worker|
defined?(ActiveRecord::Base)
and
ActiveRecord::Base.connection.disconnect!
end
after_fork
do |server, worker|
defined?(ActiveRecord::Base)
and
ActiveRecord::Base.establish_connection
end
在写一个.sh文件,每次一句话启动unicorn
UNICORN=/usr/local/ruby/bin/unicorn_rails
killall
-9 unicorn_rails
$UNICORN
-c /home/mage/jdwy/config/unicorn.rb -D -E production
nginx启动,重启,关闭命令
停止操作
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文
章)来进行的
:查询nginx主进程号
ps
-ef | grep nginx
在进程列表里
面找master进程,它的编号就是主进程号了。
:发送信号
从容停止Nginx:
kill
-QUIT 主进程号
快速停止Nginx:
kill
-TERM 主进程号
强制停止Nginx:
pkill
-9 nginx
另外,
若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文
件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill
-信号类型
'/usr/nginx/logs/nginx.pid'
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx
发送信号,平滑重启。
平滑重启命令:
kill
-HUP 住进称号或进程号文件路径
或者使用
/usr/nginx/sbin/nginx
-s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正
确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx
-t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx
-t
每次kill
端口号,来关闭unicorn服务,也可以用来关闭nginx
rails
new used school
rails
g scaffold Item title:string description:text --skip-stylesheets
rake
db:migrate
修改Gemfile文件,加入要安装的bootstrap相关包
、安装相关包
bundle
install
运行
rails
g bootstrap:install
生成bootstrap相关文件
rails
g bootstrap:themed items -f
跳转备忘
页面跳转用
<%=
link_to "GoodBye!", :action => "project" %>
此处action是默认根control中的方法(约定),可以从文件夹路径中看得
#没有动态数据,只有模版,报错
#render
:action => "index"
#render
'dpub/index.html.erb'
#有动态数据,就可以
@posts
= Post.all
@pmen
= Pman.all
render
'dpub/homepage/_hot_project.html.erb'
#
纯静态可以
#
render 'dpub/homepage/_foot.html.erb’
嵌套的erb可以复用父控制器里的model,而且不用import,自动感知
任何一个control
可以随便拿任何一个model(约定)
部署的时候装不上therubyracer,删掉所有的libv8和therubyracer,用一下
gem
install libv8 -v 3.16.14.7 -- --with-v8-lib
gem
install therubyracer
<%=DateTime.parse(cgstate.uptime.to_s).strftime('%Y-%m').to_s
%>
ror笔记2的更多相关文章
- Ror初学笔记
Ror正在以惊人的速度增长着,特别是在常常光顾JavaEye的时候发现Ror已经在国内有非常好的基础了,当然要凑个热闹尝尝鲜 咯. 眼下国内Ror的中文资料还是非常少的,到网上找找就仅仅有Eiffel ...
- (转)MySQL优化笔记(八)--锁机制超详细解析(锁分类、事务并发、引擎并发控制)
当一个系统访问量上来的时候,不只是数据库性能瓶颈问题了,数据库数据安全也会浮现,这时候合理使用数据库锁机制就显得异常重要了. 原文:http://www.jianshu.com/p/163c96983 ...
- 硬盘和显卡的访问与控制(一)——《x86汇编语言:从实模式到保护模式》读书笔记01
本文是<x86汇编语言:从实模式到保护模式>(电子工业出版社)的读书实验笔记. 这篇文章我们先不分析代码,而是说一下在Bochs环境下如何看到实验结果. 需要的源码文件 第一个文件是加载程 ...
- ARMv8 架构与指令集.学习笔记
目 录 第1章 ARMv8简介. 3 1.1基础认识. 3 1.2 相关专业名词解释. 3 第2章 Execution State 4 2.1 提供两种Execution State 4 2.2 决定 ...
- arm汇编笔记
ARM汇编(非虫笔记) 1.ARM汇编的目的: 分析elf文件的需要. 2.原生程序生成过程. (1)预处理,编译器处理c代码中的预处理指令. gcc -E hello.c -o hello.i (2 ...
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
随机推荐
- hadoop 的job.setOutputKeyClass和job.setOutputValueClass的几个问题
昨天写了一个mapreduce函数一直有错误,找不到错误,今天找了一天终于解决了,原来是hadoop 的job.setOutputKeyClass和job.setOutputValueClas设置输出 ...
- Buy Tickets(线段树单点更新,逆向思维)
题目大意:有n个的排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos.要求把队伍最后的状态输出. 个人心得:哈哈,用链表写了下,果不其然超时了,后面转念一想要用静态数组 ...
- modelsim仿真常用系统函数
(1)$time 作用:返回所在模块的仿真时间,可以查看信号的出现的时间,用来把握信号的时序. 如:$display(''the time is %t'',$time) ;//显示当时的时间 (2)$ ...
- CH1801 括号画家
题意 Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号.这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号( ).中括号[ ]和大括号{ },总长度为N.这排随意绘制的括 ...
- 几种分布式调用技术的比较 -- RPC VS REST
我之前在传统IT公司干活,后来来了互联网,感受到了很多不同,其中有一点就是两者使用到的技术有一些差别.比如说分布式调用技术. 我在的这家公司内部的服务架构是基于Thrift的,服务基于Thrift进行 ...
- grpc nodejs tools 安装问题
grpc nodejs 应用安装提示错误: stack Error: EPERM: operation not permitted, utime '/usr/local/lib/node_modul ...
- js手机号正则表达式验证
var phone = $("#phone").val(); //陈旧版 var parphone = /^(((13[0-9]{1})|(17[0-9]{1})|(15[0-9] ...
- MySQL5.7.18,初始化完成登录,提示密码过
初始化完成登录,提示密码过期 原因: 安装CentOs的时候,默认安装了mysql,并且版本与自己安装的mysql版本不一致,直接使用mysql -uroot -p'password'连接,默认调用的 ...
- ALSA声卡08_从零编写之框架_学习笔记
1.整体框架 (1)图示((DAI(全称Digital Audio Interface)接口)) 在嵌入式系统里面,声卡驱动是ASOC,是在ALSA驱动上封装的一层,包括以下三大块 (2)程序框架 m ...
- 新学一招,使用热门的Git
1.安装Git 1.本文所用版本为Git-1.8.0-preview20121022.exe , http://msysgit.googlecode.com/files/Git-1.8.0-prev ...