【问题标题】:Caching selected URLs with Varnish使用 Varnish 缓存选定的 URL
【发布时间】:2012-08-31 19:38:45
【问题描述】:

有没有办法提供要缓存的静态 URL 列表?我知道我可以在 VCL 中放置一堆“if”语句,但我想知道是否有更优雅的方式。

【问题讨论】:

    标签: varnish varnish-vcl


    【解决方案1】:

    把它们放到正则表达式中

    if (req.url ~ "^/(some/url/1|some/url/2|....|some/urlN)") {
        unset req.http.Cookie;
        return (lookup);
    }
    else {
        return (pass);
    }
    

    或者只是用 || 列出

        if (req.url ~ "^/some/url/1"
        || req.url ~ "^/some/url/2
        ...
        || req.url ~ "^/some/urlN"
        ) {
                unset req.http.Cookie;
                return (lookup);
        }
    

    【讨论】:

    • 或者更好的是,使用适当的缓存标头进行后端回复,并且在 varnish 中不需要额外的逻辑,而是在它所属的应用程序中。
    • 我实际使用过||方法,但仍然认为有一些更有效的东西会很好,比如查找 URL 的哈希表。
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 2013-12-16
    • 2011-04-13
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2020-04-07
    • 2011-07-24
    相关资源
    最近更新 更多