httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nick Gearls <nickgea...@gmail.com>
Subject Re: Adding stickysession cookie on the proxy
Date Thu, 06 Mar 2008 11:43:50 GMT
Great idea

Nick


Jani M. wrote:
> Hi,
> 
> I've been playing with the idea of adding support for the proxy module 
> to add stickysession cookies on behalf of the backend servers. I have 
> one case on my hands right now where this would be needed, and I can 
> think of this being of use for others too.
> 
> The way this would work is that if the proxy would see a response from a 
> backend to which no LB cookie was received either from the client or the 
> backend, a new cookie would be injected to the response. If the cookie 
> already exists, nothing would be done. The cookie when added would be 
> based on the balancer and member-name of the current worker
> 
> Before I start hacking at the code, I'd like to confirm a few things.
> 
> To start with, am I correct in assuming that others might find use for 
> this feature? Should I do this, what are my chances of seeing the 
> feature added to a future 2.2.x release?
> 
> By the way, is it just me, or is the current documentation on how the 
> stickysession feature works quite a bit confusing? From the docs I at 
> least understand it so that it would be possible to use any generic 
> session-id based cookie (whether it's PHPSESSION, JSESSIONID or 
> something else). However, both trying this in practice and looking 
> through the code gives a rather different view - the format of the 
> stickysession cookie appears to be very strict, having to match the 
> balancer-name and the route defined for the BalancerMember.
> 
> Regardless, back to the subject. I've been going through the proxy code, 
> and while it's by no means a simple module, adding this functionality 
> doesn't look too difficult. My current plan to attack this would be 
> roughly:
> 
> - Add a "setsticky=Off/On" parameter to ProxyPass / ProxySet
> - In ap_proxy_http_process_response, add the necessary code to check if 
> the cookie exists, and if not, add it. This could likely happen 
> somewhere near ap_proxy_read_headers. Moving get_cookie_param from 
> mod_proxy_balancer.c to proxy_util.c would allow to reuse it here.
> 
> Any thoughts and/or comments?
> 
> Cheers,
> Jani
> 

Mime
View raw message