On 1/15/2015 1:30 PM, Shawn Heisey wrote:
> Let's say that I have a server named 'friday' in my backend, and it has
> "cookie friday" on the server line.  Let's also say that the web server
> sets the JSESSIONID with that server name in it, like this:
> 
> JSESSIONID=6ED8B9D4544820B2C073579E17BF3A67.friday
> 
> If I use "cookie JSESSIONID" in the backend config, will that see the
> cookie value in the cookie set by the server and send additional
> requests to that specific server?
> 
> If that will work right, I was thinking of using "cookie JSESSIONID
> indirect preserve" ... would that be a reasonable config?  I'm having a
> hard time figuring out from the documentation exactly what happens when
> the various options are combined.

>From what I can see in the log when I tried this configs on a staging
backend that only has one server, having ".friday" at the end of the
cookie does NOT work -- the third flag character is "I" which the docs
say means that an invalid cookie was found.  Having a config option that
would allow this to work would be really nice.

With just "cookie JSESSIONID" all the flags are ----.  With "cookie
JSESSIONID prefix" I get the expected --VN flags -- but it is haproxy
that decides which server to use, not the actual server.

I'm using a completely different cookie (one that is not present in the
response from the application) for the production backend, and that
seems to be working really well:

cookie SRV insert indirect postonly nocache

The only problem I can foresee with that config is that haproxy's
persistence with the SRV cookie might send the request to friday, but
the JSESSIONID would cause the Apache cluster to then forward the
request to tomcat running on tanstaafl instead, and I'd like to avoid
that.  If I could have haproxy learn what server needs to see the
request from the JSESSIONID cookie that tomcat sets (all servers run
both Apache and tomcat), inter-server traffic from user requests would
be kept to a minimum.

If haproxy already has a set of config options I can set that will have
it look for the server cookie value at the end of JSESSIONID, please let
me know what those options are.

Thanks,
Shawn


Reply via email to