バーチャルホスティングとTomcat

目次

前提条件

このハウツーでは、renstimpy の2つのホスト名を持つ開発ホストがあると仮定します。 また、Tomcatのインスタンスが1つ実行されていると仮定するため、$CATALINA_HOME はインストールされている場所(おそらく /usr/local/tomcat)を指します。

また、このハウツーではUnixスタイルのパス区切り文字とコマンドを使用しています。Windowsを使用している場合は、適宜変更してください。

server.xml

最も簡単な方法として、server.xml ファイルの Engine 部分を次のように編集します。

<Engine name="Catalina" defaultHost="ren">
    <Host name="ren"    appBase="renapps"/>
    <Host name="stimpy" appBase="stimpyapps"/>
</Engine>

各ホストの appBase 以下のディレクトリ構造は、互いに重複しないように注意してください。

Engine 要素と Host 要素の他の属性については、設定ドキュメントを参照してください。

Webアプリケーションディレクトリ

各バーチャルホストのディレクトリを作成します。

mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyapps

コンテキストの設定

全般

コンテキストは通常、appBaseディレクトリの下にあります。たとえば、foobar コンテキストをwarファイルとして ren ホストにデプロイするには、$CATALINA_HOME/renapps/foobar.war を使用します。 ren のデフォルトまたはROOTコンテキストは、$CATALINA_HOME/renapps/ROOT.war(WAR)または $CATALINA_HOME/renapps/ROOT(ディレクトリ)としてデプロイされることに注意してください。

注:コンテキストの docBase がホストの appBase と同じになってはいけません。

context.xml - 方法 #1

コンテキスト内に META-INF ディレクトリを作成し、その中にコンテキスト定義を context.xml という名前のファイルに配置します。 つまり、$CATALINA_HOME/renapps/ROOT/META-INF/context.xml です。 これにより、特にWARファイルを配布する場合に、デプロイメントが容易になります。

context.xml - 方法 #2

バーチャルホストに対応する $CATALINA_HOME/conf/Catalina の下に構造を作成します。例:

mkdir $CATALINA_HOME/conf/Catalina/ren
mkdir $CATALINA_HOME/conf/Catalina/stimpy

末尾のディレクトリ名 "Catalina" は、上記のように Engine 要素の name 属性を表していることに注意してください。

次に、デフォルトのWebアプリケーションを追加します。

$CATALINA_HOME/conf/Catalina/ren/ROOT.xml
$CATALINA_HOME/conf/Catalina/stimpy/ROOT.xml

各ホストでTomcatマネージャーWebアプリケーションを使用する場合は、ここにも追加する必要があります。

cd $CATALINA_HOME/conf/Catalina
cp localhost/manager.xml ren/
cp localhost/manager.xml stimpy/

ホストごとのデフォルト

conf/context.xml および conf/web.xml にあるデフォルト値をオーバーライドするには、ホスト固有のxmlディレクトリから context.xml.default および web.xml.default という名前のファイルに新しい値を指定します。

前の例に従って、$CATALINA_HOME/conf/Catalina/ren/web.xml.default を使用して、ren という名前のバーチャルホストにデプロイされているすべてのWebアプリケーションのデフォルトをカスタマイズできます。

詳細情報

Context 要素の他の属性については、設定ドキュメントを参照してください。