Varnish-允许后端使用特定的cookie吗?

Varnish-允许后端使用特定的cookie吗?

我正在尝试弄清楚如何允许后端查看特定注册页面上的跟踪 cookie,但在其他页面上忽略它们。目前,我正在尝试使用从后端发送到set beresp.ttl = 0s;内部的自定义标头vcl_fetch

if (beresp.http.cache-control ~ "max-age=-30") { set beresp.ttl = 0s; }

但是注册页面仍然阻止后端读取 cookie。

vcl_recv使用这个方法删除它们:

set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|_ga|_mkto_trk)=[^;]*", "");

set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");

if (req.http.Cookie ~ "^\s*$") { unset req.http.Cookie; }

我如何允许在这些特定页面的后端读取 cookie?我想我需要在vcl_recv?中创建例外情况?

答案1

是的 - 您需要在后端的请求上“return(miss);”。vcl_fetch 仅在从后端“获取”项目时触发 - 如果项目已存储在缓存中,则 varnish 将不会运行获取代码。

相关内容