多くのお客様のフロントエンドとして Varnish Cache を使用しており、バックエンドが故障している間は古いコンテンツを適切にサーバーします。
現在、バックエンドに障害が発生しており、猶予期間を延長したいと考えています (問題が発生している間)。それは可能なシナリオですか? ドキュメントを掘り下げてみましたが、何も見つかりませんでした。
ワニス 4
多くのお客様のフロントエンドとして Varnish Cache を使用しており、バックエンドが故障している間は古いコンテンツを適切にサーバーします。
現在、バックエンドに障害が発生しており、猶予期間を延長したいと考えています (問題が発生している間)。それは可能なシナリオですか? ドキュメントを掘り下げてみましたが、何も見つかりませんでした。
ワニス 4
病気のバックエンドが一般的に使用されるキャッシュである場合、Varnish Cache 4.x で古いコンテンツを提供します。vcl_hit
独自のサブルーチンを実装するだけです。アイデアは、高い猶予値 (たとえば 24 時間) を使用してコンテンツをキャッシュすることですが、バックエンドが正常な場合は猶予を短い時間枠 (たとえば 10 秒) に制限します。
sub vcl_hit {
if (obj.ttl >= 0s) {
# Normal hit.
return (deliver);
}
# We have no fresh fish. Lets look at the stale ones.
if (std.healthy(req.backend_hint)) {
# Backend is healthy. Limit age to 10s.
if (obj.ttl + 10s > 0s) {
return (deliver);
} else {
# No candidate for grace. Fetch a fresh object.
return(fetch);
}
} else {
# Backend is sick. Use full grace.
if (obj.ttl + obj.grace > 0s) {
return (deliver);
} else {
# No graced object.
return (fetch);
}
}
}
詳細については、次を確認してください。