With the help of several people on this list, I've been able to get my
server configured [mostly] the way I wanted it configured.  Here's my
solution, hopefully it will be helpful to others

Goals:
  * One instance of Tomcat running behind Apache
  * Multiple VirtualHosts, each pointing to its own Tomcat webapp
  * The ability to hot-deploy an app without affecting the other apps
  * Minimal or no modifications required to server.xml for additional
    hosts
  * A solution that is maintainable and is not a hack

Solution:
  * Apache with mod_jk
  * Each domain has a .conf file at /etc/httpd/conf.d/vhosts
    * The conf file routes .do and .jsp files to tomcat using mod_jk
        JkMount /*.do router
        JkMount /*.jsp router
    * The VirtualHost declaration has the DocumentRoot set to the path
      of the webapp
  * Tomcat's server.xml file has a host declaration for each webapp 
    and a declaration for localhost (though that is not necessary)
        <Host name="localhost" appBase="webapps" />
        <Host name="foo.mydomain.com" appBase="webapps/foo" />
        <Host name="bar.mydomain.com" appBase="webapps/bar" />
        <Host name="eggs.mydomain.com" appBase="webapps/eggs" />
  * Deploy a war file named ROOT.war to the correct appBase for each
    application.  This file must be named ROOT.war
  * GOTCHA: I tried to also include the manager webapp for each of the 
    hosts by adding the manager.xml file to 
    $CATALINA_HOME/conf/Catalina/foo.mydomain.com/ as described here
    http://webtuitive.com/samples/virtual-hosting-howto.jsp
    but by having a context defined in this location, I was not able 
    to deploy my applications using Automatic Application Deployment
    as defined in the Tomcat docs.  I'm not sure why this doesn't work
    but by removing the manager.xml file, I am able to hot-deploy my
    apps.

This is working well for me, and that in itself makes me happy.  The 
only things I'd like to improve upon are:
  * Not having to modify server.xml directly.  According to the Tomcat
    docs, you shouldn't modify this file.  I'm not sure how to avoid 
    this.
  * Being able to include the manager app for each host that I define.
I
    was using ant's tomcat tasks to tie into the manager for deploying
    my apps, but now I have to scp the war file into the directory.
    This isn't the worst thing that could happen, but it seems like 
    there is a solution out there for this.

Anyway, thanks to everybody who helped out on this.

Josh Gormley



-----Original Message-----
From: Mikolaj Rydzewski [mailto:[EMAIL PROTECTED] 
Sent: Thursday, December 28, 2006 9:34 AM
To: Tomcat Users List
Subject: Re: Virtual Hosts

Gormley, Josh wrote:
> As a side question, is this possible to do without modifying the
> server.xml file every time I want to add a new host?  I've read that
> it's bad practice to modify the server.xml file much like it's bad
> practice to modify the httpd.conf file in Apache.  In Apache, I have a
> vhost directory with .conf files for each host -- is there a similar
> method to do this with Tomcat?
>   
There is a host-manager webapp which comes with Tomcat to allow adding 
vhosts on the fly (I haven't used it, however). You will need user with 
admin role in tomcat-users.xml to access it.

-- 
Mikolaj Rydzewski <[EMAIL PROTECTED]>



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to