Hi,

Best would be to move geoip lookup into varnish. That way you can set 
req.http.cookie value to the correct country before varnish looks up the object 
in its cache.

Regards,
Thierry


-------- Message d'origine --------
De : Max Clark
Date :29/01/2015 17:40 (GMT+01:00)
A : [email protected]
Objet : GeoIP Detection and Country Specific Content

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?

Thanks in advance,
Max
_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to