【问题标题】:Varnish: Cache Set-Cookie headerVarnish:缓存 Set-Cookie 标头
【发布时间】:2022-01-01 22:08:41
【问题描述】:

我想缓存某些特定 cookie 的 set-cookie 标头。我要缓存的 cookie 对于所有用户都是相同的,并且特定于页面。 Varnish 可以吗?

【问题讨论】:

    标签: varnish varnish-vcl


    【解决方案1】:

    如果所有用户的 cookie 相同,您可以覆盖 the built-in VCL behavior for Set-Cookie headers in the vcl_backend_response 子程序,如下所示:

    sub vcl_backend_response {
        if(bereq.url ~ "^/your-page" && beresp.http.Set-Cookie ~ "^yourCookieName=") {
            return(deliver);
        }
    }
    

    我添加了 yourCookieName 检查,您应该将其替换为实际 cookie 的名称,以确保不会缓存每个 Set-Cookie 标头。

    我还添加了一项额外检查以确保匹配正确的 URL 模式。如果您只想匹配单个页面,请将^/your-page 正则表达式模式替换为实际的 URL 模式或执行精确的字符串匹配。

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2021-01-08
    • 2011-07-25
    • 2012-03-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多