Rails Unicornの導入

Rails のウェブサーバーを標準のWEBricに代えて、Unicornを使ってみます。この記事ではnginxは使いません。

Unicornのドキュメント:https://unicorn.bogomips.org/


Step1. Railsにunicorn gemを導入します

gemfileを開き、unicornを追加します。

gem 'unicorn'

gemをインストールします。

$ bundle install

Step2. 動作確認します

標準のウェブサーバーでブラウザからアクセスできている状態であれば、次のようにunicorn_railsコマンドで起動するだけでアクセスできるようになります。

$ unicorn_rails

Unicornはデフォルトで8080ポートで受けるため、ブラウザから http://ホスト:8080 としてアクセスし、アクセスできることを確認します。

補足:unicornコマンドもありますが、Rails以外のRackアプリケーション用のようです。


Step3. 設定ファイルを作ります

待ち受けポートを変えたり、ワーカー数を変えたりする場合は設定ファイルが必要です。

内容は下記の公式ドキュメントを参考にして設定します。
http://unicorn.bogomips.org/Unicorn/Configurator.html
http://unicorn.bogomips.org/examples/unicorn.conf.rb
http://unicorn.bogomips.org/examples/unicorn.conf.minimal.rb

Unicornの設定ファイルをconfig/unicorn.conf.rb (任意の場所・名前でよい)として新規作成し、内容は次のようにしました。

# config/unicorn.conf.rb
# ワーカー数を指定します。
# コア数と同じにすると良いようです。
worker_processes 1

# Railsアプリケーションのディレクトリを指定します。
working_directory "."

# 待ち受けるTCPポートを指定します。(デフォルトのまま)
listen 8080

# UnicornのPIDの一時保管場所を指定します。
# 元々Railsには tmp/pids フォルダがあるのでそこに格納。
pid "tmp/pids/unicorn.pid"

# 標準エラー出力のログファイルを指定します。
# 元々Railsには log フォルダがあるのでそこに格納。
stderr_path "log/unicorn.stderr.log"

# 標準出力のログファイルを指定します。
stdout_path "log/unicorn.stdout.log"

Step4. 設定ファイル付きでUnicornを起動します

設定ファイル付きでUnicornを起動するには次のようにします。

$ unicorn_rails -c 設定ファイル

ここでは先ほど作成した設定ファイルを使ってみます。

$ unicorn_rails -c config/unicorn.conf.rb

ブラウザから http://ホスト:指定のポート でアクセスし、アクセスできることを確認します。設定ファイルで指定した場所に、PID、ログファイルがあることも確認します。