GeoIP Detection and Country Specific Content

Max Clark max.clark at gmail.com
Thu Jan 29 16:35:49 CET 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20150129/6620227c/attachment.html>


More information about the varnish-misc mailing list