FC2ブログ

徒然さめざめ

思ったことを思ったときに思ったように

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

redmineのリポジトリブラウザとその他の画面を別プロセスに

redmineでmongrel_cluster を使っていて、マルチコアなCPUを使用しているなら
リポジトリの画面は別プロセスでやったほうが良い。

既存のプロジェクトをredmineに移行する際、
リポジトリを読み込ませる処理に負荷が高すぎて
他のviewの処理が滞ってしまうからだ。

とりあえずApache+Mongrel(cluster)を使用している人へのサンプルを置いておきます。

ProxyPassMatch を使って、repository へアクセスした際は 8081ポートで動いているプロセスへ飛ばします。
何番ポートへかは各cluster環境の設定で変わると思います。

とりあえず苦労したのは最初

ProxyPass / http://redmine.hogehoge.co.jp:8080/
ProxyPassMatch ^/(.*repository)$ http://redmine.hogehoge.co.jp:8081/$1

の順に書いていたせいでrepositoryの処理に行く前に、
ProxyPass / がすべてとっちゃうせいで設定が反映されなかったくらいだろうか。

あと、ProxyPassMatchの存在を知ったのも最近。
CentOS5で適用されたのは今年らしい。

httpdのバグ修正および機能拡張アップデート
http://www.jp.redhat.com/support/errata/RHBA/RHBA-2009-0185J.html

これでようやく高負荷から脱出できる!
#そもそも登録時だけなのでそんな頻繁に起こることじゃないけど。

# cat /etc/httpd/conf.d/redmine.conf
NameVirtualHost xxx.xxx.xxx.xxx:80
<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName xxx.xxx.xxx.xxx
ServerName redmine.hogehoge.co.jp
ServerAdmin webmaster@localhost
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from all
</Proxy>
ProxyPassMatch ^/(.*repository)$ http://redmine.hogehoge.co.jp:8081/$1
ProxyPassReverse ^/(.*repository)$ http://redmine.hogehoge.co.jp:8081/$1
ProxyPass / http://redmine.hogehoge.co.jp:8080/
ProxyPassReverse / http://redmine.hogehoge.co.jp:8080/
</VirtualHost>

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName redmine
RewriteEngine on
RewriteRule ^/(.*) http://redmine.hogehoge.co.jp/$1
</VirtualHost>

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://fmkt.blog65.fc2.com/tb.php/135-22dfbab3
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。