| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!DOCTYPE document [ |
| <!ENTITY project SYSTEM "project.xml"> |
| ]> |
| <document url="virtual-hosting-howto.html"> |
| |
| &project; |
| |
| <properties> |
| <title>Virtual Hosting and Tomcat</title> |
| </properties> |
| |
| <body> |
| |
| <section name="Table of Contents"> |
| <toc/> |
| </section> |
| |
| <section name="Assumptions"> |
| <p> |
| For the sake of this how-to, assume you have a development host with two |
| host names, <code>ren</code> and <code>stimpy</code>. Let's also assume |
| one instance of Tomcat running, so <code>$CATALINA_HOME</code> refers to |
| wherever it's installed, perhaps <code>/usr/local/tomcat</code>. |
| </p> |
| <p> |
| Also, this how-to uses Unix-style path separators and commands; if you're |
| on Windows modify accordingly. |
| </p> |
| </section> |
| |
| <section name="server.xml"> |
| <p> |
| At the simplest, edit the <a href="config/engine.html">Engine</a> portion |
| of your <code>server.xml</code> file to look like this: |
| </p> |
| <source> |
| <Engine name="Catalina" defaultHost="ren"> |
| <Host name="ren" appBase="renapps"/> |
| <Host name="stimpy" appBase="stimpyapps"/> |
| </Engine> |
| </source> |
| <p> |
| Note that the directory structures under the appBase for each host should |
| not overlap each other. |
| </p> |
| <p> |
| Consult the configuration documentation for other attributes of the |
| <a href="config/engine.html">Engine</a> and <a href="config/host.html"> |
| Host</a> elements. |
| </p> |
| </section> |
| |
| <section name="Webapps Directory"> |
| <p> |
| Create directories for each of the virtual hosts: |
| </p> |
| <source> |
| mkdir $CATALINA_HOME/renapps |
| mkdir $CATALINA_HOME/stimpyapps |
| </source> |
| </section> |
| |
| <section name="Configuring Your Contexts"> |
| <subsection name="General"> |
| <p>Contexts are normally located underneath the appBase directory. For |
| example, to deploy the <code>foobar</code> context as a war file in |
| the <code>ren</code> host, use |
| <code>$CATALINA_HOME/renapps/foobar.war</code>. Note that the |
| default or ROOT context for <code>ren</code> would be deployed as |
| <code>$CATALINA_HOME/renapps/ROOT.war</code> (WAR) or |
| <code>$CATALINA_HOME/renapps/ROOT</code> (directory). |
| </p> |
| <p><strong>NOTE: The <code>docBase</code> for a context should never be |
| the same as the <code>appBase</code> for a host.</strong> |
| </p> |
| </subsection> |
| <subsection name="context.xml - approach #1"> |
| <p> |
| Within your Context, create a <code>META-INF</code> directory and then |
| place your Context definition in it in a file named |
| <code>context.xml</code>. i.e. |
| <code>$CATALINA_HOME/renapps/ROOT/META-INF/context.xml</code> |
| This makes deployment easier, particularly if you're distributing a WAR |
| file. |
| </p> |
| </subsection> |
| <subsection name="context.xml - approach #2"> |
| <p> |
| Create a structure under <code>$CATALINA_HOME/conf/Catalina</code> |
| corresponding to your virtual hosts, e.g.: |
| </p> |
| <source> |
| mkdir $CATALINA_HOME/conf/Catalina/ren |
| mkdir $CATALINA_HOME/conf/Catalina/stimpy |
| </source> |
| <p> |
| Note that the ending directory name "Catalina" represents the |
| <code>name</code> attribute of the |
| <a href="config/engine.html">Engine</a> element as shown above. |
| </p> |
| <p> |
| Now, for your default webapps, add: |
| </p> |
| <source> |
| $CATALINA_HOME/conf/Catalina/ren/ROOT.xml |
| $CATALINA_HOME/conf/Catalina/stimpy/ROOT.xml |
| </source> |
| <p> |
| If you want to use the Tomcat manager webapp for each host, you'll also |
| need to add it here: |
| </p> |
| <source> |
| cd $CATALINA_HOME/conf/Catalina |
| cp localhost/manager.xml ren/ |
| cp localhost/manager.xml stimpy/ |
| </source> |
| </subsection> |
| <subsection name="Further Information"> |
| <p> |
| Consult the configuration documentation for other attributes of the |
| <a href="config/context.html">Context</a> element. |
| </p> |
| </subsection> |
| </section> |
| </body> |
| </document> |