On 01/29/2015 04:35 PM, Max Clark wrote: > Hello, > > We have been working to enable region specific content for our web > site. The basic mechanism is already in place, specifically: > > When a user visits the site and a cookie is not present the > application server will compare their IP address with the GeoIP > database. Based on the result the application server will generate the > proper content for the user (different logo images, text, etc...) and > return this with a cookie specifying the edition for future requests > bypassing the GeoIP lookup. The cookie will also allow the user to > select a different region than what their IP resolves to. > > Again this is working in the application, and Varnish was extended to > match on the cookie value (named "edition") and to use the edition > value as part of the hash data so there is a unique cache for the > different regions. > > Here's the problem: > > When a user visits the site for the first time they do not have a > cookie in the request. So Varnish has a blank value for the edition as > part of the hash data. However this request when it hits the > application server does resolve to a specific edition and return the > region content on the reply. This is being cached by Varnish and used > for future requests by new users with no cookie. > > Put simply, if the page is not in cache, and a browser from the > UK does not have the edition cookie a page with UK content is > generated and cached in Varnish. If a browser from the US goes to the > same page, Varnish will serve the US user the UK cached page because > this is what was cached based on the hash data. > > Without turning off caching for cookieless requests - how do we > resolve this? >
I may not have understood exactly what you need, but can't you hash the country code instead of the cookie ? -- Guillaume Quintard
_______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
