Unicorn WebサーバによるRailsサーバの高速化

1267 ワード

Railsで書かれたRedmineシステムを使用すると、接続者数が多い場合、システムのパフォーマンスが大幅に悪化します.
Googleはその後、Railsサーバ自体の性能に問題があることを知り、unicorn webサーバを使用することで大量の同時問題を解決することができます.
試してみるとunicornのインストールはとても簡単です.
1.Rails Appの目標の下でunicornモジュールをインストールする:gem install unicorn
2.Gemfileを修正し、unicorn:gem"unicorn"を加える
3.configureディレクトリの下でunicornを作成します.rbファイル
4.unicorn.rbファイルでのunicorn Webサーバの構成
--------------------------
# config/unicorn.rb
worker_processes 3
timeout 30
preload_app true

before_fork do |server, worker|

  Signal.trap 'TERM' do
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
    Process.kill 'QUIT', Process.pid
  end

  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|

  Signal.trap 'TERM' do
    puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT'
  end

  defined?(ActiveRecord::Base) and
    ActiveRecord::Base.establish_connection
end

5.unicornサーバの起動
bundle exec unicorn -p $PORT -c ./config/unicorn.rb

6.rails実行環境依存環境変数RAILS_ENV. RAILS_を設定することでENV=productionまたはRAILS_ENV=developmentなどはrailsの開発環境を制御する.