Has anyone seen any problems with tomcat virtual hosting?
I want to use virtual hosting with Tomcat for allowing multiple hosts to be specified in the server.xml file for future use in an enterprise topology. Has anyone seen any problems with this setup?
I am specifically referring to: http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html
I intend to setup the following:
Public URI
https://rtc.intranet.com:9443/ccm
https://rrc.intranet.com:9443/rm
https://jts.intranet.com:9443/jts
https://rqm.intranet.com:9443/qm
DNS
rtc.intranet.com maps to 101.102.103.104
rrc.intranet.com maps to 101.102.103.105
jts.intranet.com maps to 101.102.103.106
rqm.intranet.com maps to 101.102.103.107
Accepted answer
One known issue with Tomcat virtual hosts is that each host is configured to use a directory for it's "appBase" and all the servlets or war files in that directory will be deployed.
If the administrator is not careful they may re-use the same directory like the default "webapps" as the appBase for more than one virtual host and cause the same servlet to be activated more than once and addressable via multiple URIs. At best this results in extra CPU overhead, at worst this may lead to data corruption or loss since each running copy would also be sharing the same filesystem and database.
To make this work the administrator will need to create a directory for each virtual host and copy the servlets they want running on that host to that directory.
e.g.
<Host name="rtc.intranet.com" appBase="ccm-webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="rrc.intranet.com" appBase="rrc-webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="jts.intranet.com" appBase="jts-webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="rqm.intranet.com" appBase="rqm-webapps" unpackWARs="true" autoDeploy="true"/>
And create matching directories
+---ccm-webapps
+---ccm.war
And create matching directories
+---ccm-webapps
+---ccm.war
+---rrc-webapps
+---converter.war
+---rm.war
+---jts-webapps
+---admin.war
+---clmhelp.war
+---jts.war
+---converter.war
+---rm.war
+---jts-webapps
+---admin.war
+---clmhelp.war
+---jts.war
+---rqm-webapps
+---qm.war