| # Apache Tomcat 7 Version 7.0.81, Aug 11 2017 |

Links Docs Home FAQ User Comments 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/TLS 13) SSI 14) CGI 15) Proxy Support 16) MBeans Descriptors 17) Default Servlet 18) Clustering 19) Load Balancer 20) Connectors 21) Monitoring and Management 22) Logging 23) APR/Native 24) Virtual Hosting 25) Advanced IO 26) Additional Components 27) Mavenized 28) Security Considerations 29) Windows Service 30) Windows Authentication 31) Tomcat's JDBC Pool 32) WebSocket Reference Release Notes Configuration Tomcat Javadocs Servlet Javadocs JSP 2.2 Javadocs EL 2.2 Javadocs WebSocket 1.1 Javadocs JK 1.2 Documentation Apache Tomcat Development Building Changelog Status Developers Architecture Functional Specs. Tribes | # Virtual Hosting and Tomcat
Table of Contents
Assumptions server.xml Webapps Directory Configuring Your Contexts General context.xml - approach #1 context.xml - approach #2 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.
Comments
Notice: This comments section collects your suggestions on improving documentation for Apache Tomcat. If you have trouble and need help, read Find Help page and ask your question on the tomcat-users mailing list. Do not ask such questions here. This is not a Q&A section. The Apache Comments System is explained here. Comments may be removed by our moderators if they are either implemented or considered invalid/off-topic.
Copyright © 1999-2017, Apache Software Foundation