httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Cicimov <icici...@gmail.com>
Subject Re: [users@httpd] Apache + 2 tomcat appserver failover configuration
Date Fri, 31 Aug 2012 16:35:24 GMT
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: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 <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
>

Mime
View raw message