Virtual Hosting and Tomcat
Table of Contents
Assumptions
      For the sake of this how-to, assume you have a development host with two
      host names, ren and stimpy. Let's also assume
      one instance of Tomcat running, so $CATALINA_HOME refers to
      wherever it's installed, perhaps /usr/local/tomcat.
    
Also, this how-to uses Unix-style path separators and commands; if you're on Windows modify accordingly.
server.xml
      At the simplest, edit the Engine portion
      of your server.xml file to look like this:
    
<Engine name="Catalina" defaultHost="ren">
    <Host name="ren"    appBase="renapps"/>
    <Host name="stimpy" appBase="stimpyapps"/>
</Engine>Note that the directory structures under the appBase for each host should not overlap each other.
Consult the configuration documentation for other attributes of the Engine and Host elements.
Webapps Directory
Create directories for each of the virtual hosts:
mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyappsConfiguring Your Contexts
General
Contexts are normally located underneath the appBase directory. For
       example, to deploy the foobar context as a war file in
       the ren host, use
       $CATALINA_HOME/renapps/foobar.war. Note that the
       default or ROOT context for ren would be deployed as
       $CATALINA_HOME/renapps/ROOT.war (WAR) or
       $CATALINA_HOME/renapps/ROOT (directory).
      
NOTE: The docBase for a context should never be
        the same as the appBase for a host.
      
context.xml - approach #1
        Within your Context, create a META-INF directory and then
        place your Context definition in it in a file named
        context.xml. i.e.
        $CATALINA_HOME/renapps/ROOT/META-INF/context.xml
        This makes deployment easier, particularly if you're distributing a WAR
        file.
      
context.xml - approach #2
        Create a structure under $CATALINA_HOME/conf/Catalina
        corresponding to your virtual hosts, e.g.:
      
mkdir $CATALINA_HOME/conf/Catalina/ren
mkdir $CATALINA_HOME/conf/Catalina/stimpy
        Note that the ending directory name "Catalina" represents the
        name attribute of the
        Engine element as shown above.
      
Now, for your default webapps, add:
$CATALINA_HOME/conf/Catalina/ren/ROOT.xml
$CATALINA_HOME/conf/Catalina/stimpy/ROOT.xmlIf you want to use the Tomcat manager webapp for each host, you'll also need to add it here:
cd $CATALINA_HOME/conf/Catalina
cp localhost/manager.xml ren/
cp localhost/manager.xml stimpy/Defaults per host
        You can override the default values found in conf/context.xml
        and conf/web.xml by specifying the new values in files
        named context.xml.default and web.xml.default
        from the host specific xml directory.
Following our previous example, you could use
        $CATALINA_HOME/conf/Catalina/ren/web.xml.default
        to customize the defaults for all webapps that are deployed in the virtual
        host named ren.
      
Further Information
Consult the configuration documentation for other attributes of the Context element.
