仮想ホスティングと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
コンテキストを 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 要素のその他の属性については、設定ドキュメントを参照してください。