mod_balancer_proxy not balancing as expected (not sticky)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Hello,
I'm trying to configure Apache as a
reverse proxy to load balance across 3 web/app servers. It must be
sticky for sessions to work properly, and JSESSIONID is apparently the
value I should use for this app.
For some reason, even though it detects
the JSESSIONID value and assigns the request to the correct route, the
request is routed to an incorrect (ie didn't remain sticky) server. For
example, it sends me to app1 then app2. I thought if I started with
app1 it would stick with app1 assuming it detected my JSESSIONID. For
some reason, it's jumping all around. See debug log below and you'll
see the way it's doing this.
RHEL 5.5
Server version: Apache/2.2.3
Server built: Mar 4 2010
09:57:54
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util
1.2.7
Compiled using: APR 1.2.7, APR-Util
1.2.7
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked:
yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped
addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Here's my config:
----------------------
NameVirtualHost *:80
NameVirtualHost *:8080
ProxyVia Full
<VirtualHost *:80>
ServerName bwd1finpxy01.corpadds.com
</VirtualHost>
<VirtualHost *:8080>
LogLevel Debug
ServerName oebs.finprod.ceridian.net
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /balancer-manager>
SetHandler
balancer-manager
Order Deny,Allow
Deny from
all
Allow from
10.0.0.0/8
Allow from
170.153.0.0/16
Allow from
127.0.0.1
</Location>
ProxyPreserveHost On
ProxyPass /balancer-manager !
ProxyPass / balancer://internalapp/
lbmethod=byrequests stickysession=JSESSIONID|jsessionid nofailover=On
ProxyPassReverse / balancer://internalapp/
<Proxy balancer://internalapp>
BalancerMember
http://bwd1finapp01.corpadds.com:8001
route=app01 loadfactor=1
BalancerMember
http://bwd1finapp02.corpadds.com:8001
route=app02 loadfactor=1
BalancerMember
http://bwd1finapp03.corpadds.com:8001
route=app03 loadfactor=1
</Proxy>
</VirtualHost>
---------------------------------------
and here's some output from the debug
log, where you see it sending requests to different bancer members:
-------------------------------------
[Wed Aug 18 13:57:49 2010] [debug] mod_proxy_balancer.c(276):
proxy: BALANCER: Found value de92e7414f39683a7a8066a272f1271fe0e55951b07c202f1799f225c14459b8.e38Lax8PchqPbO0TbhqNahmRc3b0
for stickysession JSESSIONID|jsessionid
[Wed Aug 18 13:57:49 2010] [debug] mod_proxy_balancer.c(286):
proxy: BALANCER: Found route e38Lax8PchqPbO0TbhqNahmRc3b0
[Wed Aug 18 13:57:49 2010] [debug] mod_proxy_balancer.c(535):
proxy: BALANCER (balancer://internalapp) worker (http://bwd1finapp02.corpadds.com:8001)
rewritten to http://bwd1finapp02.corpadds.com:8001/OA_HTML/AppsLogin
[Wed Aug 18 13:57:49 2010] [debug] mod_proxy_balancer.c(276):
proxy: BALANCER: Found value de92e7414f39683a7a8066a272f1271fe0e55951b07c202f1799f225c14459b8.e38Lax8PchqPbO0TbhqNahmRc3b0
for stickysession JSESSIONID|jsessionid
[Wed Aug 18 13:57:49 2010] [debug] mod_proxy_balancer.c(286):
proxy: BALANCER: Found route e38Lax8PchqPbO0TbhqNahmRc3b0
[Wed Aug 18 13:57:49 2010] [debug] mod_proxy_balancer.c(535):
proxy: BALANCER (balancer://internalapp) worker (http://bwd1finapp03.corpadds.com:8001)
rewritten to http://bwd1finapp03.corpadds.com:8001/OA_HTML/AppsLocalLogin.jsp?langCode=US
[Wed Aug 18 13:57:54 2010] [debug] mod_proxy_balancer.c(276):
proxy: BALANCER: Found value de92e7414f39683a7a8066a272f1271fe0e55951b07c202f1799f225c14459b8.e38Lax8PchqPbO0TbhqNahmRc3b0
for stickysession JSESSIONID|jsessionid
[Wed Aug 18 13:57:54 2010] [debug] mod_proxy_balancer.c(286):
proxy: BALANCER: Found route e38Lax8PchqPbO0TbhqNahmRc3b0
[Wed Aug 18 13:57:54 2010] [debug] mod_proxy_balancer.c(535):
proxy: BALANCER (balancer://internalapp) worker (http://bwd1finapp03.corpadds.com:8001)
rewritten to http://bwd1finapp03.corpadds.com:8001/OA_HTML/RF.jsp?function_id=28566&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=US¶ms=PxXpiqMs416s7FG5eW95o8UFiVkywaIKgiQWsKNGTFY&oas=L2Ypksutic3wM1XKz7SKEg..
[Wed Aug 18 13:57:55 2010] [debug] mod_proxy_balancer.c(276):
proxy: BALANCER: Found value de92e7414f39683a7a8066a272f1271fe0e55951b07c202f1799f225c14459b8.e38Lax8PchqPbO0TbhqNahmRc3b0
for stickysession JSESSIONID|jsessionid
[Wed Aug 18 13:57:55 2010] [debug] mod_proxy_balancer.c(286):
proxy: BALANCER: Found route e38Lax8PchqPbO0TbhqNahmRc3b0
[Wed Aug 18 13:57:55 2010] [debug] mod_proxy_balancer.c(535):
proxy: BALANCER (balancer://internalapp) worker (http://bwd1finapp01.corpadds.com:8001)
rewritten to http://bwd1finapp01.corpadds.com:8001/OA_HTML/cabo/styles/cache/swanEXTN-custom-2_3_6_5-en-gecko.css
[Wed Aug 18 13:57:55 2010] [debug] mod_proxy_balancer.c(276):
proxy: BALANCER: Found value de92e7414f39683a7a8066a272f1271fe0e55951b07c202f1799f225c14459b8.e38Lax8PchqPbO0TbhqNahmRc3b0
for stickysession JSESSIONID|jsessionid
[Wed Aug 18 13:57:55 2010] [debug] mod_proxy_balancer.c(286):
proxy: BALANCER: Found route e38Lax8PchqPbO0TbhqNahmRc3b0
[Wed Aug 18 13:57:55 2010] [debug] mod_proxy_balancer.c(535):
proxy: BALANCER (balancer://internalapp) worker (http://bwd1finapp02.corpadds.com:8001)
rewritten to http://bwd1finapp02.corpadds.com:8001/OA_HTML/cabo/jsLibs/Common2_3_6_5.js
----------------------------------------
Any suggestions or tips regarding debugging
this would be appreciated.
This communication is intended to be received only by the individual[s] or entity[s] to whom or to which it is addressed, and contains information which is confidential, privileged and subject to copyright. Any unauthorized use, copying, review or disclosure is prohibited. Please notify the sender immediately if you have received this communication in error [by calling collect, if necessary] so that we can arrange for its return at our expense. Thank you in advance for your anticipated assistance and cooperation.
Cette communication est destinée uniquement à la personne ou à la personne morale à qui elle est adressée. Elle contient de l’information confidentielle, protégée par le secret professionnel et sujette à des droits d'auteurs. Toute utilisation, reproduction, consultation ou divulgation non autorisées sont interdites. Nous vous prions d’aviser immédiatement l’expéditeur si vous avez reçu cette communication par erreur (en appelant à frais virés, si nécessaire), afin que nous puissions prendre des dispositions pour en assurer le renvoi à nos frais. Nous vous remercions à l’avance de votre coopération.
[Index of Archives]
[Open SSH Users]
[Linux ACPI]
[Linux Kernel]
[Linux Laptop]
[Kernel Newbies]
[Security]
[Netfilter]
[Bugtraq]
[Squid]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Samba]
[Video 4 Linux]
[Device Mapper]