19 Dec '12, 11pm

さくらVPS 上で Thin で動いている Railsアプリ Gogengo! を Nginx + Unicorn で動かすようにしました(JMeter 負荷テスト付き) - bekkou68の日記 #ruby #rubyjp

# capistrano 用に RAILS_ROOT を指定 working_directory '/home/bekkou/projects/gogengo' # ソケット listen File.expand_path( 'tmp/unicorn.sock', ENV [ 'RAILS_ROOT ']) # ログ stdout_path File.expand_path( 'log/unicorn.stdout.log', ENV [ 'RAILS_ROOT ']) stderr_path File.expand_path( 'log/unicorn.stderr.log', ENV [ 'RAILS_ROOT ']) # ダウンタイムなくす preload_app true before_fork do | server, worker| defined?( ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{ server.config[:pid] }.oldbin" unless old_pid == server.pid begin # SIGTTOU だと worker_processes が多いときおかしい気がする Process.kill :QUIT , File.read( old_pid) .to_i rescue Errno::ENOENT , Errno::ESRCH end end end after_fork do | server, worker| defined?( ActiveRecord::Base) and ActiveRecord::Base.establish_connection end

Full article: http://bekkou68.hatenablog.com/entry/2012/12/19/231920

Tweets