强制缓存未命中说明指出:
强制缓存未命中不会驱逐旧内容。这意味着这会导致 Varnish 在缓存中拥有多个内容副本。在这种情况下,总是使用最新的副本。请记住,只要它们的生存时间是正数,重复的对象就会一直存在。
我不想在缓存中保留多个副本。我启动网址的方法是否有效?我通过将旧内容添加到禁令潜伏者来手动驱逐旧内容。然后强制缓存错过自己替换被禁止的内容。
acl purge_prime {
"127.0.0.1";
"::1";
}
sub vcl_recv {
if (req.method == "PRIME") {
if (!client.ip ~ purge_prime) {
return(synth(405,"No priming for you. (" + client.ip + ")"));
}
# Add to the ban lurker. Purging existing pages.
ban("obj.http.x-host == " + req.http.host + " && obj.http.x-url == " + req.url);
# Call the backend to fetch new content and add it to the cache.
set req.method = "GET";
set req.hash_always_miss = true;
}
# ... other custom rules.
}
# ... other subroutines below, e.g. adding ban-lurker support etc.
这个逻辑对我来说是有道理的,我只是担心,因为没有其他人做过(我假设这是有原因的)。
这是使用purge with restart的错误方法吗?如果是这样,使用单个 http 请求启动 url 的最佳方法是什么?