0

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?

1 Answer 1

1

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.

1
  • Awesome. I did some tests that seemed to verify that, but I'm glad I was able to confirm it. Thanks! Jan 11, 2011 at 16:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .