带有一个服务器的两组缓存(Varnish Cache)

时间:2018-04-10 16:24:14

标签: reverse-proxy varnish varnish-vcl

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

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

例如:

  • 请求1带有头(store = Cache1),这应该转到Cache1 存储在Varnish缓存中
  • 请求2的内容与请求1完全相同,但是标题(store = Cache2)应该转到Varnish缓存中的Cache2存储

当后端根据标题响应不同的主体(但使用相同的URL)时,就会发生这种用例 - 一个合法的用例。

1 个答案:

答案 0 :(得分:1)

您可以通过对Varnish缓存进行分区来完全处理此问题,类似于putting Varnish static files cache separately

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

localhost/path/path/signup

sub vcl_hash { if (req.http.store) { hash_data(req.http.store); } } 指定缓存应根据vcl_hash HTTP标头的值而有所不同。