# The Apache Tomcat 5.5 Servlet/JSP Container

Links

- Docs Home
- FAQ

User Guide

- 1) Introduction
- 2) Setup
- 3) First webapp
- 4) Deployer
- 5) Manager
- 6) Realms and AAA
- 7) Security Manager
- 8) JNDI Resources
- 9) JDBC DataSources
- 10) Classloading
- 11) JSPs
- 12) SSL
- 13) SSI
- 14) CGI
- 15) Proxy Support
- 16) MBean Descriptor
- 17) Default Servlet
- 18) Clustering
- 19) Load Balancer
- 20) Connectors
- 21) Monitoring and Management
- 22) Logging
- 23) APR
- 24) Virtual Hosting

Reference

- Release Notes
- Apache Tomcat Configuration
- JK 1.2 Documentation
- Servlet API Javadocs
- JSP API Javadocs

Apache Tomcat Development

- Building
- Changelog
- Status
- Developers
- Functional Specs.
- Apache Tomcat Javadocs
- Apache Jasper Javadocs
- Architecture

# The Apache Tomcat 5.5 Servlet/JSP Container

## Virtual Hosting and Tomcat

Table of Contents

> - Assumptions
> - server.xml
> - Webapps Directory
> - Configuring Your Contexts
>   1. General
>   2. context.xml - approach #1
>   3. context.xml - approach #2
>   4. Further Information

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/stimpyapps

Configuring 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.xml

> > If 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/

> Further Information

> > Consult the configuration documentation for other attributes of the Context element.

Copyright © 1999-2011, Apache Software Foundation