从hash_data中删除清漆

时间:2016-12-30 13:43:38

标签: varnish-vcl

是否可以从已经通过之前的hash_data()调用添加的哈希中删除项目?

我有一个清漆3服务器在标准LAMP堆栈前运行,并使用每个清漆文档的Maxmind geoip VMOD,除了有一个包含的VCL文件,我没有权限进行编辑,基本上有: / p>

sub vcl_hash {
  if (req.http.X-Geo-Country) {
    hash_data(req.http.X-Geo-Country);
  }
}

我知道我可以多次调用vcl_hash并按顺序连接,所以我想做的就是下面的内容(un_hash_data不存在),所以主页哈希基于req.http.X-Geo-Country。 是否有类似un_hash_data()的东西可以从哈希中删除它。

sub vcl_hash {
  if (req.url == "/") {
    un_hash_data(req.http.X-Geo-Country);
  }
}

1 个答案:

答案 0 :(得分:0)

在vcl_recv中,您可以针对与主页不匹配的网页/请求取消设置req.http.X-Geo-Country。如果X-Geo-Country未设置/为空 - 将生成相同的哈希值:)