2017-11-02 4 views
0

現在、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ミリ秒を設定することですが、私は全くそのような をしません、と私は私の構成:(すべてのヘルプは非常に高く評価されるだろう

のすべての上でそれを行うことはできません!事前に

感謝を!:)

答えて

2

ワニス4は、第2の要求に(How objects are storedを参照)古いオブジェクトを提供します。

Grace modeとお読みください。Understanding Grace using varnishtestとお試しください。

+0

私はあなたのリンクをチェックしますが、私の質問は「Varnish3と同じ動作を得る方法」です.Varnish3にも猶予パラメータがあるからです。 – user1961659

+0

確認後、私は正確に同じ動作を得ることができないと思う、 "Age"ヘッダーがconf移行を正しく検証するのに十分かもしれない – user1961659

関連する問題