c/fe

http://d.hatena.ne.jp/uzulla から移行しました。

Tomcat-Apacheのmod_jk2による連携でハマった箇所

mod_JK2コネクターで、ワンApache-マルチTomcat環境を構築し、ApacheにVirtualHostを設定して、worker2.propertiesにもVirtualhostを設定したときの話。
※具体的にはこんな風に書いたとき

[channel.socket:localhost:8009]
host=localhost
port=8009
group=tomcat-a
[channel.socket:localhost:8019]
host=localhost
port=8029
group=tomcat-b

[uri:hostname-a/*.jsp]
group=tomcat-a
[uri:hostname-b/*.jsp]
group=tomcat-b

※apacheにはIP Based VirtualHostを設定

どうしてもコネクタを経由してくれない様な場合にはhttpd.confのServerNameを疑った方が良い。jk2コネクタのバーチャルホストはここをみて振り分けをしているらしい。
特にIPベースでのバーチャルホストだと、ブラウザで指定されたサーバーネームがまちがっていても「つながってしまう」ので気付かない。(DomainNamebasedなVirtualHostだとそもそもつながらんので気付く)
まあ、全部が正しく設定されていれば間違うはずはないんだけれどねー。


しかし、ということはだ、想像できるトリッキーな振り分け(Tomcatドメインをみて振り分けるような)は簡単に出来ないって事なんだなあ。まあApacheにもTomcatにも全部バラバラに書けばいいんだけれど、なかなか手間だぞ(勿論JK2のVirtualHostをつかわなければ大丈夫)。