虚拟主机和 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 元素的其他属性。

Webapps 目录

为每个虚拟主机创建目录

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/

每个主机的默认值

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

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

更多信息

请参阅配置文档以了解Context元素的其他属性。