1

I just started reading about Varnish and am considering using it as a frontend to my webservers. I have multiple domains on my webserver that fetch the same content when the same query strings are used. So lets say one client visits:

http://domain1.com/script.php?string1=abc&string2=123

And later on, someone else visits:

http://domain2.com/script.php?string1=abc&string2=123

Would Varnish cache the results from the first visit and use that for the second client? Thanks!

EDIT: After some more reading, it sounds like the following may work:

sub vcl_hash {
    set req.hash += req.url;
    return (hash);
}

So instead of added the http.host variable to the hash, it ignores it.

Lin
  • 2,909
  • 7
  • 27
  • 25

2 Answers2

3

You can configure it to do so, sort-of. By default, it won't (and shouldn't).

From Varnish FAQ/HowDoI

I have a site with many hostnames, how do I keep them from multiplying the cache?

You can do this by normalizing the "Host" header for all your hostnames. Here's a VCL example:

if (req.http.host ~ "^(www.)?example.com") { set req.http.host = "example.com"; }

Kjetil Joergensen
  • 5,994
  • 1
  • 27
  • 20
  • That or it's probably possible to strip the hostname entirely and just use the remainder of the path. YMMV. – Jauder Ho Jul 17 '09 at 11:11
  • Hmm, I added some code above that may work. If anyone can confirm, that'd be great! – Lin Jul 17 '09 at 18:06
  • I don't think (or don't hope) that Lin is asking about how to share the cache. The problem is that sharing the same data across urls on different sites could be a security/integrity issue. http://www.example.com/bobs_friends/ is NOT the same as http://www.example2.com/bobs_friends/. Serving one when the other is asked for could be disastrous. – Lee B Jan 24 '10 at 15:58
0

I have 3 domains on my VM, I am using Nginx and Varnish, currently I am on a pre prod configuration, here what I am doing :

NGINX:80 ==> VARNISH:8080 ==> NGINX:8081

I am using Nginx:80 like a proxy IF the domain needs Varnish, if not, I use FastCGI stuff. In this exemple, the not Varnish sites are not concerned by Varnish. It looks stupid but it woks ;-) and none of my customers complain (yet....).

Thomas Decaux
  • 1,289
  • 12
  • 13