Paste:URLMap で VirtualHost
Paste の URLMap を利用すると VirtualHost と同じようなことができる。
[DEFAULT] debug = false email_to = foo@example.com smtp_server = localhost error_email_from = foo@example.com [server:main] use = egg:Paste#http host = 0.0.0.0 port = 5000 [composite:main] use = egg:Paste#urlmap domain 127.0.0.1 port 5000 = main-app domain main.example.com port 5000 = main-app domain dev.example.com port 5000 = debug-app domain pony.example.com port 5000 = debug-app [composite:main-app] use = egg:Paste#urlmap / = myapp /blog = blogapp [app:myapp] use = egg:MyApp#main ... [app:blogapp] use = egg:BlogApp#blog ... [app:dev-app] use = main-app debug = true [app:pony] use = main-app filter-with = egg:Paste#pony
Paste Deploy のマニュアル に載っていなかったので、これまで domain や port オプションが使えることに気付かなかった。
余談
全く同じ Pylons アプリケーションを、DB 設定や data ディレクトリ設定のみ変えて、複数動かしたい。ハードウェア資源をできる限り有効活用したいのだけれども、上記構成だとたいしてメモリの節約にはならない。かと言って、 pylons.config オブジェクトはアプリケーションの初期化時に一度だけ作られるので、安易には書き換えられない(特に SQLAlchemy 周りで注意が必要)。1つの Pylons アプリで複数サイトを動かすには、 Dynamic に DB 設定や data ディレクトリ設定を変える仕組みをもう少し掘り下げて考える必要がありそうだ。
Posted by id:junya_hayashi