20080106

WEBrickとPoundを使った代替手段の検討

2007-02-22 - 福島でRailsを使って仕事を頑張る計画:

Mongrelの場合、--prefixを使えば、アプリケーションの配置を、サイトのルートディレクトリ以外に行える。例えば、--prefix /hogeを付けて起動すると、http://www.fuga.org/hogeでアクセスできる。そのため、一つのサイトで複数のアプリケーションを運用することができる。しかし、WEBrickの場合、--prefixに相当するオプションが無かったため、一つのサイトで複数のアプリを運用することはできないと思っていた。

ところが、リンク先の記事で述べているように、config/environment.rbActionController::AbstractRequest.relative_url_root = "/hoge"を付加すれば良いことが分かった。

一方、リバースプロキシとしてのPoundだが、サイト名ベースのバーチャルホストの例は見つかるのだが、ディレクトリによって呼び出すサービスを変える例が見つからなかった。そこで、いろいろ試してみた。その結果、次のようにすると、良いことが分かった。


ListenHTTP
        Address 127.0.0.1
        Port    3002

        Service
                URL     ".*/sadayuki.*"
                BackEnd
                        Address 127.0.0.1
                        Port    3000
                End
                BackEnd
                        Address 127.0.0.1
                        Port    3001
                End
        End
        Service
                URL     ".*/neko.*"
                BackEnd
                        Address 127.0.0.1
                        Port    3003
                End
        End
End

RLで転送先を変更できる。ただし、URLのパターンは、私が正規表現について良くわかっていないのでかなりいい加減だ。うまくパターンを作れれば、現在私が行っている運用は実現できそうだ。Poundの設定は簡単なので、これでもいいかなとも思う。

でも、WEBrickとMongrelを比べると、やはりMongrelの方が数倍のオーダーで速い。やっぱりMongrelの開発を継続して欲しい。が、我侭かな。

s webrickとpoundを使った代替手段の検討

f markdown

u 1b70d792-6aef-4412-a627-4100837c91c1