Hello and Tomcat issues with sticky sessions
Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost mod_jk = mod_jk.conf - LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf.d/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLeveldebug JkLogStampFormat [%a %b %d %H:%M:%S %Y] workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01 worker.pub-app01.port=8009 worker.pub-app01.socket_keepalive=1 worker.pub-app02.type=ajp13 worker.pub-app02.host=app02 worker.pub-app02.port=8009 worker.pub-app02.socket_keepalive=1 worker.pub-app03.type=ajp13 worker.pub-app03.host=app03 worker.pub-app03.port=8009 worker.pub-app03.socket_keepalive=1 worker.pub-app04.type=ajp13 worker.pub-app04.host=app04 worker.pub-app04.port=8009 worker.pub-app04.socket_keepalive=1 worker.pub-app05.type=ajp13 worker.pub-app05.host=app05 worker.pub-app05.port=8009 worker.pub-app05.socket_keepalive=1 worker.ajp13.lbfactor=1 worker.pub-lb.type=lb worker.pub-lb.balance_workers=pub-app01,pub-app02,pub-app03,pub-app04,pub-app05 worker.pub-lb.sticky_session=1 virtual.conf --- VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com JkMount /myapp/* pub-lb Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user /Location /VirtualHost -- Thanks in advance. Gabriel - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
RE: Hello and Tomcat issues with sticky sessions
I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul -Original Message- From: Gabriel Tabares [mailto:gabriel.taba...@roboreus.com] Sent: 30 June 2010 11:17 To: users@tomcat.apache.org Subject: Hello and Tomcat issues with sticky sessions Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost mod_jk = mod_jk.conf - LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf.d/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLeveldebug JkLogStampFormat [%a %b %d %H:%M:%S %Y] workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01 worker.pub-app01.port=8009 worker.pub-app01.socket_keepalive=1 worker.pub-app02.type=ajp13 worker.pub-app02.host=app02 worker.pub-app02.port=8009 worker.pub-app02.socket_keepalive=1 worker.pub-app03.type=ajp13 worker.pub-app03.host=app03 worker.pub-app03.port=8009 worker.pub-app03.socket_keepalive=1 worker.pub-app04.type=ajp13 worker.pub-app04.host=app04 worker.pub-app04.port=8009 worker.pub-app04.socket_keepalive=1 worker.pub-app05.type=ajp13 worker.pub-app05.host=app05 worker.pub-app05.port=8009 worker.pub-app05.socket_keepalive=1 worker.ajp13.lbfactor=1 worker.pub-lb.type=lb worker.pub-lb.balance_workers=pub-app01,pub-app02,pub-app03,pub-app04,pub-app05 worker.pub-lb.sticky_session=1 virtual.conf --- VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com JkMount /myapp/* pub-lb Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d
Re: Hello and Tomcat issues with sticky sessions
Hello gabriel I think you should have the following in your configuration: in de workers definition something like worker.pub-app01.domain=pub-app01-jvm and in your tomcat server.xml Engine name=Catalina defaultHost=localhost jvmRoute=pub-app01-jvm regards Milko Emmerig Gabriel Tabares gabriel.tabares@ roboreus.com To users@tomcat.apache.org 30-06-2010 12:16 cc Subject Please respond to Hello and Tomcat issues with sticky Tomcat Users sessions List us...@tomcat.apa che.org Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost mod_jk = mod_jk.conf - LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf.d/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLeveldebug JkLogStampFormat [%a %b %d %H:%M:%S %Y] workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01
RE: Hello and Tomcat issues with sticky sessions
you beat me to it I think regards Milko Emmerig Ockleford Paul (NHS Connecting for Health) To paul.ocklef...@n Tomcat Users List hs.net users@tomcat.apache.org cc 30-06-2010 12:31 Subject RE: Hello and Tomcat issues with Please respond to sticky sessions Tomcat Users List us...@tomcat.apa che.org I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul -Original Message- From: Gabriel Tabares [mailto:gabriel.taba...@roboreus.com] Sent: 30 June 2010 11:17 To: users@tomcat.apache.org Subject: Hello and Tomcat issues with sticky sessions Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost mod_jk = mod_jk.conf - LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd
RE: Hello and Tomcat issues with sticky sessions
Yes sorry! Slow morning here today.. :) From: M.H.G. Emmerig [mailto:m.h.g.emme...@dnb.nl] Sent: 30 June 2010 11:33 To: Tomcat Users List Subject: RE: Hello and Tomcat issues with sticky sessions you beat me to it I think regards Milko Emmerig Ockleford Paul (NHS Connecting for Health) paul.ocklef...@nhs.net 30-06-2010 12:31 Please respond to Tomcat Users List users@tomcat.apache.org To Tomcat Users List users@tomcat.apache.org cc Subject RE: Hello and Tomcat issues with sticky sessions I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul -Original Message- From: Gabriel Tabares [mailto:gabriel.taba...@roboreus.com] Sent: 30 June 2010 11:17 To: users@tomcat.apache.org Subject: Hello and Tomcat issues with sticky sessions Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost mod_jk = mod_jk.conf - LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf.d/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLeveldebug JkLogStampFormat [%a %b %d %H:%M:%S %Y] workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01 worker.pub-app01.port=8009 worker.pub-app01.socket_keepalive=1 worker.pub-app02.type=ajp13 worker.pub-app02.host=app02 worker.pub-app02.port=8009 worker.pub-app02.socket_keepalive=1 worker.pub-app03.type=ajp13 worker.pub-app03.host=app03 worker.pub-app03.port=8009 worker.pub-app03.socket_keepalive=1 worker.pub-app04.type=ajp13 worker.pub-app04.host=app04 worker.pub-app04.port=8009 worker.pub-app04.socket_keepalive=1 worker.pub-app05.type=ajp13 worker.pub-app05.host=app05
Re: Hello and Tomcat issues with sticky sessions
I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul Sorry if it wasn't clear on my original message, they already have the jvmRoute set: Engine name=Catalina defaultHost=localhost jvmRoute=pub-app01 for the first, server Engine name=Catalina defaultHost=localhost jvmRoute=pub-app02 for the second, etc. -Original Message- From: Gabriel Tabares [mailto:gabriel.taba...@roboreus.com] Sent: 30 June 2010 11:17 To: users@tomcat.apache.org Subject: Hello and Tomcat issues with sticky sessions Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost mod_jk = mod_jk.conf - LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf.d/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLeveldebug JkLogStampFormat [%a %b %d %H:%M:%S %Y] workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01 worker.pub-app01.port=8009 worker.pub-app01.socket_keepalive=1 worker.pub-app02.type=ajp13 worker.pub-app02.host=app02 worker.pub-app02.port=8009 worker.pub-app02.socket_keepalive=1 worker.pub-app03.type=ajp13 worker.pub-app03.host=app03 worker.pub-app03.port=8009 worker.pub-app03.socket_keepalive=1 worker.pub-app04.type=ajp13 worker.pub-app04.host=app04 worker.pub-app04.port=8009 worker.pub-app04.socket_keepalive=1 worker.pub-app05.type=ajp13 worker.pub-app05.host=app05 worker.pub-app05.port=8009 worker.pub-app05.socket_keepalive=1 worker.ajp13.lbfactor=1 worker.pub-lb.type=lb worker.pub-lb.balance_workers=pub-app01,pub-app02,pub-app03,pub-app04,pub-app05
Re: Hello and Tomcat issues with sticky sessions
Gabriel have you also set de directive in de workers.properties I suggested? in your case that should look like worker.pub-app01.domain=pub-app01 etc Milko Gabriel Tabares gabriel.tabares@ roboreus.com To users@tomcat.apache.org 30-06-2010 12:41 cc Subject Please respond to Re: Hello and Tomcat issues with Tomcat Users sticky sessions List us...@tomcat.apa che.org I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul Sorry if it wasn't clear on my original message, they already have the jvmRoute set: Engine name=Catalina defaultHost=localhost jvmRoute=pub-app01 for the first, server Engine name=Catalina defaultHost=localhost jvmRoute=pub-app02 for the second, etc. -Original Message- From: Gabriel Tabares [mailto:gabriel.taba...@roboreus.com] Sent: 30 June 2010 11:17 To: users@tomcat.apache.org Subject: Hello and Tomcat issues with sticky sessions Hi everybody, I have been running Tomcat on production for a few years with no problem but now, after moving to a new company, I am completely unable to get session stickyness working. The setup is as follows: Apache 2.2.3 (CentOS 5.4 version) - Tomcat 6.0.24. I have tried all of mod_proxy, mod_ajp_proxy and mod_jk but, no matter what I do, I can not get Apache to always send the requests to the Tomcat specified in the jsession. Firebug indicates that the JSESSIONID cookie is being set as it should but it still sees requests going to the other server. I have also tried changing the jvmRoute to exactly match the worker name for mod_jk but it still doesn't work. I would appreciate any help, as I am stuck. Here are the configurations I have tried. Obviously, only of them is active at any given time. httpd.conf is the standard one from the CentOS RPM. Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off Proxy balancer://public_web_cluster Order deny,allow Allow from all BalancerMember http://app01:8080 route=pub-app01 BalancerMember http://app02:8080 route=pub-app02 BalancerMember http://app03:8080 route=pub-app03 BalancerMember http://app04:8080 route=pub-app04 BalancerMember http://app05:8080 route=pub-app05 /Proxy virtual.conf LogLevel Debug VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^/$ /appname/ [R] RewriteRule ^$ /appname/ [R] Location / AuthType Basic AuthName Please enter your details AuthUserFile /etc/httpd/conf.d/htpasswd Require valid-user ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Proxy balancer://pubLB BalancerMember ajp://app01:8009/ timeout=5 route=pub-app01 BalancerMember ajp://app02:8009/ timeout=5 route=pub-app02 BalancerMember ajp://app03:8009/ timeout=5 route=pub-app03 BalancerMember ajp://app04:8009/ timeout=5 route=pub-app04 BalancerMember ajp://app05:8009/ timeout=5 route=pub-app05 /Proxy virtual.conf --- ProxyRequests Off VirtualHost 10.1.2.1:80 DocumentRoot /var/www/html ServerName www.myserver.com ServerAlias myserver.com RewriteEngine On RewriteRule ^$ /myapp [R] RewriteRule ^/$ /myapp
Re: Hello and Tomcat issues with sticky sessions
On 30/06/2010 11:33, M.H.G. Emmerig wrote: you beat me to it I think regards Milko Emmerig I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost This isn't likely to be the core problem, but it's worth bearing in mind. If you're using mod_proxy you need to put: stickysession=JSESSIONID|jsessionid to ensure you're capturing both the URL encoded and cookie based session ids. Unfortunately, because RHEL/Centos insist on deploying HTTPD with the version number set when they released the OS, it's virtually impossible to tell whether your HTTP is actually 2.2.3, or 2.2.3 + important fixes, additions etc from 2.2.(n 3). mod_proxy_ajp was first released in 2.2.3 for example, and many improvements occurred in later releases. p signature.asc Description: OpenPGP digital signature
Re: Hello and Tomcat issues with sticky sessions
have you also set de directive in de workers.properties I suggested? in your case that should look like worker.pub-app01.domain=pub-app01 etc My apologies, I am doing 10 things at the time and missed that bit. I now have made the change and it seems to be working (fingers crossed). I have a couple of people testing it out, so fingers crossed! It's weird because I've used mod_jk a lot and never had any domain specified. Thanks for your help. Gabriel - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Hello and Tomcat issues with sticky sessions
I'm not sure if this is what you are looking for but I just checked how our stuff is set up here and wondered if you have the jvm route mapped in the server xml for the tomcat instances you want loadbalanced? Engine jvmRoute=route_7 name=Catalina defaultHost=localhost Paul Tomcats: All of them have a jvmRoute of pub-app0X, where X goes from 1 to 5. mod_proxy proxy.conf --- ProxyPass balancer://public_web_cluster/ stickysession=JSESSIONID lbmethod=byrequests ProxyPassReverse balancer://public_web_cluster/ /Location /VirtualHost mod_ajp_proxy === mod_proxy_ajp.conf -- ProxyPass balancer://pubLB/ stickysession=JSESSIONID nofailover=on ProxyPassReverse balancer://pubLB/ /Location /VirtualHost This isn't likely to be the core problem, but it's worth bearing in mind. If you're using mod_proxy you need to put: stickysession=JSESSIONID|jsessionid I have tried both ways and I still get no stickyness. I was trying to simplify it in order to check minimise the possibility of errors. to ensure you're capturing both the URL encoded and cookie based session ids. Unfortunately, because RHEL/Centos insist on deploying HTTPD with the version number set when they released the OS, it's virtually impossible to tell whether your HTTP is actually 2.2.3, or 2.2.3 + important fixes, additions etc from 2.2.(n 3). mod_proxy_ajp was first released in 2.2.3 for example, and many improvements occurred in later releases. The CentOS version is 2.2.3 + a million patches. The only way to find out what they have changed is to go through the changelogs. It makes things more stable from an API point of view but it surely makes hard not only finding out where the issue lies, but also if upgrading version will fix it. Thanks Gabriel - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Hello and Tomcat issues with sticky sessions
On 30.06.2010 13:10, Gabriel Tabares wrote: have you also set de directive in de workers.properties I suggested? in your case that should look like worker.pub-app01.domain=pub-app01 etc My apologies, I am doing 10 things at the time and missed that bit. I now have made the change and it seems to be working (fingers crossed). I have a couple of people testing it out, so fingers crossed! It's weird because I've used mod_jk a lot and never had any domain specified. You won't need a domain setting for stickyness to work. There was something else wrong with your setup. Since your configuration looked OK, mod_jk should have logged any problems when doing stickyness in its log file. Regards, Rainer - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Hello and Tomcat issues with sticky sessions
I now have made the change and it seems to be working (fingers crossed). I have a couple of people testing it out, so fingers crossed! OK, it now works correctly. The only issue I have is that Apache is now adding .number to the end of each request. If I go to myapp/forum, the first time I get myapp/forum.1, the next time is myapp/forum.2, etc. Any hints about this? It's weird because I've used mod_jk a lot and never had any domain specified. You won't need a domain setting for stickyness to work. There was something else wrong with your setup. Since your configuration looked OK, mod_jk should have logged any problems when doing stickyness in its log file. I will look into it when I get more time after we launch the product. I will then have time to investigate why. Regards, Gabriel - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Hello and Tomcat issues with sticky sessions
workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01 worker.pub-app01.port=8009 worker.pub-app01.socket_keepalive=1 worker.pub-app02.type=ajp13 worker.pub-app02.host=app02 worker.pub-app02.port=8009 worker.pub-app02.socket_keepalive=1 worker.pub-app03.type=ajp13 worker.pub-app03.host=app03 worker.pub-app03.port=8009 worker.pub-app03.socket_keepalive=1 worker.pub-app04.type=ajp13 worker.pub-app04.host=app04 worker.pub-app04.port=8009 worker.pub-app04.socket_keepalive=1 worker.pub-app05.type=ajp13 worker.pub-app05.host=app05 worker.pub-app05.port=8009 worker.pub-app05.socket_keepalive=1 worker.ajp13.lbfactor=1 worker.pub-lb.type=lb worker.pub-lb.balance_workers=pub-app01,pub-app02,pub-app03,pub-app04,pub-app05 worker.pub-lb.sticky_session=1 - I think this is what worker.list should look like: worker.list=pub-lb - You might also need for every balance_worker the worker.pub-app0x.redirect=machine_name_where_the_session_from_this_machine_should_be_redirected - For the load balance worker you might need something like: worker.pub-lb.sticky_session_force=False worker.pub-lb.sticky_session=True I am getting these from my 6.0.18 config, so they might be outdated. János - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org
Re: Hello and Tomcat issues with sticky sessions
On 30.06.2010 16:18, János Löbb wrote: workers.properties --- ps=/ worker.list=pub-app01, pub-app02, pub-app03, pub-app04, pub-app05, pub-lb worker.pub-app01.type=ajp13 worker.pub-app01.host=app01 worker.pub-app01.port=8009 worker.pub-app01.socket_keepalive=1 worker.pub-app02.type=ajp13 worker.pub-app02.host=app02 worker.pub-app02.port=8009 worker.pub-app02.socket_keepalive=1 worker.pub-app03.type=ajp13 worker.pub-app03.host=app03 worker.pub-app03.port=8009 worker.pub-app03.socket_keepalive=1 worker.pub-app04.type=ajp13 worker.pub-app04.host=app04 worker.pub-app04.port=8009 worker.pub-app04.socket_keepalive=1 worker.pub-app05.type=ajp13 worker.pub-app05.host=app05 worker.pub-app05.port=8009 worker.pub-app05.socket_keepalive=1 worker.ajp13.lbfactor=1 worker.pub-lb.type=lb worker.pub-lb.balance_workers=pub-app01,pub-app02,pub-app03,pub-app04,pub-app05 worker.pub-lb.sticky_session=1 - I think this is what worker.list should look like: worker.list=pub-lb Aaaah, right. The above won't work, the lb worker needs to be in the list, not the members of the lb. with recent versions of mod_jk you would find a message in the log, that the worker pub-lb used in your JkMount isn't known to mod_jk (because it is missing in the list attribute). - You might also need for every balance_worker the worker.pub-app0x.redirect=machine_name_where_the_session_from_this_machine_should_be_redirected You can use it if you have a very special idea, which node should fail over to which other node, but you can omit it and the balancer will choose one on a per request basis, if there is a problem with a node. - For the load balance worker you might need something like: worker.pub-lb.sticky_session_force=False worker.pub-lb.sticky_session=True Those are both defaults. - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org