Unicorn
参考:
unicorn – Rack HTTP server for fast clients and Unix [Official]
unicorn.git – Rack HTTP server for Unix and fast clients [Official]
ドキュメント
参考:
Documentation for unicorn | RubyDoc.info
概要
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
Nginx + Unicorn で Rails アプリケーションを本番環境で立ち上げる方法 – 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 にログローテーション設定してみた | TechRacho
Unicornのログローテーションを設定する | tackeyy.com
Capistrano でデプロイする
参考:
Capistrano3 で Unicorn + Nginx な環境に Rails をデプロイする – Qiita
capistrano で nginx, unicorn の設定ファイルを管理しつつ rails の deploy – Qiita
Capistrano3 で rails デプロイ (+unicorn) – Qiita
ActionCable を使う
参考:
How to configure ActionCable with Nginx and Unicorn in production? – Stack Overflow
ソケットファイル
参考:
Rails + unicorn + nginx で Web Server を起動させるときにはまった話。- Qiita
まとめ
参考:
Nginx と Unicorn とは とかのまとめ · PallCreaker/tinQ Wiki – GitHub
Tips
参考:
Rails サーバ Unicorn を飼いならす! 運用時の便利技 | TechRacho
unicorn-worker-killer
参考:
Unicorn の Worker プロセスをリサイクルする – Qiita
unicorn-worker-killer が便利だった件 | zephiransas のチラシの裏
unicorn のワーカープロセスを自動で再起動する | YoshinoriN’s Memento