世界線航跡蔵

Mad web programmerのYuguiが技術ネタや日々のあれこれをお送りします。

2009年05月25日

passengerとmod_autoindex

Passengerを使っていて、ディレクトリのautoindexが効かなくて困った。

Passengerもいくらか枯れてきている感じなので先日試したところ、確かに管理が楽なので最近気に入っている。ちょっと前まではRailsアプリケーションのデプロイと言えばmongrel+mod_proxy_blancerだったのだけれども、最近はpassengerの人気が上がっている。

passenger人気の理由はいくつかある。

  • Rackという汎用の仕組みをサポートしていること。だから、passengerがあればrailsだけでなくmerbもsinatraも動く。
  • デプロイが楽なこと。SSHでサーバーに入ってアプリケーションサーバーを再起動、とかやらなくて良い。まーこれはcapistranoやvladでデプロイしている私にはあまり関係ないけど、PHPアプリケーションやJava EE warの「ディレクトリにファイルを置くだけ」という手軽さを持ち込んだのは裾野を広げる意味でRailsにとって大きな一歩だ。
  • インスタンスの数の自動調整をすること。負荷に応じてアプリケーションサーバーのプロセス数を自動的に調節し、死活管理してくれる。
    • Railsフレームワークの弱点の1つはやっぱり、プロセスの起動に時間が掛かることなんだけれども、フレームワークとアプリケーションをロードした状態でプロセスを保存しておいてそこからforkさせるので、インスタンスを増やすのにはそんなに時間は掛からない。
      • まー、時間が掛かると言ったって、もともとPerl/Python/PHPのフレームワークとそんなに違う訳ではないし、Java EEアプリケーションサーバーよりは100倍ましなんだけど。

のだけれども、細かなところで不満はある。autoindexが効かなくて困った。マニュアルには、こう書いてある。

In places where PassengerHighPerformance is turned on, mod_rewrite rules will likely not work. mod_autoindex (the module which displays a directory index) will also not work.

だから、PassengerHighPerformance modeをonにしなければautoindexは効きそうなんだけど、Aliasと組み合わせると駄目なんだろうか? ともあれ、Aliasを切ったディレクトリに対して

PassengerEnabled off

したところ、autoindexでディレクトリインデックスが表示されるようになった。

Passengerのソースコードは最初に出たときにざっと眺めただけなのだけれども、mod_proxy_blancerを使うのと違ってApacheパイプラインの中のどのステージでなにをやってるのかいまいち把握できていないのがたまにもどかしい。先日も、passengerの出力にfilterを効かせるにはどうしたら良いのか悩んで、結局よく分からなかった。やっぱり、そろそろソースを読む頃合いだろう。

トラックバック

http://yugui.jp/articles/829/ping

現在のところトラックバックはありません

コメント

blog comments powered by Disqus

ご案内

前の記事
次の記事

タグ一覧

過去ログ

  1. 2016年07月
  2. 2016年01月
  3. 2015年09月
  4. 2015年08月
  5. 過去ログ一覧

フィード

フィードとは

その他

Powered by "rhianolethe" the blog system