Caching 清漆能产生ETag吗?

Caching 清漆能产生ETag吗?,caching,varnish,etag,Caching,Varnish,Etag,有没有办法让Varnish为接收到的后端响应生成ETag并将其添加到响应中?我更希望在Varnish中包含所有ETag逻辑,而不是为我的所有后端节点单独配置 我使用的是Varnish 4.0.0。当前未在Varnish()中实现etag。如果愿意,可以在VCL中创建etag标头及其值 sub vcl_backend_response { if (!beresp.http.Etag) { set beresp.http.Etag = "W/foo"; } } 这里

有没有办法让Varnish为接收到的后端响应生成ETag并将其添加到响应中?我更希望在Varnish中包含所有ETag逻辑,而不是为我的所有后端节点单独配置


我使用的是Varnish 4.0.0。

当前未在Varnish()中实现etag。

如果愿意,可以在VCL中创建etag标头及其值

sub vcl_backend_response {
    if (!beresp.http.Etag) {
        set beresp.http.Etag = "W/foo";
    }
}
这里的主要问题是如何使Etag反映对象的主体。您必须了解应用程序如何安全地执行此操作。一种方法是将日期响应头和URL一起提供给libvmod digest,并将哈希输出设置为Etag

在Varnish 4.0.0中,您(wiki已经过时)支持If-Modified-Since/If-None匹配后端,因此如果您选择在VCL中执行此操作,请记住在VCL_-backend_-fetch中对其进行过滤,以免混淆后端

一般来说,我建议不要在VCL中这样做。在后端添加它通常只是启用一个模块。VCL中的实际更改很简单,但这是HTTP的一个棘手部分,很容易出错