2016-04-01 8 views
1

クッキーに関するヨーロッパのルールに従って、ユーザーにクッキーの使用を知らせるメッセージを表示する必要があります。キャッシュせずにクッキーを使ってキャッシュするクッキー

受け入れると、クッキーが設定されます。 (

私は、速度に大きな影響を与えるアセットと私のランディングページの両方をキャッシュするためにセットアップワニスを持っています。アセットは夢のように動作しています。そのホームページはクッキーの追跡に大きく依存しています。

私たちのワニスサーバーはCentos 7で、ワニス4がインストールされています。最終的にはFastlyに移行することです。これらのサーバーは、サーバーからSet-Cookieを受け取ることはありません。私がやりたいことを正確に行うためのガイド。クッキーを使用してキャッシングを避けることができます。

https://www.fastly.com/blog/how-to-cache-with-tracking-cookies

しかし、req変数はワニス4のvcl_deliverでは有効ではありません。

これを回避する方法は誰にも見つかりましたか?

答えて

1

あなたはちょうどそれがvcl_deliverRESPまで伝播します。その場合にはberespではなくbereqに「TMP-クッキー」を記憶することができるはずです。 セットクッキーにコピーできます。

だから、しっかりと勧告の修正版:レスポンスの処理に同等に行動しなければならない、しかし、あなたはまだ(該当する場合)は、最も可能性の高い着信要求のクッキーを扱うことになるでしょう

sub vcl_backend_response { 
    if (beresp.http.Set-Cookie) { 
     # ... so store it temporarily 
     set bereq.http.Tmp-Set-Cookie = beresp.http.Set-Cookie; 
     # ... and then unset it 
     unset beresp.http.Set-Cookie; 
    } 
} 

sub vcl_deliver { 
    if (resp.http.Tmp-Set-Cookie) { 
     set resp.http.Set-Cookie = resp.http.Tmp-Set-Cookie; 
     unset resp.http.Tmp-Set-Cookie; 
    } 
} 

関連する問題