さくらvpsのUbuntu12.04にnginxとunicornをインストールしてローカル環境に作ったRailsアプリを手動でアップロードして表示させてみた。何となくユニコーンって名前が好きなので、unicornを使うことにした。

nginxインストール

nginxは本当は手動でインストールするのがいいんだろうけど、面倒なので

$ sudo aptitude install nginx

でインストール

unicornインストール

rubyとかbundlerとかが必要なので、無い場合はRuby on Railsを入れてみたに書いた通りにインストール。unicornはGemfileに

gem "unicorn"

と追記して

$ bundle install -path vendor/bundle

でインストール出来る。要らないかもしれないけどお約束のようにインストール後はrbenv rehashしておく。

nginxの設定

設定ファイルは最低限これくらい書いておけばよさげ

upstream unicorn-unix-domain-socket {
        server unix:/var/run/unicorn/unicorn_[app_name].sock fail_timeout=0;
}

upstream unicorn-tcp {
        server 127.0.0.1:8080;
}

server {
        listen 80;
        server_name http://hoge;

        root /path/to/app_root/public;

        access_log  /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        location / {
                proxy_pass http://unicorn-tcp;
        }
}

/var/run/unicornディレクトリは前もって作っておく。/tmpとかでも良さげなんだけど、どうなんだろう?

railsアプリのアップロード

適当にアップロード。rsyncで適当にやった。

unicorn起動

$ bundle exec unicorn_rails -D

-Dはデーモンとして起動。configファイルを指定する場合は、-c path/to/config.rbを指定する。

nginx起動

$ service nginx start

以上でrailsアプリが見れるようになる。