日々之迷歩

世の中わからんことだらけ

ITが複雑で難しくなっていく様に翻弄される日々です。微力ながら共著させていただいた「シェル・ワンライナー160本ノック」をよろしくお願い申し上げます。

時代は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対応もお願いしたいなあ。