« 開発速度 | Main | USBメモリでブートするUbuntu9.04 »

2009.05.30

mod_proxy_balancerの振り分けをhttpで

 Apache2.2以降は、mod_proxy_balancerやmod_proxy_ajpで簡単に複数台のTomcatと連携できるようになりました。

 これらのmoduleを組み合わせる場合は、ブラウザから送られてきたリクエストを、Proxyディレクティブでbalancerプロトコルに変換し、balancerプロトコル側でさらにajpに転送といった感じでの指定が一般的(参考:Apache2.2とTomcatでロードバランサー)。

 ただ、Apache/Tomcat間にFirewallが存在すると、時々ajpのエラーが発生することもあるようで(これ自体、そもそも何故エラーが発生しているのか、どういう回避方法があるのか不明なのですが)、試しに、ajpではなくhttpでApache⇒Tomcatへ転送してみました。

 すると・・・Redirectの部分で、見事に大ハマリ(苦笑)。リダイレクトされた場合、次のリクエストがBalancerMemberのところで指定したホスト名になってしまうため、PRGで画面遷移を行っているTeedaなどは実質使用不可に・・・。

BalancerMember http://localhost:8080/Test route=Tomcat1

 なんて感じで指定していると、リダイレクト時は、http://localhost:8080/でアクセスしようとするため、接続先不明と言うことに・・・(当然ながら、localhost:8080で待ち受けているものがあればそこに接続してしまいます)。

#そもそも設定方法を間違えているのかなぁ・・・。

|

« 開発速度 | Main | USBメモリでブートするUbuntu9.04 »

Java」カテゴリの記事

Comments

単に、ProxyPassReverseの設定が抜けていたことが原因でした(^^;

ProxyPass balancer://.... とあわせて、ProxyPassReverse http://..... の指定を追加することで問題なく動作するように(指定する場所に注意が必要ですが)。

Posted by: syo | 2009.06.05 11:24

Post a comment



(Not displayed with comment.)


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



TrackBack


Listed below are links to weblogs that reference mod_proxy_balancerの振り分けをhttpで:

« 開発速度 | Main | USBメモリでブートするUbuntu9.04 »