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の設定、どこかにまとまった資料とかないかしら。
できれば日本語か英語で・・・