0

HTTP の新機能ではなく、varnish の新機能です。これが初心者/明白な領域である場合はお詫びしますが、グーグルについては答えが明らかにされていません。

ワニスがesiインクルードURLにリクエストを行うとき

  1. デフォルトで送信される Cookie (およびその他の要求情報)

  2. vclこれは、構成ファイルを介してプログラムで制御できますか。

つまり、ワニスに含まれるesiのポイントは、キャッシュから取得されたページにステートフルな情報を入力できるようにすることであると私は理解しています。このステートフルな情報は、(おそらく) セッション ID を使用してアプリケーションによってフェッチされます。セッション ID は通常、Cookie で送信されるデータを介して実装されます。

私にははっきりしないのは、ワニスがただ通過するかどうかです

  • 元のリクエストの Cookie 情報
  • アプリケーションの応答Cookie
  • 他の何か

また、デフォルトで渡されるワニスに関係なく、これをワニスvclファイルで制御できますか?

(問題があればPHPアプリ)

4

1 に答える 1

3

ちょっと調べてみたところ、Cookie が ESI リクエストに渡されているようです。

ESI リクエストもニスによって処理されます。これにより、その特定の ESI オブジェクトのすべての要求ヘッダーとキャッシュ動作を再度処理できます。

http://blog.lavoie.sl/2013/08/varnish-esi-and-cookies.htmlで、次の例を見つけました。これにより、特定の esi リクエストの Cookie を設定解除または残すことができます。

sub vcl_recv {
  if (req.esi_level > 0) {
    # Backend may want to treat this request differently
    set req.http.X-Esi-Level = req.esi_level;

    if (req.url !~ "esi-cookies=1") {
      unset req.http.cookie;
    }
  } else {
    unset req.http.X-Esi-Level; # remove for security
  }
}

sub vcl_fetch {
  # Activate Edge Side Includes, but only if X-Esi header is present
  if (beresp.http.X-Esi) {
    set beresp.do_esi = true;
    unset beresp.http.X-Esi; # remove header
  }
}
于 2015-06-30T14:22:09.867 に答える