httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Neil Gunton <n...@nilspace.com>
Subject Re: mod_proxy distinguish cookies?
Date Mon, 26 Apr 2004 13:38:02 GMT
Igor Sysoev wrote:
> 
> On Sat, 24 Apr 2004, Neil Gunton wrote:
> 
> > Neil Gunton wrote:
> > >
> > > Hi all,
> > >
> > > I apologise in advance if this is obvious or otherwise been answered
> > > elsewhere, but I can't seem to find any reference to it.
> > >
> > > I am using Apache 1.3.29 with mod_perl, on Linux 2.4. I am running
> > > mod_proxy as a caching reverse proxy front end, and mod_perl on the
> > > backend. This works really well, but I have noticed that mod_proxy does
> > > not seem to be able to distinguish requests as being different if the
> > > URLs are the same, but they contain different cookies. I would like to
> > > be able to enable more personalization on my site, which would best be
> > > done using cookies. The problem is that when a page has an expiration
> > > greater than 'now', then any request to the same URL will get the cache
> > > version, even if the requests have different cookies. Currently I have
> > > to pass options around as part of the URL in order to make the requests
> > > look different to mod_proxy.
> > >
> > > Am I missing something here? Or, will this be included in either future
> > > versions of mod_proxy or the equivalent module in Apache 2.x? Any
> > > insights greatly appreciated.
> >
> > I should perhaps make clear that I do have cookies working through the
> > proxy just fine, for pages that are set to be 'no-cache'. So this isn't
> > an issue with the proxy being able to pass cookies to/from the backend
> > and browser (which I think I have seen mentioned before as a bugfix),
> > but rather with mod_proxy simply being able to distinguish otherwise
> > identical URL requests that have different cookies, and cache those as
> > different requests.
> >
> > So for example, the request "GET /somedir/somepage.html?xxx=yyy" passed
> > with a cookie that value 'pics=small' should be seen as different from
> > another identical request, but with cookie value 'pics=large'. Currently
> > my tests indicate that mod_proxy returns the same cached page for each
> > request.
> >
> > I assume that mod_proxy only checks the actual request string, and not
> > the HTTP header which contains the cookie.
> >
> > Obviously, under this scheme, if you were using cookies to track
> > sessions then all requests would get passed to the backend server - so,
> > perhaps it would be a nice additional feature to be able to configure,
> > through httpd.conf, how mod_proxy (or its successor) pays attention to
> > cookies. For example, you might say something to the effect of "ignore
> > this cookie" or "differentiate requests using this cookie". Then we
> > could have sitewide options like e.g. 'pics' (to set what size pictures
> > are shown), and this could be used to distinguish cached pages, but
> > other cookies might be ignored on some pages. This would allow for more
> > flexibility, with some cached pages being "sensitive" to cookies, while
> > others are not. An obvious way this would be useful is in the use of
> > login cookies. These will be passed in by the browser for every page on
> > the site, but this doesn't mean we want to distinguish cached pages
> > based on it for every page. Some user-specific pages would have
> > 'no-cache' set, while other pages could be set to ignore this login
> > cookie, thus gaining the benefits of the proxy caching. This would be
> > useful for pages that have no user-specific or personalizable aspects -
> > they could be cached regardless of who is logged in.
> >
> > Sorry if this wasn't clear from the original post, just wanted to
> > clarify and expand... any advice on this would be VERY welcomed, since
> > my options with personalization are currently rather limited.
> >
> > Also, if this is actually addressed to the wrong list for some reason
> > then a pointer would be much appreciated...
> 
> mod_accel ( http://sysoev.ru/en/ ) allows to take cookies into account while
> caching:
> 
> AccelCacheCookie  some_cookie_name another_cookie_name
> 
> You can set it on per-location basis.
> 
> Besides, my upcoming light-weight http and reverse proxy server nginx
> will allow to do it too.
> 
> Igor Sysoev
> http://sysoev.ru/en/

Thanks a lot Igor, I will try to find the time over the next couple of
days to look into your module and build my Apache with it. I'll let you
know how I get on...

-Neil

Mime
View raw message