Unicorn

参考:

unicorn – Rack HTTP server for fast clients and Unix [Official]

unicorn.git – Rack HTTP server for Unix and fast clients [Official]

概要

Unicorn のメリット

  • マスターからフォークしてワーカープロセスを作成する。
  • ライブラリのロードが一度で済むためデプロイが高速である。
  • コピーオンライトを使用して複数プロセスによる同内容のメモリ確保を回避する。
  • スレーブがリクエストをプルすることで自動的にロードバランシングが行われる。
  • ダウンタイムなしで更新デプロイを行える。

参考:

なぜ rails の本番環境では Unicorn, Nginx を使うのか? – Qiita

Unicorn と Nginx の概要と違い – Qiita

導入

参考:

次世代 Ruby on Rails サーバー Unicorn (汎用の Rack アプリケーションサーバ) を使ってみた | TechRacho

使い方

production 環境で Unicorn をデーモンとして起動する。

$ bundle exec unicorn_rails -c config/unicorn.rb -E production -D

プロセス ID を指定して kill コマンドで Unicorn を終了させる。

$ kill -9 12345

参考:

Rails 4.2 + Unicorn + Nginx でアプリケーションサーバの構築 – Qiita

設定

参考:

unicorn を Nginx 環境下で動かす時の設定方法 | Y-hilite

Unicorn の設定ファイルを読み解く Part 1 | りょうたくの WEB エンジニア日記

Unicorn の設定ファイルを読み解く Part 2 | りょうたくの WEB エンジニア日記

Rails + unicorn の設定・起動関連タスクまとめ | Simplie Post

ログを出力する

rails_root = File.expand_path("../..", __FILE__)
stderr_path File.expand_path("log/unicorn.log", rails_root)
stdout_path File.expand_path("log/unicorn.log", rails_root)

参考:

Method: Unicorn::Configurator#stdout_path — Documentation for unicorn | RubyDoc.info

Method: Unicorn::Configurator#stderr_path — Documentation for unicorn | RubyDoc.info

unicorn の logs がない | teratail

ActionCable を使う

参考:

How to configure ActionCable with Nginx and Unicorn in production? – Stack Overflow

まとめ

参考:

Nginx と Unicorn とは とかのまとめ · PallCreaker/tinQ Wiki – GitHub

Tips

参考:

Rails サーバ Unicorn を飼いならす! 運用時の便利技 | TechRacho

unicorn-worker-killer

参考:

kzk/unicorn-worker-killer: Automatically restart Unicorn workers based on 1) max number of requests and 2) max memory – GitHub

unicorn-worker-killer が便利だった件 | zephiransas のチラシの裏

unicorn-worker-killer の設定例 – Qiita

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です