tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alan Chandler <>
Subject Setting up a parallel test environment on the same machine as main server
Date Sun, 12 Feb 2006 17:07:06 GMT
I have a setup on my home web site that consists of apache2 front ending 
Tomcat 4.1, connected via jk_mod.  Both software packages actually sit on the 
same machine, which is the gateway between the WAN and my LAN, and has two 
Ethernet Cards  The external web site ( has the WAN 
address, my other addresses are several IP addresses from the 
range, all simultaneously served off the LAN side interface.  An internal dns 
allocates lan addresses with names of the form *.home

At the current time, the definition of all the jk directives is held in a file 
called jk.conf, which is included into the apache configuration at a global 
level (ie outside any virtual hosts directives).  There is a single file which defines a worker called tomcat sitting on 
appserv.home (one of the ip addresses refered to in the first paragraph)

There is a single JkMountFile directive inside the jk.conf file that refers to 
a file that maps what gets mapped to be served by the 
tomcat worker and what gets mapped to be served as static content.

I want to set up a testing environment in apache such that prior to new 
versions of the application going live, I would like to run them in some form 
of test mode in a separate (apache) virtual host. I will use the name 
test.home which is yet another ip address on this same box for the apache 
virtual host.  I am doing that so I can access the same database engine (also 
on this machine) [Full testing on a separate machine will have happened 
first, so this not as daft as it might seem]

Unless anyone here can suggest a better way, I would like to move the 
JkMountFile directive from global scope to virtual host scope and have two 
separate files urimap files so that I can map different things dependent on 
which virtual host.

However, since this is a live site I don't want to just conduct the simple 
experiment to see if will work, so I am asking here if this is OK.

Although this is a simplistic approach, the downside seems to be that unless I 
also separate tomcat into two separate virtual hosts I cannot use the same 
servlet name for both production and test instances of my application. 

However, I don't fully understand the relationship between <service>, <engine>

and <host> stanza's in the server.xml file, and until I do, I am reluctant to 
muck about with it and potentially screw the currently working arrangement.

Can I ask, am I right in thinking...

<server> and <engine> have a one to one mapping and effectively map on to a 
single IP address assigned to the server (although it never seems to be 
specified directly as it gets picked up from one of the defaulthost 
attribute), and that each <host> represents a single name from the dns that 
maps onto that IP address.   Therefore there may be several host stanza's but 
all hosts must have the same IP address.

However I am confused about workers and the jvmRoute attribute on the <engine> 
tag. Inside the file you define the host for a given 
instance of a worker.  Therefore, how to the workers get mapped on to the 
virtual hosts?

In otherwords, in order to separate namespaces for my apache virtual hosts' 
connection to tomcat do I need one or two <server/engine> stanza's mapped to 
one or two separate <host>

Alan Chandler
Open Source. It's the difference between trust and antitrust.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message