Hi Igor,

I use mod-proxy to balance the apaches/httpds.  I use mod-jk t balance the 
tomcats.  For the tomcats f course I also have the workers.properties files in 
the apache2/conf directory.  When invoke the URL to the individual balance 
members, everything works fine.  It is when I try to use the reverse proxy then 
every attempt to any of the tomcats creates a new session, so fail over does 
not  work.

Thanks,

János
On Mar 22, 2011, at 6:59 PM, Igor Cicimov wrote:

> Interesting I had no idea you can mix mod_proxy and mod_jk, thought you
> should use the one or the other. What I do I have workers.properties file in
> the Apache conf directory with load-balancer worker that takes care of the
> load balancing ans sticky sessions.
> 
> On Wed, Mar 23, 2011 at 8:54 AM, János Löbb <janos.l...@yale.edu> wrote:
> 
>> Hi,
>> 
>> I have two machines  bml0065.yalepath.org and bml0066.yalepath.org.  Both
>> have OSX 10.6.6, apache 2.2.17 and mod_jk 1.2.31 installed.  Tomcat is
>> 7.0.10 on both.
>> 
>> Apache was compiled on both machines with proxy, proxy-balancer, proxy-http
>> and proxy-ajp enabled.
>> 
>> The bml0065 machine is configured as a reverse proxy.
>> 
>> The theory is, that users hit the bml0065 machine like
>> 
>> http://bml0065.yalepath.org/tc/examples/servlets/servlet/SessionExample
>> 
>> and using mod-proxy and mod-proxy-http it will select either bml0065 or
>> bml0066 depending on the lbmethod configured.  Then let say it selects
>> bml0065.  Then it comes to this machine as:
>> 
>> http://bml0065.yalepath.org/examples/servlets/servlet/SessionExample
>> 
>> From here, because there is a JkMount for examples in its httpd.conf, it
>> connects via mod_jk to the Tomcat instance on this machine, in this case
>> tomcat3.
>> 
>> The problem is that as soon the reverse proxy is involved new sessions are
>> created all the time, so session failover  do not work.  If I take the
>> reverse proxy out from the picture, everything works.
>> 
>> Here is the reverse proxy config from httpd.conf of the bml0065 machine
>> 
>> JkLogLevel info
>> JkMount /examples/* lb
>> JkMount /examples/servlets/servlet/* lb
>> JkMount /jkmanager/* jkstatus
>> JkWorkersFile "/usr/local/apache2/conf/workers.properties"
>> JkLogFile "/usr/local/apache2/logs/mod_jk.log
>> 
>> ProxyRequests Off
>> <Proxy balancer://pathCluster>
>>       BalancerMember http://bml0065.yalepath.org loadfactor=10
>> route=tomcat3
>>       BalancerMember http://bml0066.yalepath.org loadfactor=10
>> route=tomcat1
>>       ProxySet lbmethod=bytraffic
>> </Proxy>
>> ProxyPass       /tc/ balancer://pathCluster/
>> stickysession=JSESSIONID|jsessionid
>> ProxyPassReverse        /tc/ balancer://pathCluster/
>> 
>> 
>> <Location /balancer-manager>
>>       SetHandler balancer-manager
>>       Order Deny,Allow
>>       Allow from .yalepath.org
>> </Location>
>> 
>> A very similar setup worked in 2009 with Tomcat 6.0.18 and httpd 2.2.11.
>> 
>> Here are the snippets from both machine catalina.out file
>> 
>> <snip bml0065>
>> Mar 22, 2011 5:06:11 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> sessionCreated('0409F29D221545DB0BB5F62205B24471.tomcat3')
>> Mar 22, 2011 5:06:11 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> attributeAdded('0409F29D221545DB0BB5F62205B24471.tomcat3', 's1', 't3')
>> Mar 22, 2011 5:07:06 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> sessionCreated('DE7A014A0F1659F0B777E0DF4A2355D4.tomcat3')
>> Mar 22, 2011 5:07:06 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> attributeAdded('DE7A014A0F1659F0B777E0DF4A2355D4.tomcat3', 's2', 't3')
>> </snip>
>> 
>> <snip bml0066>
>> Mar 22, 2011 5:06:11 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> sessionCreated('0409F29D221545DB0BB5F62205B24471.tomcat3')
>> Mar 22, 2011 5:06:11 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> attributeAdded('0409F29D221545DB0BB5F62205B24471.tomcat3', 's1', 't3')
>> Mar 22, 2011 5:07:06 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> sessionCreated('DE7A014A0F1659F0B777E0DF4A2355D4.tomcat3')
>> Mar 22, 2011 5:07:06 PM org.apache.catalina.core.ApplicationContext log
>> INFO: SessionListener:
>> attributeAdded('DE7A014A0F1659F0B777E0DF4A2355D4.tomcat3', 's2', 't3')
>> </snip>
>> 
>> 
>> Here is the last access session from the access_log:
>> <snip bml0065>
>> 10.84.2.65 - - [22/Mar/2011:17:06:11 -0400] "POST
>> /examples/servlets/servlet/SessionExample HTTP/1.1" 200 1114
>> 10.84.2.41 - - [22/Mar/2011:17:06:11 -0400] "POST
>> /tc/examples/servlets/servlet/SessionExample HTTP/1.1" 200 1114
>> 10.84.2.65 - - [22/Mar/2011:17:06:11 -0400] "GET
>> /examples/servlets/images/code.gif HTTP/1.1" 304 -
>> 10.84.2.41 - - [22/Mar/2011:17:06:11 -0400] "GET
>> /tc/examples/servlets/images/code.gif HTTP/1.1" 304 -
>> 10.84.2.65 - - [22/Mar/2011:17:06:11 -0400] "GET
>> /examples/servlets/images/return.gif HTTP/1.1" 304 -
>> 10.84.2.41 - - [22/Mar/2011:17:06:11 -0400] "GET
>> /tc/examples/servlets/images/return.gif HTTP/1.1" 304 -
>> ::1 - - [22/Mar/2011:17:06:18 -0400] "OPTIONS * HTTP/1.0" 200 -
>> ::1 - - [22/Mar/2011:17:06:19 -0400] "OPTIONS * HTTP/1.0" 200 -
>> 10.84.2.65 - - [22/Mar/2011:17:07:06 -0400] "POST
>> /examples/servlets/servlet/SessionExample HTTP/1.1" 200 1114
>> 10.84.2.41 - - [22/Mar/2011:17:07:06 -0400] "POST
>> /tc/examples/servlets/servlet/SessionExample HTTP/1.1" 200 1114
>> </snip>
>> 
>> The 10.84.2.41 is my machine.  In the log above looks like the hit to the
>> reverse proxy - with the /tc/ start - inserted later than the converted url
>> for the given balance member.
>> 
>> There is nothing interesting in the apache error_log.
>> 
>> What am I doing wrong ?
>> 
>> This is a test cluster.  The application developer wants to test his app's
>> failover by pulling the ethernet plug out from the non reverse proxy when
>> the session is on that machine.
>> 
>> Thanks ahead,
>> 
>> János
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to