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