現在、varnish3からvarnish4への移行プロジェクトに取り組んでいます。 私は理解できない動作に直面しています。varnish4 vs varnish3 - graceの動作
簡単に言えば、Varnish3 とVarnish4の両方で使用されているのと同じ設定ファイルを使用して、ヒットとミスに関する同じ結果は得られません。
これはgrace属性に関連しているようですが、どのようにして が動作するかわかりません。そこで、以下
は詳細に問題を説明する例です。
マイvarnish3構成:
# ----------------------------------------------
backend default {
.host = "nginx";
.port = "80";
}
sub vcl_fetch {
set beresp.grace= 5s;
set beresp.ttl = 1s;
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
set resp.http.X-Cache-Hits = obj.hits;
}
# ----------------------------------------------
マイvarnish4構成:(唯一の変更ではなくvcl_fetchのメソッド名 vcl_backend_responseです)
# ----------------------------------------------
vcl 4.0;
backend default {
.host = "nginx";
.port = "80";
}
sub vcl_backend_response {
set beresp.grace= 5s;
set beresp.ttl = 1s;
}
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
set resp.http.X-Cache-Hits = obj.hits;
}
# ----------------------------------------------
与えられたリソースのヘッダーを取得する小さなシナリオの結果いくつかの時間後に:あなたが最初の要求のために、シナリオに見ることができるよう
# ----------------------------------------------
Time 14-47-12
VARNISH4:
X-Cache: MISS
X-Cache-Hits: 0
VARNISH3:
X-Cache: MISS
X-Cache-Hits: 0
Time 14-47-13
VARNISH4:
X-Cache: HIT
X-Cache-Hits: 1
VARNISH3:
X-Cache: MISS
X-Cache-Hits: 0
Time 14-47-20
VARNISH4:
X-Cache: MISS
X-Cache-Hits: 0
VARNISH3:
X-Cache: MISS
X-Cache-Hits: 0
# ----------------------------------------------
ので、v3およびv4の両方が正常であるMISSを返し 。 しかし、1秒後、2番目のリクエストはvarnish3のMISSを返します。 は私にとっては普通ですが、HITはvarnish4のために本当に分かりません。 私はこれが猶予パラメータに関係していると思っていましたので、私は7秒後に私のシナリオで という3番目のリクエストを追加しました(キャッシュ と猶予5秒の挨拶に1秒以上挨拶しました)。 MISSです。
誰かが私を理解するために/回避策をこの問題を助けることができるならば(私は3から4への移行てるながら;)だから... ...私にとって 目的は varnish3よりもvarnish4と同じ結果を得ることです)。 私の現在の回避策はvarnish4にberesp.grace = 1ミリ秒を設定することですが、私は全くそのような をしません、と私は私の構成:(すべてのヘルプは非常に高く評価されるだろう
のすべての上でそれを行うことはできません!事前に
感謝を!:)
私はあなたのリンクをチェックしますが、私の質問は「Varnish3と同じ動作を得る方法」です.Varnish3にも猶予パラメータがあるからです。 – user1961659
確認後、私は正確に同じ動作を得ることができないと思う、 "Age"ヘッダーがconf移行を正しく検証するのに十分かもしれない – user1961659