httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ed Young <...@summitbid.com>
Subject Re: [users@httpd] Apache + 2 tomcat appserver failover configuration
Date Fri, 31 Aug 2012 23:08:37 GMT
Yes, I realized I put the jk_module descriptor in the wrong file
seconds after I sent this off.

I've now gotten failover working the way I need it to so thanks for the help.

I now need to get the urls for the /admin/jkmanager or
/balancer-manager working. Currently they are yielding 404.

Thanks again.

On Fri, Aug 31, 2012 at 10:35 AM, Igor Cicimov <icicimov@gmail.com> wrote:
>
> On Sep 1, 2012 2:23 AM, "Ed Young" <ejy@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:8009
>> route=Tomcat6A
>>         BalancerMember ajp://chimps-lb-02.cable.bogus.com:8009
>> route=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 <icicimov@gmail.com> wrote:
>> >
>> > On Sep 1, 2012 1:38 AM, "Ed Young" <ejy@summitbid.com> wrote:
>> >>
>> >> Thanks for the reply.
>> >>
>> >> On Fri, Aug 31, 2012 at 12:10 AM, Igor Cicimov <icicimov@gmail.com>
>> >> wrote:
>> >> > On Fri, Aug 31, 2012 at 11:13 AM, Ed Young <ejy@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-unsubscribe@httpd.apache.org
>> >> >> For additional commands, e-mail: users-help@httpd.apache.org
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> - Ed
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>> >> For additional commands, e-mail: users-help@httpd.apache.org
>> >>
>>
>>
>>
>> --
>> - Ed
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>> For additional commands, e-mail: users-help@httpd.apache.org
>>



-- 
- Ed

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message