假设
对于本操作方法,假设有一个开发主机,它有两个主机名,即 ren 和 stimpy。
还假设一个 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 下的目录结构不应相互重叠。
有关元素的其他属性,请参阅 Engine 和 Host 配置文档。
Webapps 目录
为每个虚拟主机创建目录:
mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyapps
配置上下文
常规
上下文通常位于 appBase 目录下。例如,要在 ren
主机中将 foobar
上下文部署为 war 文件,
请使用 $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/任
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.default
和 web.xml.default
的文件中指定新值,
来覆盖 conf/context.xml
和 conf/web.xml
中的默认值。
按照前面的示例,可以使用 $CATALINA_HOME/conf/Catalina/ren/web.xml.default
自定义部署在名为 ren
的虚拟主机中的所有 Web 应用程序的默认值。
更多信息
有关元素的其他属性,请参阅配置文档 Context 。