2

default.vcl ファイル (Varnish 3) をセットアップする際に、vcl_fetch が beresp.grace または obj.grace のいずれかを使用するように、さまざまな推奨事項が表示されます。違いはなんですか?

https://www.varnish-cache.org/docs/3.0/reference/vcl.html obj.grace オブジェクトの猶予期間 (秒単位)。obj.grace は書き込み可能です。beresp.grace 猶予を有効にする期間を設定します。

ほとんど同じように聞こえます。

https://www.varnish-software.com/static/book/Saving_a_request.html set beresp.ttl=1m;のように一緒に使用する必要があります。req.grace = 30 秒に設定します。beresp.grace = 1h を設定します。

明確にしたい。また、ttl に関するアイデアも役立ちます。悲しいことに、ドキュメントの多くはまだ V2 用です: http://drupal.org/node/1823970

4

1 に答える 1

4

この 2 つは、VCL コードの別の場所で使用されています。

(V3)の代表的な使用例をいくつか挙げると、違いはこうです。(req を obj に置き換えます)。

sub vcl_fetch {
   set beresp.grace = 1h;
}

このコードは、キャッシュ オブジェクトを最大 1 時間使用可能としてマークするように varnish に指示しています。

このコードに対して:

sub vcl_recv {
  if (req.backend.healthy) {
    set req.grace = 30s;
  } else {
    set req.grace = 1h;
  }
}

... (この場合)バックエンドが正常であることに基づいて、指定された時間までマークされたオブジェクトを使用するようにワニスに指示しています。

TTL はアイテムがキャッシュされる期間であり、非常に特定の (または奇妙な) 要件がない限り、アプリケーションまたは Web サーバー層でキャッシュ ヘッダーを設定するのが最適です)。

VCL で TTL を設定する必要があるのは、ヘッダーとは異なるものが必要な場合、またはオブジェクトをキャッシュできる時間を静かに (要求しているブラウザーにヘッダーを渡さずに) 延長する必要がある場合だけです。

于 2013-04-09T04:04:53.390 に答える