« TracのTicket WorkFlow | Main | redMine&Apache(Proxy その2) »

2007.05.13

redMine&Apache(Proxy)

 redMineをApacheと組み合わせる方法としては、FastCGIを使う以外にもApacheをリバースプロキシとして使用するというのがあります。この方法を利用すると、WEBrick等の別のhttpサーバ上でRubyアプリケーションを動作させながら、外部に公開するのはApacheだけという使い方ができます(なお、ここでは同一端末上で実行していると仮定します)。

 httpd.confの

#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so

のコメントを解除。

 Apacheのリクエストを全てWEBrickに転送するのであれば、

ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

の2行を適当な場所に書いておけばいいのですが、これをやってしまうとSubversion等との併用を行うことができなくなってしまいます(http://localhost:8080/svn/Hogeといったリクエストも全てWEBrickに転送されてしまうので)。なので、汎用性(?)を考えるとNameVirtualHostを利用して、redMine用のホスト名を別途定義してしまうのが楽かと。

 例えば、http://redmine:8080/のリクエストをWEBrickに転送するのであれば、

NameVirtualHost *:8080
<VirtualHost *:8080>
  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot C:/apache2/htdocs
  ServerName testsvr
  ErrorLog logs/testsvr-error_log.log
  CustomLog logs/testsvr-access_log.log common
</VirtualHost>
<VirtualHost *:8080>
  ServerAdmin webmaster@dummy-host.example.com
  DocumentRoot C:/apache2/htdocs
  ServerName redmine
  ErrorLog logs/redmine-error_log.log
  CustomLog logs/redmine-access_log.log common
  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/
</VirtualHost>

といった感じでしょうか。

 アクセスするクライアント側のhostsファイルにredmineを登録して名前解決できるようにしておく必要がありますが、http://testsvr:8080/なら通常のApache側の処理(Subversionリポジトリへのアクセス等)を、http://redmine:8080/ならWEBrick等でredMineの処理を行うことができるようになります。もちろん、WEBrickを起動しておく必要はありますが。

 ちなみに、InstantRailsに同梱されているApache用のhttpd.confにおいても、Proxyで処理を振り分けているようです。

 WEBrick側でredMineのルートURLを変更することができると、ホスト名を分ける必要はないんですけどねぇ・・・。

【補足】
 僕の環境ではFastCGIを導入して以降、WEBrickで動作させた場合を含めてruby.exeが頻繁に落ちる(WEBrickの場合、Segmentation faultが発生する)ので、RubyForApacheをアンインストールすると安定して動作するようになりました。Apache/Ruby/mod_fastcgiの各コンポーネント間のバージョンのかねあいなんでしょうかね?
 ただ、Proxyを使用するようにすれば、とりあえずFastCGIを使用しなくてもまともなレスポンスで稼働させることができそうな感じです。

|

« TracのTicket WorkFlow | Main | redMine&Apache(Proxy その2) »

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/14988461

Listed below are links to weblogs that reference redMine&Apache(Proxy):

» redMine&Apache(Proxy その2) [気の向くままに・・・]
 mod_proxy_htmlを用いてサーバからブラウザへのレスポンス内のURL [Read More]

Tracked on 2007.05.14 at 09:15

» redMine&Apache(Proxy その3) [気の向くままに・・・]
 うつうつな日々 redMine Apacheで稼動!?? その2を参考に、Ap [Read More]

Tracked on 2007.05.18 at 10:15

« TracのTicket WorkFlow | Main | redMine&Apache(Proxy その2) »