根据自定义标题清漆缓存

时间:2014-03-14 12:03:14

标签: caching varnish varnish-vcl

我使用Varnish来服务网站,但需要让缓存依赖于Geo位置。我写了一个小的Vmod,它使用Ip2Location设置一个请求标头,其中包含国家代码,然后通过Apache将其传递给我的应用程序(Magento),提供相关内容,但我需要Varnish根据国家/地区代码进行缓存

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

我对此进行了整理。

在vcl_hash子例程中,我需要将国家/地区代码添加到散列数据中。

sub vcl_hash {
     hash_data(req.url);
     if (req.http.host) {
         hash_data(req.http.host);
     } else {
         hash_data(server.ip);
     }
     hash_data(req.http.X-Country-Code);

     return (hash);
}

我正在使用的默认vcl已将整个vcl_hash子例程注释掉,因为它使用了req.hash而不是hash_data(),这在Varnish 3中不再可用,因此需要进行调整。