tomcatで一つのアプリを複数のバーチャルホストで配信する

普通こんなことしないとは思うんですけど。

tomcatにアプリを二つ以上乗っけて、かつ一方のアプリは複数のドメインで配信する方法です。

たとえば、tm8r.jpはwebbappsにあるアプリが処理、
tm8r.com、tm8rhoge.com、tm8rfuga.comはwebapps2にあるアプリが処理したい場合。

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false">
</Host>
<Host name="tm8r.com" appBase="webapps2"
unpackWARs="true" autoDeploy="false">
  <Alias>tm8rhoge.com</Alias>
  <Alias>tm8rfuga.com</Alias>
</Host>

こんな感じでAliasを定義してやれば実現出来るもよう。
はじめてつかった。

tm8r.jpは明示的に定義されてないのでlocalhostの設定を参照し、
それ以外の明示的に指定されているドメインはtm8r.comの方を参照します。

tm8rhoge.comとtm8rfuga.comをそれぞれHostに書いてappBaseにwebapp2を指定しても実現できるっちゃできるんですが、書いた分だけアプリがデプロイされてしまうのでこんな感じに。
もっといい方法あったりするのだろうか。とりあえず実現できたのでよいとする。

スポンサーリンク