On Sep 1, 2012 2:23 AM, "Ed Young" <e...@summitbid.com> wrote: > > Thanks again for the reply. I believe the cluster descriptor in > httpd.conf describes the tomcat cluster, no? See below. > > I was able to install httpd-devel by hand and build and install > mod_jk, so I'm ready to take a shot at configuring cluster failover > using mod_jk. > > I've added the jk_module descriptor you suggested to my > conf/workers.properties file, but so far no luck getting it to > properly failover: > > worker.list=balance1 > > # The load balancer worker balance1 will distribute > # load to the members Tomcat6A, Tomcat6B > worker.balance1.type=lb > worker.balance1.balance_workers=Tomcat6A, Tomcat6B > > worker.Tomcat6A.type = ajp13 > worker.Tomcat6A.host = chimps-lb-01.cable.bogus.com > worker.Tomcat6A.port = 8009 > worker.Tomcat6A.redirect=Tomcat6B > #worker.Tomcat6A.lbfactor = 10 > > worker.Tomcat6B.type = ajp13 > worker.Tomcat6B.host = chimps-lb-02.cable.bogus.com > worker.Tomcat6B.port = 8009 > worker.Tomcat6B.activation=disabled > #worker.Tomcat6B.lbfactor = 10 > > #worker.stat1.type = status >
You need to put this in the apache config file not the workers file. > <IfModule jk_module> > JkWorkersFile conf/workers.properties > JkLogFile "|/usr/local/apache2/bin/rotatelogs > /usr/local/apache2/logs/mod_jk.log.%Y%m%d 86400" > JkLogLevel Debug > JKShmSize 256 > JkShmFile logs/jk.shm > JkMount /* balance1 > JkMount /jkmanager/* jkstatus > </IfModule> > The httpd.conf descriptor is basically this: > > Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" > env=BALANCER_ROUTE_CHANGED > <Proxy balancer://cluster> > BalancerMember ajp://chimps-lb-01.cable.bogus.com:8009route=Tomcat6A > BalancerMember ajp://chimps-lb-02.cable.bogus.com:8009route=Tomcat6B > status=+H > # ProxySet lbmethod=byrequests > # ProxySet lbmethod=bytraffic > ProxySet stickysession=ROUTEID nofailover=Off lbmethod=bytraffic > > </Proxy> > ProxyPass / balancer://cluster/ > ProxyPassReverse / balancer://cluster/ > > ...but so far no luck. > > On Fri, Aug 31, 2012 at 10:19 AM, Igor Cicimov <icici...@gmail.com> wrote: > > > > On Sep 1, 2012 1:38 AM, "Ed Young" <e...@summitbid.com> wrote: > >> > >> Thanks for the reply. > >> > >> On Fri, Aug 31, 2012 at 12:10 AM, Igor Cicimov <icici...@gmail.com> wrote: > >> > On Fri, Aug 31, 2012 at 11:13 AM, Ed Young <e...@summitbid.com> wrote: > >> >> > >> >> I've set up a load balancing configuration based on an Apache server > >> >> and two tomcats Tomcat6A, and Tomcat6B. I'm trying to set it up so > >> >> that Tomcat6B is a failover server, so if Tomcat6A goes down, Tomcat6B > >> >> will handle all subsequent requests. > >> >> > >> > > >> > This is a hot standby scenario. IMHO the best is to use mod_jk instead. > >> > > >> > Example of mod_jk config for your workers.properties file: > >> > > >> > <IfModule jk_module> > >> > JkWorkersFile conf/workers.properties > >> > JkLogFile "|/usr/local/apache2/bin/rotatelogs > >> > /usr/local/apache2/logs/mod_jk.log.%Y%m%d 86400" > >> > JkLogLevel Debug > >> > JKShmSize 256 > >> > JkShmFile logs/jk.shm > >> > JkMount /* balance1 > >> > JkMount /jkmanager/* jkstatus > >> > </IfModule> > >> > > >> > but from your post I'm not sure if you have mod_jk installed and > >> > configured > >> > at all. > >> > >> No, mod_jk not installed and this Linux installation has a number of > >> factors that keep me from building and installing mod_jk > >> No apxs > >> No APR > >> Misconfigured corporate rpm repository which keeps me from installing > >> httpd-devel and thereby pursuing mod_jk. Hopefully this will be > >> corrected soon. > >> > >> My understanding is that mod_proxy replaces mod_jk, but i haven't had > >> any success getting mod_proxy to work in a failover scenario, so I may > >> be stuck for now. > >> > >> > > >> > What you want to achive means that when the balancer worker on Tomcat6A > >> > is > >> > in error state, the balancer will redirect the sessions to Tomcat6B. > >> > This > >> > also means though that that user session should exist on Tomcat6B too > >> > which > >> > on other hand means you need to have some kind of session replication > >> > between tomcat servers. I haven't seen your full tomcat config but hope > >> > you > >> > have cluster set up or the fail over will not work. > >> > > >> > >> I have a cluster set up, but no session replication. My requirement is > >> that if Tomcat6A goes down, we will lose any sessions, but all new > >> sessions will failover to Tomcat6B > >> > >> The <Proxy balancer://cluster> descriptor below defines my cluster settup, > >> no? > > > > No. Im talking about cluster of tomcat servers not your balancer name. > > > >> >> > >> >> I have two questions: > >> >> 1. Does mod_proxy use the workers.properties file? It doesn't seem to > >> >> make any difference what is in workers.properties. > >> >> 2. How can I set this system up for a failover configuration? > >> >> > >> >> This is killing me. I'm using mod_proxy, mod_proxy_balancer, mod_ajp. > >> >> > >> >> In the load balancer howto, it specifies the configuration I want by > >> >> using the workers.properties file, but that file seems to have no > >> >> effect on the system behavior. I wonder if it was written before > >> >> mod_proxy became a replacement for mod_jk. > >> >> > >> >> _ http://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html > >> >> > >> >> No matter what I do, if I shut down Tomcat6A, there is no failover > >> >> behavior. Existing Tomcat6A request fail (expected) and new requests > >> >> fail with 404. Only the existing Tomcat6B request continue. > >> >> > >> >> Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" > >> >> env=BALANCER_ROUTE_CHANGED > >> >> <Proxy balancer://cluster> > >> >> BalancerMember ajp://chimps-lb-01.cable.bogus.com:8009 > >> >> route=Tomcat6A > >> >> BalancerMember ajp://chimps-lb-02.cable.bogus.com:8009 > >> >> route=Tomcat6B > >> >> ProxySet stickysession=ROUTEID > >> >> </Proxy> > >> >> > >> >> ProxyPass / balancer://cluster/ > >> >> ProxyPassReverse / balancer://cluster/ > >> >> > >> > > >> > For mod_proxy_balancer (if you insist), I would put something like this: > >> > > >> > > >> > <Proxy balancer://cluster> > >> > BalancerMember ajp://chimps-lb-01.cable.bogus.com:8009 > >> > route=Tomcat6A > >> > BalancerMember ajp://chimps-lb-02.cable.bogus.com:8009 > >> > route=Tomcat6B status=+H > >> > ProxySet stickysession=ROUTEID nofailover=Off lbmethod=bytraffic > >> > </Proxy> > >> > > >> > This puts Tomcat6B worker in hot backup state and the whole traffic is > >> > redirected to Tomcat6A. Per my understanding, the above configuration > >> > means > >> > that when the balancer worker on Tomcat6A is in error state, the > >> > balancer > >> > will redirect the session to Tomcat6B which is marked as hot backup . > >> > The > >> > tomcat session replication remark is valid in this scenario too. > >> > > >> > >> I tried this (thanks) and I'm afraid that it does not work. When > >> Tomcat6A goes down, it does not route new traffic to Tomcat6B > > > > Then look at your logs on both sides and check what is not working. > > > >> > >> I wonder if there is anyone who has successfully configured a cluster > >> failover using mod_proxy? > >> > >> > > >> >> The configuration above alternates between each tomcat as request come > >> >> in, which is not what I want. > >> >> > >> >> I created a workers.properties file in /etc/httpd/conf/, based on the > >> >> loadBalance Howto, but it does not seem to have any effect on the > >> >> system. Does mod_proxy use it? > >> >> > >> >> worker.list=balance1 > >> >> > >> >> # The load balancer worker balance1 will distribute > >> >> # load to the members Tomcat6A, Tomcat6B > >> >> worker.balance1.type=lb > >> >> worker.balance1.balance_workers=Tomcat6A, Tomcat6B > >> >> > >> >> worker.Tomcat6A.type = ajp13 > >> >> worker.Tomcat6A.host = chimps-lb-01.cable.bogus.com > >> >> worker.Tomcat6A.port = 8009 > >> >> worker.Tomcat6A.redirect=Tomcat6B > >> >> #worker.Tomcat6A.lbfactor = 10 > >> >> > >> >> worker.Tomcat6B.type = ajp13 > >> >> worker.Tomcat6B.host = chimps-lb-02.cable.bogus.com > >> >> worker.Tomcat6B.port = 8009 > >> >> worker.Tomcat6B.activation=disabled > >> >> > >> >> Each tomcat server.xml has > >> >> <Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat6A"> > >> >> or > >> >> <Engine name="Standalone" defaultHost="localhost" jvmRoute="Tomcat6B"> > >> >> > >> >> --------------------------------------------------------------------- > >> >> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > >> >> For additional commands, e-mail: users-h...@httpd.apache.org > >> >> > >> > > >> > > >> > > >> > > >> > > >> > >> > >> > >> -- > >> - Ed > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > >> For additional commands, e-mail: users-h...@httpd.apache.org > >> > > > > -- > - Ed > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org >