On one Apache server I am running multiple tomcat installations, each one serves a seperate virtual host. This is considered an advanced use case and is not very well documented for JK2, so I thought I would pass this along.
I run Apache 2.0.43, TC 4.1.18, and mod_jk2 out of process over regular sockets. This config would be good for the ISP model - each host gets private JVM. Or in my case, I provide seperate development, test, and production tomcat servers. This allows me to migrate code changes. Either case, contexts only load for specific hosts and a JVM can go up/down without effecting other hosts. Neither tomcat installation uses the value of the environment variable CATALINA_HOME, rather I explicitly set in shell scripts for each tomcat. Otherwise they both try to start the same server. I found this out because I still had tomcat 4.0.6 on my box and when I ran my 4.1.8 startup script, that it launched 4.0.6 using default env! My second tomcat 4.1.8 got a BindException of course when it tried to also start 4.0.6 using default env. Lesson learned - So now each tomcat gets hard coded env CATALINA_HOME. Here are my config files for regular sockets: Note: /jkstatus loads only into the default server /someApp loads only into fred.com /anotherApp loads only into wilma.com Of course, fred and wilma server.xml get diferrent shutdown ports also. ---------------------------------------------------------- workers2.properties ---------------------------------------------------------- # TYPE:NAME.PROPERTY=VALUE # OR # [TYPE:NAME] # PROPERTY=VALUE [logger] level=DEBUG [config:] file=${serverRoot}/conf/workers2.properties debug=2 debugEnv=0 [uriMap:] info=Maps the requests. Options: debug debug=4 #the shared memory depository [shm:] info=Scoreboard. file=${serverRoot}/logs/jk2.shm size=1000000 debug=0 disabled=0 [workerEnv] info=global options timing=1 debug=0 [lb:lb] info=the default load balancer debug=0 [channel.socket:fred] info=ajp13 forwarding to fred.com JVM debug=0 tomcatId=fred port=8019 host=localhost [channel.socket:wilma] info=ajp13 forwarding to wilma.com JVM debug=0 tomcatId=wilma port=9019 host=localhost [ajp13:fred] channel=channel.socket:fred tomcatId=fred [ajp13:wilma] channel=channel.socket:wilma tomcatId=wilma [status:] info=status worker # default host mapping [uri:/jkstatus/*] group=status # fred.com context mappping [uri:fred.com/someApp] group=ajp13:fred context=/someApp # fred.com uri mapping [uri:fred.com/someApp/*] group=ajp13:fred # wilma.com context mappping [uri:wilma.com/anotherApp] group=ajp13:wilma context=/anotherApp # wilma.com uri mappping [uri:wilma.com/anotherApp/*] group=ajp13:wilma ------------------------------------------------ jk2.properties - fred installation of tomcat ----------------------------------------------- handler.list=channelSocket,request channelSocket.port=8019 ------------------------------------------------ jk2.properties - wilma installation of tomcat ----------------------------------------------- handler.list=channelSocket,request channelSocket.port=9019 --------------------------------------------------- server.xml - fred instance of tomcat -------------------------------------------------- <Server port="8005" shutdown="SHUTDOWN" debug="4"> <Service name="Tomcat-Apache-fred"> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8019" minProcessors="5" maxProcessors="75" enableLookups="true" appBase="webapps" acceptCount="10" debug="4" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/> <Engine className="org.apache.catalina.core.StandardEngine" name="Apache" debug="4" defaultHost="fred.com"> <Host name="fred.com" debug="4" appBase="webapps" unpackWARs="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="fred-apache_log." suffix=".txt" timestamp="true"/> <Context path="" docBase="ROOT" debug="4"/> <Realm className="org.apache.catalina.realm.MemoryRealm" /> </Host> </Engine> </Service> </Server> --------------------------------------------------- server.xml - wilma instance of tomcat -------------------------------------------------- <Server port="9005" shutdown="SHUTDOWN" debug="4"> <Service name="Tomcat-Apache-wilma"> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="9019" minProcessors="5" maxProcessors="75" enableLookups="true" appBase="webapps" acceptCount="10" debug="4" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/> <Engine className="org.apache.catalina.core.StandardEngine" name="Apache" debug="4" defaultHost="wilma.com"> <Host name="wilma.com" debug="4" appBase="webapps" unpackWARs="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="wilma-apache_log." suffix=".txt" timestamp="true"/> <Context path="" docBase="ROOT" debug="4"/> <Realm className="org.apache.catalina.realm.MemoryRealm" /> </Host> </Engine> </Service> </Server> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>