ror配置unicorn部署

2021-09-06 20:09:41 字數 2511 閱讀 9502

unicorn是目前在ror上比較流行的應用伺服器,配合nginx用來直接部署rails程式,下面這種方式應該是共享socket,不斷fork子程序,有點類似php-fpm的模式

安裝unicorn

gem install unicorn

或者在你的專案裡修改gemfile

gem

'unicorn

'

流程描述

給rails程式配置unicorn的啟動指令碼

在外部unicorn_rails /***x/yyyy/zzzz/unicorn.rb啟動rails程式

nginx配置下,連線到後端的ror程式

下面是詳細的指令碼部分

比如我們有個名字為hello的ror專案

在hello/config下建立unicorn.rb

root_path = file.expand_path '

../'

, file.dirname(__file__)

log_file = root_path + '

/log/unicorn.log

'err_log = root_path + '

/log/unicorn_error.log

'pid_file = '

/tmp/unicorn_hello.pid

'old_pid = pid_file + '

.oldbin

'socket_file = '

/tmp/unicorn_hello.sock

'worker_processes

6working_directory root_path

listen socket_file, backlog:

1024

timeout

30pid pid_file

stderr_path err_log

stdout_path log_file

true

before_exec

do |server|env[

'bundle_gemfile

'] = root_path + '

/gemfile

'defined?(activerecord::base) and

activerecord::base.connection.disconnect!end

before_fork

do |server, worker|

if file.exists?(old_pid) && server.pid !=old_pid

begin

process.kill(

'quit

', file.read(old_pid).to_i)

rescue errno::enoent, errno::esrch

puts

"send 'quit' signal to unicorn error!

"end

enddefined?(activerecord::base) and

activerecord::base.establish_connection

end

在hello專案的外面,建立start_hello.sh

#!/bin/sh

unicorn=unicorn_rails

#這裡需要全路徑

config_file=/home/mmc/projects/ruby/hello/config/unicorn.rb

case"$1

"instart)

#$unicorn -c $config_file -e production -d

$unicorn -c $config_file -d

;;stop)

kill -quit `cat /tmp/unicorn_hello.pid`

;;restart|force-reload)

kill -usr2 `cat /tmp/unicorn_hello.pid`

;;*)

echo

"usage: $scriptname

" >&2

exit 3;;

esac

執行sh start_hello.sh start

最後配置nginx

upstream unicorn 

server

try_files $uri/index.html $uri @unicorn;

location @unicorn

error_page

500502

503504 /500

.html;

client_max_body_size 4g;

keepalive_timeout 10;

}

啟動sudo invoke-rc.d nginx restart

應該能看到ror的頁面了

配置ROR開發環境

1 安裝ruby sudo apt get update sudo apt get install build essential libopenssl ruby sudo apt get install ruby rubygems ruby1.8 dev 版本是1.8.7 2 安裝rails su...

ubuntu下配置ROR開發環境

一直想去學下ror。終於把ubuntu裝上然後在裡面配置了ror的開發環境。雖然做了很多功課可是在真正安裝的時候,還是出了很多問題。特意記下來留個紀念。1.安裝build工具 sudo apt get install build essential 2.安裝readline zlib libncur...

Windows環境下ROR的安裝與配置

2 開啟cmd,輸入,ruby v,如果現實ruby 1.9.2.表示ruby的安裝成功。如果有問題,先考慮,新增環境變數的問題,再考慮其他問題。關於環境變數,一般是不用管的,如果在之前的那一步當中有選擇,讓installer自動配置環境的話,如果沒有選擇這一項,考慮去自己配置環境變數。3 安裝sq...