I recently went through a very similar situation. We solved it by using a vmod to do a country (and timezone, in our case) lookup, set the values in an http header, and then vary on that header.
On Thu Jan 29 2015 at 11:54:12 AM Guillaume Quintard < [email protected]> wrote: > 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
_______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
