Set cookie creating issues
Guillaume Quintard
guillaume at varnish-software.com
Mon May 14 09:40:06 UTC 2018
Hi,
That's really going to be hard to debug without some logs. Anyway, your vcl
doeesn't unset set-cookie headers, so you can expect you cached objects to
wreck some havoc since they will be reused for multiple clients.
Regards,
--
Guillaume Quintard
On Fri, Apr 27, 2018 at 4:57 PM, Pinakee BIswas <pinakee at waltzz.com> wrote:
> Hi,
>
> We have been using Varnish for caching our web pages. We have an ecommerce
> site. Things have been working fine till today but suddenly things have
> started breaking down and I am not sure why. Following is the issue:
>
> We use session cookie to store user sessions. The session cookie is
> getting changed as Cached responses from varnish is having set-cookie
> header which is messing up the session cookie. We are using varnish 4.8.
> Following is a snippet of the VCL:
>
>
> sub vcl_recv {
> # Happens before we check if we have this in cache already.
> #
> # Typically you clean up the request here, removing cookies you don't
> need,
> # rewriting the request, etc.
> set req.backend_hint = uwsgi;
>
> #if (req.http.cookie ~ "jivaana_country=") {
> # Set the country header
> # set req.http.X-CLIENT-COUNTRY = regsub(req.http.cookie,
> ".*jivaana_country=([^;]+);.*", "\1");
> # }
>
> std.log("ga:" + ga.extract(req.url, mode = keep));
> set req.url = ga.apply(req.url); # remove Google Analytics parameters
>
> if (req.method == "GET") {
> if ((req.url !~ "^/accounts/userheader") &&
> (req.url !~ "^/accounts/new-userheader") &&
> (req.url !~ "^/product/recently-viewed") &&
> (req.url !~ "^/product/recommended-products") &&
> (req.url !~ "^/product/addtobasket")) {
> unset req.http.cookie; # strip the cookies - we don't need
> them
> }
> }
>
> call devicedetect;
> }
>
> sub vcl_backend_response {
> # Happens after we have read the response headers from the backend.
> #
> # Here you clean the response headers, removing silly Set-Cookie
> headers
> # and other mistakes your backend does.
> if (bereq.method == "GET") {
> set beresp.do_esi = true;
> if ((bereq.url !~ "^/accounts/userheader") &&
> (bereq.url !~ "^/accounts/new-userheader") &&
> (bereq.url !~ "^/product/recently-viewed") &&
> (bereq.url !~ "^/product/recommended-products") &&
> (bereq.url !~ "^/product/addtobasket")) {
> #unset beresp.http.Set-Cookie;
> set beresp.uncacheable = false;
> #std.log("Caching the url : **********************" +
> bereq.url);
> }
> }
>
> sub vcl_deliver {
> # Happens when we have all the pieces we need, and are about to send
> the
> # response to the client.
> #
> # You can do accounting or modifying the final object here.
> }
>
> sub vcl_hash {
> }
>
> Would really appreciate any support as this is messing up our user
> sessions.
>
> Thanks,
>
> Pinakee
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20180514/9fca769c/attachment.html>
More information about the varnish-misc
mailing list