nginx + Unicorn で Rails3 を動かす
特にテーマは決めずに各々が好き勝手に開発する感じ。 @tacke_jpさんとかマイコンのスイッチ押すとTwitterに「へぇ」と呟くへぇボタン(懐)を作ってた。 ゆるい。
そんな中自分は何をしていたかというと、nginx + Unicorn + Rails3 の環境構築。 Apacheもいいけどさ、もっとほら、色々使えたほうが楽しいじゃん?ってことで。
下準備
今回はMacさんのVirtualBoxにCentOS6.3を乗っけて動かす。
まずは、後々必要になるっぽいライブラリを色々インストール。
# yum install gcc gcc-c++ openssl-devel zlib-devel pcre-devel sqlite-devel
ネットワークとかの設定は割愛。 あとは iptables の設定弄って80番ポートを空けておくくらいかな。
これで準備完了。
rbenv, ruby-build を導入
複数バージョンのRubyを管理できるツールrbenvを入れる。 別にrvmでもよかったのだけど、こっちのが楽そうだったので。
ぶっちゃけこの記事の通りにやったら出来た( ´_ゝ`) 詳細とか書いてもただの丸コピになってしまうので割愛。
ただひとつ、sudoersを弄るときにsecure_pathの行をコメントアウトしないとsudoしてもPATHが引き継がれなかったので注意。
Railsインストール
Railsを動かすときに必要なあれこれをインストール
# gem install execjs libv8 therubyracer sqlite3-ruby rdoc
今回JavaScriptエンジンはtherubyracerを使ってるけど、Node.jsがいい人はそっちをインストール。
Railsをインストール
# gem install rails # rbenv rehash
動作確認
サンプルアプリケーションを作って動作確認。
$ cd (サンプルアプリケーションを設置したい場所) $ rails new sample $ cd sample $ sudo rails s -p 80 ```` ブラウザから確認 → (σ・∀・)σ 動いた! 動作確認したら[Ctrl+C]でRailsサーバを止める。 ## nginxをインストール 最近流行りのWebサーバ、nginx。 でも今回はUnicornが色々やってくれるのでnginxにはリバースプロキシだけやってもらう。
yum install nginx
vi /etc/nginx/nginx.conf
(設定ファイルを編集する)
service nginx start
chkconfig nginx on
/etc/nginx/nginx.conf
user nginx; worker_processes 2; #マシンのプロセッサの数
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events { worker_connections 1024; }
http { upstream unicorn-sample { server unix:/tmp/unicorn-sample.sock; #Unicornのソケット } server { listen 80; server_name uhyohyo90.com; #サーバ名 location / { if (-f $request_filename) { break; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://unicorn-sample; #upstramで指定した名前 } } }
## Unicornインストール UnicornがRackアプリケーションサーバだからRailsが動く、っていうのはわかるんだけど、 そもそもRackアプリケーションとはなんぞやというのがまだよくわかってない(;´∀`) ### インストール
gem install unicorn
### 設定ファイル記述 さっき作ったRailsのサンプルアプリケーションのディレクトリに移動して、config/unicorn.rbを書く。
listen '/tmp/unicorn-sample.sock' pid '/tmp/unicorn-sample.pid'
### Unicorn起動!! (ノ´∀`)ノ
$ sudo unicorn_rails -c config/unicorn.rb -D
なんかうまくいかんときは rbenv rehash とか bundle install とかやってみるとできるかも ### 動作確認 ブラウザからアクセスしてRailsのWelcomeページが表示されれば成功( ´ー`) ## おしまい 文章にすると短いけど、これをエラーと格闘しながらやったら丸一日かかった... 時間が余ったら簡単なアプリケーションでも作ろうかと思ってたけどそんな余裕あるわけなかった さて、次はRailsの使い方を覚えねば(`・ω・´)