2016-04-01 14 views
1

Gemäß den europäischen Cookie-Regeln müssen wir eine Nachricht anzeigen, um die Benutzer wissen zu lassen, dass wir Cookies verwenden.Caching mit Cookies ohne Caching Cookies

Wenn sie akzeptieren, setzen wir einen Cookie! Zusammen mit einer starken Abhängigkeit von Tracking-Cookies, brauchen wir diesen Cookie :(

Ich habe Varnish eingerichtet, um beide Assets und meine Zielseite, die einen großen Einfluss auf die Geschwindigkeit hat, natürlich zu cachen. Assets arbeiten einen Traum, die Homepage empfängt niemals Set-Cookie vom Server, da Varnish so konfiguriert ist, dass es sofort einsatzbereit ist

Unser Lack-Server ist Centos 7, er hat Varnish 4 installiert. Unser Ziel ist es, schließlich zu Fastly zu wechseln ein Leitfaden genau das tun, was ich tun will, was uns von Cookies ist damit zu verwenden, und zu verhindern, dass sie das Caching.

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

Allerdings sind die req-Variablen nicht mehr im Umfang in vcl_deliver in Varnish 4.

Hat jemand in der Lage, einen Weg um diese zu finden?

Antwort

1

sollten Sie in der Lage sein, nur zu speichern, die "Tmp-Plätzchen" in beresp statt bereq, in welchem ​​Fall es in vcl_deliver zu bzw. propagieren bis werde. Sie können es dann auf Set-Cookie kopieren.

So eine modifizierte Version der Fastly Empfehlung:

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; 
    } 
} 

Die äquivalent zu dem Response-Handling handeln sollte, aber Sie wollen immer noch die eingehende Anforderung Cookie am ehesten zu handhaben (falls zutreffend).