ローカル開発環境のweb serverをthinからnginx + passengerにしてみた
Railsの重いアプリを動かしている際に、開発環境が遅かったので、使っていたthinからnginx + passengerに変えてみました。 rack-mini-profilerで測った結果、2倍位速くなった感じ。
時々nginx + passenger の組み合わせはやるんだけど手順を忘れがちなので、今回はメモしておくことにします。
参考にしたのは Local Rails Development with Nginx, Passenger 4, and Ruby 2 on Mac OS X | The Wayward Traveller だった気がするんだけど、色々つまみ食い的に読みながらやったので他にもあったはず...
前提
1. passengerを入れる
% brew install passenger
2. nginxを入れる
% brew install nginx --with-passenger
3. /usr/local/etc/nginx/nginx.confを編集する
http{ 内にpassenger_rootとpassenger_rubyを追加
http { include mime.types; default_type application/octet-stream; passenger_root /usr/local/opt/passenger/libexec; passenger_ruby /Users/{username}/.rbenv/versions/{your ruby version}/bin/ruby;
http{ 内にserver{} を追加、root 〜 access_logには自分が開発しているrails appの各ディレクトリを指定する
server { rack_env development; listen 8080; server_name {yourapp.local.com}; root /Users/{username}/project/{yourrailsapp}/public; access_log /Users/{username}/project/{yourrailsapp}/log/nginx_access.log; error_log /Users/{username}/project/{yourrailsapp}/log/nginx_error.log; passenger_enabled on; }
4. /etc/hostsを編集する
- server{}内に追加したserver_nameを指定する
127.0.0.1 {yourapp.local.com}
5. nginxを起動し、動作確認
nginxを起動
% nginx
ブラウザでhttp://yourapp.local.com:8080にアクセス => 自分のRailsアプリが起動していることを確認する