Varnish 3.0.3 req.hash_always_miss vs Vary

时间:2012-11-28 11:10:05

标签: hash varnish purge

我正在尝试构建一个可以根据特定系统的要求清除和重新生成URL的系统。我以前遇到过清除问题,当系统通过哈希定位对象时却错过了变体,因为我没有“清除”;在我的vcl_miss中(仅在我的vcl_hit中,一些指南/示例vcl文件没有提到这个需要,但主文档确实here)。

我想弄清楚的是,如果我需要为REGEN调用做类似的事情。根据我的理解,“set req.hash_always_miss = true;”将意味着错过旧的哈希并生成新的哈希对象。后续调用将找到新的哈希值,但如果缓存中没有适当的变量,则可能仍会遗漏该对象。

有人可以向我确认后续请求是否会错过新对象中的变体是否会直接导致缓存未命中和获取,而不是从上一个对象中找到任何变体?

1 个答案:

答案 0 :(得分:1)

hash_always_miss只会影响当前/正在进行的请求及其替换的缓存内容。将始终进行提取,并使用与任何其他未命中/提取序列相同的规则将对象放入缓存中。

相同散列的“旧”其他变体仍然是有效对象,并将被提供给客户端,指示与变化的标头匹配的请求标头。

hash_always_miss将替换当前变体,而不是其他任何内容。

要回答你的问题,你的句子的第二部分是最正确的。