客户标题使用PHP&漆

时间:2012-01-19 11:27:20

标签: php header varnish

我目前正在制作一个Varnish(v3)设置,但我想知道是否有人对以下内容有任何建议。

我正在尝试使用PHP的Header()函数来设置自定义标头,例如,Test:CustomHeader。最终目的是允许Varnish提供缓存页面,除非浏览器,在这种情况下,已经添加了一些东西到购物篮。我想在我的VCL配置文件中,我可以做类似的事情:

if (bereq.http.Test ~ "CustomHeader") {
    set beresp.ttl = 0s;
    return (hit_for_pass);
}

但是,这总是评估为false \ no match。如果我将其设置为

if (bereq.http.Test != "CustomHeader") {
    set beresp.ttl = 0s;
    return (hit_for_pass);
}

然后总是触发hit_for_pass,这让我相信我的标题设置有问题。我认为这可能是因为缓存的整个点都不会设置PHP标头,但检查varnishlog中的标题是否会显示客户标题,这令人困惑!此外,访问相关页面始终执行缓存命中。 有没有人对Varnish中的这种标题操作有任何提示\建议? 非常感谢 -B

1 个答案:

答案 0 :(得分:2)

对这样的事情使用自定义标题是个坏主意。许多代理会删除他们无法识别的标题,因此即使你按照自己想要的方式工作,也无法依赖它。

这就是Cookie的设计目的 - 改为使用它们。