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?

jerhinesmith
  • 171
  • 1
  • 1
  • 11

1 Answers1

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.

Conor McDermottroe
  • 948
  • 1
  • 7
  • 17