> Date: Tue, 15 May 2012 01:18:06 +0200 > From: a...@ice-sa.com > To: users@tomcat.apache.org > Subject: Re: Multiple tomcat Instances on Same Server and One Apache Instance > > Apologies, I probably confused you too. See below. > > Vickie Troy-McKoy wrote: > ... > > >>>>>> > >>>>>> When I call abc*, it goes to instance1; and when I call xyz*, it goes > >>>>>> to instance2. However, both instances have apps that start with > >>>>>> "tsa". How do I configure the apache webserver to service the "tsa" > >>>>>> app for both tomcat instances? > >>>>> configure a load balancer (worker) that uses the (other) two workers, > >>>>> in addition to the > >>>>> two workers, and add it to the worker list. > >>>> I think that rather than be added to the workers list, the load-balancer > >>>> worker must be the only one in the list. You then tell the balancer to > >>>> balance the two other workers. > >>> Then the two individual apps won't work, as they're not present on both > >>> servers. > >> Oh. I did not read the OP's requirements carefully enough. Apologies, > >> your instructions > >> were correct for the OP. > > --------------------------------------------------- > > > > Thank you all for your suggestions. I tried configuring a load balancer > > worker; however, I'm getting HTTP 500 messages--Internal Server Error. I > > reviewed the reference page; however, apparently, I'm missing something. > > Also in the mod_jk.log, there's an error stating: "Could not find worker > > with name 'instance2' in uri map post processing". Any ideas? Thank you... > > > > On the apache server in httpd.conf, I changed the JKMount statements > > because I wanted to access all content. > > > > Listen 80 > > . > > . > > . > > LoadModule jk_module modules/mod_jk.so > > > > # > > JkWorkersFile conf/workers.properties > > JkMount /* instance1 > > JkMount /* instance2 > > That is probably not what you want (and the one contradicts the other). > You should probably have instead : > > # forward "/abc*" requests to Tomcat "instance1" only > JkMount /abc instance1 > JkMount /abc* instance1 > > # forward "/xyz*" requests to Tomcat "instance2" only > JkMount /xyz instance2 > JkMount /xyz* instance2 > > # forward "/tsa*" requests to either Tomcat, as selected by the balancer > worker > JkMount /tsa balance1 > JkMount /tsa* balance1 > > Note: if you really want to forward everything to Tomcat, and it doesn't > matter which > Tomcat, and you want to let the balancer decide when to forward any request > to either > Tomcat-1 or Tomcat-2, then just use the single line : > JkMount /* balance1 > > > > > > > > In workers.properties, added the load balancer information; it reflects > > the following: > > > You seem to be missing : > > workers.list=instance1,instance2,balance1 > > (as per Pid's earlier instructions, not as per my erroneous comment) > > > worker.balance1.type=lb > > worker.balance1.balance_workers=instance1, instance2 <-- mod_jk may not > > like the space after comma > > # > > worker.instance1.port=8009 > > worker.instance1.host=server.xxxx.com > > worker.instance1.type=ajp13 > > > > # > > worker.instance2.port=7009 > > worker.instance2.host=server.xxxx.com > > worker.instance2.type=ajp13 > > > > > > On the tomcat server (which is the same server), I added the jvmRoute > > setting in server.xml. For instance one, I added: > > > > <Engine name="Catalina" defaultHost="localhost" jvmRoute="instance1"> > > > > For instance two, I added: <Engine name="Catalina" > > defaultHost="localhost" jvmRoute="instance2"> > > > > > --------------------------------------------------------------------- Thanks again. I'll try this tomorrow. I just want to forward based on the port that the Tomcat instance is running on. The 2 tomcat instances running on the same server is really the same application--but different versions. And, I thought that I could use the existing Apache instance to forward requests to the new version of the app running on tomcat as well. But, if I want (e.g. the tsademo app) the tomcat instance running on port 8009; and tsademo is being forwarded to both ports--how can I be sure that I would get the tsademo running on port 8009 and not the one running on 7009? I tried using the Virtual host in Apache; but, ran into issues with that. Or, should I just go ahead and create an entirely new apache instance for the new tomcat instance?
Regards,