特定のページがキャッシュされないようにする必要がある場合があり、それらすべてにバックエンドによって設定された次の応答ヘッダーがあります。
Cache-Control: no-cache, no-store, must-revalidate, max-age=0
ただし、Varnishは、これらのページを問題なくキャッシュします。これを防ぐために構成に追加できるものはありますか? vcl_deliver
またはvcl_fetch
サブルーチンに入れるべきものだと思います、 しかし、ドキュメントはあまり役に立ちません (とにかく私にとって)。
基本的に何かを探しています このように しかし逆に-応答のヘッダーをチェックする必要があります。
ワニスはバージョン3.0です(いいえ、現在アップグレードできません)
関連する構成:
sub vcl_fetch {
if (req.http.X-Varnish-Use-Cache && beresp.status != 500) {
set beresp.ttl = 24h;
set beresp.do_esi = true;
unset beresp.http.Set-Cookie;
}
return (deliver);
}
sub vcl_deliver {
if(!resp.http.X-Cache) {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
} else {
if (obj.hits > 0) {
set resp.http.X-Cache = resp.http.X-Cache + ", HIT";
} else {
set resp.http.X-Cache = resp.http.X-Cache + ", MISS";
}
}
set resp.http.X-Flavour = req.http.X-Flavour;
return (deliver);
}
ワニスは_Cache-Control
_ヘッダーを尊重する必要があります。
最も可能性の高い原因は、_vcl_fetch
_のreturn (deliver)
です。これは、Varnishのデフォルトの処理をバイパスします。これは、通常、_Cache-Control
_設定を適用し、コンテンツをキャッシュ不可としてマークします。 。
したがって、_vcl_fetch
_の下部から削除することをお勧めします。