You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Brian Rectanus <br...@vt.edu> on 2006/05/11 20:23:38 UTC

[users@httpd] mod_proxy_balancer stickysession issues

Hello all,

I am having problems with mod_proxy_balancer and sticky sessions in
2.2.0 - 2.2.2.

Here is what I have:

NameVirtualHost *:80
Listen 80
<VirtualHost *:80>
  ...
  <Proxy balancer://apps>
    BalancerMember http://server1:8000 route=server1
    BalancerMember http://server2:8000 route=server2
  </Proxy>
  ProxyPass / balancer://apps/ stickysession=MYCOOKIE nofailover=On
</VirtualHost>

This *should* balance all requests to either server1 or server2 and
append a '.server[12]' to the MYCOOKIE value.  Then, on the next request
MYCOOKIE value would be something like '1234567.server1', and the route
set to server1.  Is this correct?

However, the route is not being appended to the cookie value, so the
sessions are not sticky.

1) Client requests main page
2) Server sends main page w/Set-Cookie MYCOOKIE=1234567
3) Client makes sub-requests w/Cookie MYCOOKIE=1234567
4) Server balances as if no sticky sessions (no route found)

Should 2) above be:

2) Server sends main page w/MYCOOKIE=1234567.server1

as I expect?


Also, some other concerns:

1) The separator between sessionid and route is not overridable
  a) '.' seems to be common in sessionids
  b) '.' is used by mod_usertrack and makes it incompatible

  Could something be added to store the route data in another field or
be able to specify the field separator?  Maybe routename=cookie:MYROUTE

  Or, perhaps proxy_balancer should be looking for the *last* '.'
instead of the first one?

2) The documentation states you can use RewriteRule w/ [P], but
   ProxySet is not documented w/o browsing the code.
  a) ProxySet balancer://apps stickysession=foo nofailover=On
     works but, again, is not documented
  b) ProxySet stickysession=foo nofailover=On
     works within <Proxy> on 2.2.2, but only if after BalancerMember
     and is also not documented.

3) Seemingly no way to know where the response came from on the reverse
proxy server.  It would be nice to have an ENV var set or a header added
to response with the value of the backend route or balancer name.

Thanks,
-B

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org