虚拟主机与Tomcat

目录

假设

为了本指南的目的,假设您有一个开发主机,它有两个主机名:renstimpy。我们还假设有一个Tomcat实例正在运行,因此 $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 下的目录结构不应相互重叠。

有关 EngineHost 元素的其他属性,请查阅配置文档。

Web应用目录

为每个虚拟主机创建目录

mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyapps

配置上下文

概述

上下文通常位于 appBase 目录下。例如,要在 ren 主机中以war文件形式部署 foobar 上下文,请使用 $CATALINA_HOME/renapps/foobar.war。请注意,ren 的默认或ROOT上下文将部署为 $CATALINA_HOME/renapps/ROOT.war (WAR) 或 $CATALINA_HOME/renapps/ROOT (目录)。

注意:上下文的 docBase 绝不应与主机的 appBase 相同。

context.xml - 方法 #1

在您的Context中,创建一个 META-INF 目录,然后将您的Context定义放置在该目录下一个名为 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/

每个主机的默认设置

您可以通过在主机特定的XML目录中,在名为 context.xml.defaultweb.xml.default 的文件中指定新值,来覆盖 conf/context.xmlconf/web.xml 中的默认值。

按照我们之前的示例,您可以使用 $CATALINA_HOME/conf/Catalina/ren/web.xml.default 来为部署在名为 ren 的虚拟主机中的所有web应用自定义默认设置。

更多信息

有关 Context 元素的其他属性,请查阅配置文档。