バーチャルホスティングとTomcat
目次
前提条件
このハウツーでは、ren
と stimpy
の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 以下のディレクトリ構造は、互いに重複しないように注意してください。
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 要素の他の属性については、設定ドキュメントを参照してください。