Caching 如何使varnish缓存子域相同?

Caching 如何使varnish缓存子域相同?,caching,varnish,varnish-vcl,Caching,Varnish,Varnish Vcl,我想服务/存储相同的缓存文件,而不管子域是什么,除了api子域之外,它有自己的缓存 例如: www.example.com us-1.example.com md-3.example.com 它们都有相同的缓存文件,但是api.example.com是分开的 我唯一能想到的是在返回的过程中覆盖主机头,但这是一个问题,因为我需要后端能够确定并区分发送到它的子域 我是新手,所以我不太确定怎么做。谢谢 只需覆盖vcl_哈希即可规范化主机名: sub vcl_hash { hash_data(req

我想服务/存储相同的缓存文件,而不管子域是什么,除了
api
子域之外,它有自己的缓存

例如:

www.example.com
us-1.example.com
md-3.example.com

它们都有相同的缓存文件,但是
api.example.com
是分开的

我唯一能想到的是在返回的过程中覆盖主机头,但这是一个问题,因为我需要后端能够确定并区分发送到它的子域


我是新手,所以我不太确定怎么做。谢谢

只需覆盖vcl_哈希即可规范化主机名:

sub vcl_hash {
  hash_data(req.url);
  if (req.http.host == "api.example.com") {
    hash_data(req.http.host);
  }
  return (hash);
}