時代はPassengerなのか?
Railsで作成したWEBアプリケーションの実行環境に何を使うのか?もしかしてWebrick?一応SSLも対応しているしいけちゃうのか?でもパフォーマンスや安定性の問題もあるし、80番や443番ポートで動かすにはroot権限が必要なので、やっぱり危険ですな。
Mongrelはパフォーマンスや安定性でWebrickより有利だと聞くが、SSLに非対応だしroot権限で動かす必要がある問題もクリアできない。
結局はApacheをリバースプロキシで動かして、後ろでMongrelを動かす構成が多いようだ。SSL対応もApache側で対応して、環境変数をMongrelに渡せる(らしい)ので問題なし。(厳密に言うと本当に問題無いのか?)
しかし私の場合は、結局Apache+Mongrelの構築はやったことが無い。最初からPassengerを使っている。PassengerはApacheに組み込むRails実行環境だが、このPassengerってなかなかいいのではないだろうか?今私が分かっている利点は以下のとおり。
- メモリを有効活用
- 静的コンテンツ(public以下)のダウンロード時の負荷軽減
- デプロイが簡単
アクセスが少ない時は、Railsアプリのインスタンスを減らしてくれる。また写真やFLV動画ファイルなどをpublic以下においてある場合は、Apacheだけが動くので負荷が軽い(はず)。またRailsプロジェクトをアップロードして、tmp/restart.txtファイルを置くだけで自動リロード。こりゃ便利!
勉強不足で分かってないが、Rackという仕組みで動いているようなのでRails以外でも応用可能らしい。Rubyist九州の10月定例会で、Passenger特集があるようだ!早速参加登録をした。
一つだけ困ったちゃんなのは、管理ツールがLinux前提のつくりのようで、FreeBSDだと動かない部分がある。FreeBSD対応もお願いしたいなあ。