仮想ホスティングと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 コンテキストを ren ホストに war ファイルとしてデプロイするには、$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属性を表していることに注意してください。

次に、デフォルトのウェブアプリケーションについては、以下を追加します

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

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

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 という名前のファイルで新しい値を指定することで上書きできます。

以前の例に倣って、ren という名前の仮想ホストにデプロイされるすべてのウェブアプリケーションのデフォルトをカスタマイズするには、$CATALINA_HOME/conf/Catalina/ren/web.xml.default を使用できます。

さらに詳しい情報

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