Virtual Hosting and Tomcat

Table of Contents

Assumptions

为了这个方法,假设您有一个具有两个主机名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下的目录结构不应相互重叠.

有关引擎主机元素的其他属性,请查阅配置文档.

Webapps Directory

为每个虚拟主机创建目录:

mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyapps

Configuring Your Contexts

General

上下文通常位于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 - approach #1

在您的上下文中,创建一个META-INF目录,然后将您的上下文定义放在​​一个名为context.xml的文件中. 即$CATALINA_HOME/renapps/ROOT/META-INF/context.xml这使部署更加容易,尤其是在分发WAR文件时.

context.xml - approach #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管理器Webapp,则还需要在此处添加它:

cd $CATALINA_HOME/conf/Catalina
cp localhost/manager.xml ren/
cp localhost/manager.xml stimpy/

Defaults per host

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

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

Further Information

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

by  ICOPY.SITE