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/shunicorn=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 unicornserver
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...