I'm new to Varnish, and I'm hoping it already does this "out of the box", but I'd like to clarify before I consider using it in production:

Here's my setup:

  1. I have multiple sites running off of the same machine that vary by subdomain (i.e. user1.example.com, user2.example.com, etc.)
  2. Each "site" has a profile picture that has the same name (i.e. user1.example.com/profile.png, user2.example.com/profile.png)

Will Varnish recognize these as separate resources and cache them accordingly? Or will I need to change something in the VCL to tell it include the full host url when looking up cache hits?

link|improve this question

feedback

1 Answer

up vote 1 down vote accepted

They will be cached separately out of the box.

The default code for vcl_hash is what controls this:

sub vcl_hash {
    set req.hash += req.url;
    if (req.http.host) {
        set req.hash += req.http.host;
    } else {
        set req.hash += server.ip;
    }
    return (hash);
}

As you can see, the hostname is included in the hash if it exists, and if it doesn't, the IP of the server is included.

link|improve this answer
Awesome. I did some tests that seemed to verify that, but I'm glad I was able to confirm it. Thanks! – jerhinesmith Jan 11 '11 at 16:19
feedback

Your Answer

 
or
required, but never shown

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