nginx + passengerで超適当なRails環境を作る
- 2010/03/18 ディレクトリを分けた場合のパス指定が間違っていたので修正
自分専用redmineを動かしているサーバが貧弱すぎて、Apache+passengerだと眠くなるくらい遅くなる。
nginxなら少しは軽くなるかなーとか適当に考えて入れてみる。
使った環境:
- CPU: Atom 230
- Mem: 2GB
Passengerを入れる
$sudo gem install passenger
nginxの依存モジュールを入れておく
$ sudo apt-get install libpcre3-dev libssl-dev
nginxモジュールを入れる
$ passenger-install-nginx-module
nginxのソースコードのディレクトリと、インストール先のディレクトリを指定。
configureオプションを指定すると、nginxがmakeされる。
nginx.confの編集
nginxモジュールインストール完了後に設定例が出てくるので、その通りに追記。
http { ... passenger_root /home/user/.gem/ruby/1.8.7/gems/passenger-2.2.4; passenger_ruby /local/ruby/1.9.2/bin/ruby1.9; ... server { listen 80; server_name example.com; root /local/nginx/html/hoge; passenger_enabled on; passenger_base_uri /hoge; # auth_basic "Restricted"; # auth_basic_user_file htpasswd; } }
通常のディレクトリとRailsのディレクトリをServer Nameで分ける
普通のページとRailsアプリを同時に動かして、どちらにもbasic認証をかけておきたい!
てことで設定変更。
locationの指定に気づくまでに少しかかった。
http { ... passenger_root /home/user/.gem/ruby/1.8.7/gems/passenger-2.2.4; passenger_ruby /local/ruby/1.9.2/bin/ruby1.9; ... server { listen 80; server_name example.com; root html/hoge; location / { auth_basic "Restricted"; auth_basic_user_file htpasswd; } } server { listen 80; server_name example2.com; root html/example2.com; passenger_enabled on; passenger_base_uri /hoge2; rails_env production; location / { passenger_enabled on; auth_basic "Restricted"; auth_basic_user_file htpasswd; } } }
nginxの設定、どこかにまとまった資料とかないかしら。
できれば日本語か英語で・・・