在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的更多相关文章

  1. Ror初学笔记

    Ror正在以惊人的速度增长着,特别是在常常光顾JavaEye的时候发现Ror已经在国内有非常好的基础了,当然要凑个热闹尝尝鲜 咯. 眼下国内Ror的中文资料还是非常少的,到网上找找就仅仅有Eiffel ...

  2. (转)MySQL优化笔记(八)--锁机制超详细解析(锁分类、事务并发、引擎并发控制)

    当一个系统访问量上来的时候,不只是数据库性能瓶颈问题了,数据库数据安全也会浮现,这时候合理使用数据库锁机制就显得异常重要了. 原文:http://www.jianshu.com/p/163c96983 ...

  3. 硬盘和显卡的访问与控制(一)——《x86汇编语言:从实模式到保护模式》读书笔记01

    本文是<x86汇编语言:从实模式到保护模式>(电子工业出版社)的读书实验笔记. 这篇文章我们先不分析代码,而是说一下在Bochs环境下如何看到实验结果. 需要的源码文件 第一个文件是加载程 ...

  4. ARMv8 架构与指令集.学习笔记

    目 录 第1章 ARMv8简介. 3 1.1基础认识. 3 1.2 相关专业名词解释. 3 第2章 Execution State 4 2.1 提供两种Execution State 4 2.2 决定 ...

  5. arm汇编笔记

    ARM汇编(非虫笔记) 1.ARM汇编的目的: 分析elf文件的需要. 2.原生程序生成过程. (1)预处理,编译器处理c代码中的预处理指令. gcc -E hello.c -o hello.i (2 ...

  6. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  9. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

随机推荐

  1. 【angularJS】Filter 过滤器

    当从后台获取到的数据呈现到视图上时,此时可能需要对数据进行相应的转换,此时我们可以通过过滤器在不同页面进行不同数据的格式抓换,在AngularJS中有常见默认的过滤器,当然若不满足所需,我们可以自定义 ...

  2. python模块--随机模块

    import random print(random.random()) # 随机产生一个(0,1)的 float 0.026244299361600776 print(random.randint( ...

  3. Quick 3.3 的代码资源加密

    http://cn.cocos2d-x.org/tutorial/show?id=1507 http://cn.cocos2d-x.org/tutorial/show?id=1447 http://b ...

  4. [LeetCode系列] 二叉树最大深度求解问题(C++递归解法)

    问: 给定二叉树, 如何计算二叉树最大深度? 算法描述如下: 如果当前节点为空, 返回0(代表此节点下方最大节点数为0) 如果当前节点不为空, 返回(其左子树和右子树下方最大节点数中的最大值+1) 上 ...

  5. 【转】ubuntu 12.04 /sbin/ldconfig.real: /usr/local/lib/*.so.8 不是符号连接 解决办法

    原文网址:http://blog.csdn.net/shulianghe/article/details/21176059 最近在ubuntu12.04下使用sudo apt-get install安 ...

  6. IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件

    IMP-00013: only a DBA can import a file exported by another DBA 处理方法:在给目标环境的用户赋予dba权限,或者细粒度一些,赋予imp_ ...

  7. C#软件安全 反编译 加密与安全等等

    我最近开发了一些C#语言的软件,但是由于这是一种解释型语言,也就是会转化成中间件语言,很容易就被反编译解密,包括exe和dll库等等,这时候我们真的需要使用一些技巧来将自己的成果进行加密,加壳等办法. ...

  8. MOSS 2013研究系列---列表的资源限制

    MOSS2010 以后,对列表的条目数做了一些限制,大量的将数据存储在列表中,会降低列表的运行效能,因此,MOSS中对列表默认有了一个阀值,默认是5000条数据,当你存储的数据多余5000条的时候,用 ...

  9. STM32的启动过程分析

    对于stm32的启动过程一直心存疑惑.今天找了很多资料,进行了一个大致的分析. 1.cortex M3的复位过程(来自官方资料) 上述开机启动流程比较详细,内容较为全面,但部分步骤可以省略(红字可省略 ...

  10. MFC消息循环

    MFC消息循环 MFC应用程序中处理消息的顺序 1.AfxWndProc()  该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc. 2.AfxCallWndProc ...