> From: vtmc...@hotmail.com > To: users@tomcat.apache.org > Subject: RE: Multiple tomcat Instances on Same Server and One Apache Instance > Date: Mon, 14 May 2012 21:54:31 -0400 > > > > > > 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, > > >
Thank you Andre for your help. After I configured it as you specified, the behavior was the same as before I inquired on this forum. To avoid additonal delay, I just went ahead and created another apache2 instance and kept both configurations separate. Thanks again for your suggestions. Regards...