Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question

2 Answers 2

up vote 3 down vote accepted

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"; }

share|improve this answer
    
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. example.com/bobs_friends is NOT the same as example2.com/bobs_friends. Serving one when the other is asked for could be disastrous. –  Lee B Jan 24 '10 at 15:58

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....).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.