« 05.11 目の前にパトカーが | ココ | 05.16 ついにやってきた »

2009年5月13日

Rails 2.3 on Mongrel + apache de prefix  このエントリーを含むはてなブックマーク 

prefixを付けてrailsプロジェクトを実行したいというのは、1つのサーバー内で複数のプロジェクトを構築するうえで必要になることなんですが、rails2.3になってから、Rackが使われるということもあり以前のような方法でprefixを使うことができなくなったんですよ…。

mongrelとapacheをつなげて使うときにはリバースプロキシを使ってやるのはRedmineを使えるようにするときに覚えたけど、Rails2.3でやるときには少々事情が異なってくる。というのも、prefixの扱いが変わったから。

Rails2.3になって、mongrel_cluster.ymlでのprefix指定をやめてActionController::Base.relative_url_rootに直接prefixを代入することになったけど、それをすると静的ファイルが読めなくなるという問題が起こるんよね…。Rackになってチンプンカンプンなことばっかり。WSGIとシステム的には同じになるとは分かってても…ねぇ。

Rack::Staticなんてあるからこれを使うもんやとばっかり思ってたから、全然解決せず困り果ててた。究極routes.rbにマッピングというのも…とは思ってやったものの、MimeTypeが原因でCSSがFirefoxでは適用できないという状態に。IEやとapplication/octet-streamでもちゃんと中身を見て解釈してくれるんですが。昨日あたりに、Rack::Staticのソースコードと実際のPATH_INFOを見てようやく解決の糸口が。

ProxyRequests Off

<Proxy http://ip.address/prefix/*>
Order deny,allow
Allow from all
</Proxy>

#Rails 2.2まで ProxyPass /prefix http://localhost:3002/prefix
#Rails 2.2まで ProxyPassReverse /prefix http://localhost:3002/prefix
ProxyPass /prefix http://localhost:3002
ProxyPassReverse /prefix http://localhost:3002

ProxyPassかと。Rails2.2までのprefix指定やと"/prefix"が付いてないとHTMLにちゃんとURLを書いてくれなかったから(そのためにRedmineの画面が味気ないことになってしまった)、ないとあかんもんやと思ってたら、2.3では付けなくてよくなったんやね。これでRack::Staticなんか指定しなくてもちゃんと静的ファイルを取りにいってくれる。めでたしめでたし。

By ただ at 23:31 カテゴリー ; プログラミングとか

« 05.11 目の前にパトカーが | 05月の記事 | 05.16 ついにやってきた »




トラックバック

このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/1414