GeoIP Detection and Country Specific Content

Brett Fitzgerald brettgfitzgerald at
Thu Jan 29 19:24:10 CET 2015

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 <
guillaume.quintard at> 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
> varnish-misc at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the varnish-misc mailing list