Unicorn + NginxでさくらVPSにデプロイしてみた

Unicorn + Nginxを使ってrailsアプリケーションをデプロイしてみたので、備忘録として残しておきます。
ここでは、Ruby, Railsの環境は入ってるものとします。

Unicorn

Unicornとは

UnicornとはRackアプリケーション向けのHTTPサーバーです。詳しいことはよくわからなかったので以下を参照ください。
Everything You Need to Know About Unicorn
Unicorn!

Unicorn is an HTTP server for Ruby, similar to Mongrel or Thin. It uses Mongrel’s Ragel HTTP parser but has a dramatically different architecture and philosophy.

https://github.com/blog/517-unicorn

unicornのインストール

インストールはgemを使います。

$ gem install unicorn

unicornの設定

railsアプリケーションのconfigディレクトリの配下にunicorn.rbというファイルを作成します。
以下は最低限の設定しかしていませんが、ここにlogファイルの書き出し先とかタイムアウトとか設定することができます。
4行目、5行目に記述されているsockファイルやpidファイルについては自動に生成られるしいのでクライアントが作成する必要はありません。

pidファイルやsockファイル用のディレクトリを生成します。

$ mkdir /var/run/unicorn
$ chmod 777 /var/run/unicorn

unicornの起動

unicornの起動は以下のコマンドです。以下のコマンドはデーモンモードとしてバックグラウンド(-D)で起動させます。
また、環境はdevelopment(-E)とします。

$ unicorn_rails -c /home/railsapp/config/unicorn.rb -E development -D


Nginx

Nginxとは

軽量・高速のwebサーバーです。エンジンエックスと読むらしいです。最近、シェアが伸び初めてきているみたいで注目のwebサーバーだそうです。
アーキテクチャとかもっと詳しいことを知りたい方は以下を参考にしてください。

Nginxとは

Nginxのインストール

$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
$ sudo yum install -y nginx

これでインストールは終了です。確認するにはNginxサーバを動かします。

$ sudo service nginx start

起動できたらプラウザで確認すると下のような画面が表示されます。

Nginxの設定

/etc/nginx/conf.dの直下にアプリの設定ファイルを作成する。

Nginxの起動

ここまでできたらNginxを再起動する

$ service nginx restart

参考にさせていただいたサイト

CentOS 6.3にRails実行環境を構築する(Nginx+Rails+Unicorn+PostgreSQL)
CentOS6で最新版のnginxをyumでインストールする
UbuntuでNginxとUnicornを使いRailsアプリを動かす
[開発環境] さくらVPS 開発環境編 (Rails+nginx+unicorn)