Unicornの設定ファイル。

今日で夏休みも終わりなんで、Unicornの設定について調べてました。
結果としては、よくわからなかったです。はい...

http://d.hatena.ne.jp/milk1000cc/20100804/1280893810
http://yuuki.hatenablog.com/entry/sakura01

ここら辺をみつつ

http://unicorn.bogomips.org/examples/unicorn.conf.rb

公式のこれと見比べたりしたけども、
結局似たり寄ったり(ほぼ同じ)な感じになってしまった。

app_name = 'hoge'
#ワーカーの数
worker_processes 2

#capistrano用の RAILS_ROOT
working_directory "path/to/#{app_name}"

#ソケット
# IP : PORTの形か、socketへのパスを与える。
listen "tmp/unicorn_of_#{app_name}.sock"

#  マスタープロセスのpidファイルのパス?
pid "tmp/unicorn_#{app_name}.pid"

#ログ
stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])
stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])

#いまいちわからん
preload_app true

#masterがworkerを生む前によばれる。
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
      Process.kill :QUIT, File.read(old_pid).to_i
    rescue Errno::ENOENT, Errno::ESRCH
    end
  end
end

#ワーカーのfork後?に呼ばれる
after_fork do |server, worker|
  defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end
unicorn_rails 

で起動。デフォルトでポートは 8080 になってる。
一応アクセスできた。

最後に

Unicornの公式みたりしたんですが、いまいちに何してるのかわからなくて気持ちが悪いです。
特に、 preload_app の部分。
これ以外にもたくさんあるので、公式サイトみてください。
英語の理解力が乏しいのでこういう時苦しい。
ぼけっと知ってる場合じゃないですね。