RailsをApacheとMongrel_clusterで動かす(上級編)

前回までの中級編で残っていた課題から静的ファイルの課題が解決できたので、メモ。

静的ファイルをMongrelから返すのはいまいちなので、静的ファイルがhtdocs配下にあったら、Apacheから返して、無い場合にはMongrelから返す仕様にする。

環境は以下の通り

  • Apache2.2.11
  • Rails2.1.2
  • Mongrel_culster1.0.5
  • Mongrel1.1.5

前回のこっていた、mod_rewriteの設定を有効にして、以下の定義をhttpd.confに書いてみた。

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
RewriteRule (.*) $1 [L]

その上で、~/htdocs/bbs/のディレクトリを作って、RAILS_ROOT配下に置いてある3つのディレクトリのシンボリックリンクを作った(httpd.confにOptions FollowSymLinksの設定を許可しておくのを忘れないこと)

#ln -s RAILS_ROOT/public/images ~/htdocs/bbs/
#ln -s RAILS_ROOT/public/javascripts ~/htdocs/bbs/
#ln -s RAILS_ROOT/public/stylesheets ~/htdocs/bbs/

これで完成。mod_rewriteのがhtdocs配下にファイルをあることを発見したら直接処理できるようになって、mongrelの不可が下がるようになった。