Using varnish as a cache for more than one website
Marcus Smith
marcussmith at britarch.ac.uk
Tue Jun 29 12:23:22 CEST 2010
Davies Matt J A (LCSS) wrote:
> Hello everyone
>
> What is the best practice way of setting up varnish to act as a cache
> for more than one web site?
>
> I can see I can make multiple backend, and I've read that I can run
> multiple instances of varnish, I'm just wondering what is the best
> practice way?
>
> One thing I can't quite get my head around is how do I tell varnish
> which incoming URL to serve with which backend, or instance.
>
> Scenario
>
> I've got our DNS boys to point a.com and b.com at our varnish server,
> which is going to act as a cache for both sites, both sites being
> very different and needing different rules. Rules that may collide
> also.
>
> If I use the multiple instance route, how do associate an instance
> with an incoming URL?
With a single instance of varnish, having defined your back ends, you
might for example do something like this:
sub vcl_recv {
if (req.http.host == "a.com") {
set req.backend = backend-A;
# More site-specific rules here
}
elsif (req.http.host ~ "(www\.)?b\.com") {
set req.backend = backend-B;
# More site-specific rules here
}
# More sites here
else {
error 404 "Unknown host!";
}
}
best wishes,
Marcus
More information about the varnish-misc
mailing list