一台服务器两套缓存(Varnish Cache)

Two sets of cache with one server (Varnish Cache)

是否可以使用两个独立的缓存存储来设置 Varnish Cache?

然后基于 http 自定义 header 使用 cache1 或 cache2。

例如:

当后端根据 header(但使用相同的 url)以不同的 body 响应时,就会出现此用例 - 一个合法的用例。

您可以完全按照分区 Varnish 缓存的描述来处理这个问题,类似于 putting Varnish static files cache separately

但你想要的其实要简单得多。您的特殊情况应该可以通过调整 VCL 轻松解决。您只需要告诉 Varnish 缓存应该根据特定的 header 而不同。所以在你的 VCL 中,你会指定:

sub vcl_hash {
    if (req.http.store) {
        hash_data(req.http.store);
    }
}

vcl_hash 指定缓存应根据 store HTTP header 的值而有所不同。