強制キャッシュ ミスのメモには次のように記載されています。
キャッシュ ミスを強制しても、古いコンテンツは削除されません。これは、Varnish がコンテンツの複数のコピーをキャッシュに持つことを意味します。このような場合、常に最新のコピーが使用されます。複製されたオブジェクトは、有効期限が正である限り存続することに注意してください。
キャッシュに複数のコピーを保持したくありません。URL をプライミングする私のアプローチは有効ですか? 古いコンテンツをban lurkerに追加して手動で削除します。そして、キャッシュミスを強制して、禁止されたコンテンツを置き換えました。
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.
ロジックは私には理にかなっています。他の誰もそれを行っていないので、私はただ心配しています(理由があると思います)。
単一の http リクエストを使用して URL を準備する最良の方法は何ですか?