Looks like you have 2 problems:
1) You need the client's IP: Most HTTP load balancers can insert a
header with the client IP in it. Otherwise, you can look at
transparent mode.
2) The content is not cacheable b/c certain parts are different for
every user: Move the varying content into an iframe, make it an ajax
call, or use client-side javascript to vary the content. Then don't
cache the extra http request.
Aaron Chu
On May 30, 2006, at 9:00 AM, Chris Lightfoot wrote:
I am looking at deploying squid as an HTTP accelerator in
front of a site which uses an IP-to-country lookup to vary
certain elements of the site's content. Obviously I can't
specify this information in the Vary: header; I could have
the site emit `Vary: *' but that would guarantee that no
useful cacheing is done.
Is there a suggested solution to this? One which occurs to
me is to modify squid to do the IP-to-country lookup
itself, and to add an additional header to the client's
request containing the results of the lookup; the
application behind the accelerator could then name this
header in the Vary: header it returns. I think that would
work, but it's a bit ugly; is there a better (or, better
still, standard) approach?
--
``Every revolution evaporates and leaves behind
only the slime of a new bureaucracy.'' (Kafka)