如果您希望,可以在VCL中创建ETag头及其值。 sub vcl_backend_response { if (!beresp.http.Etag) { set beresp.http.Etag = "W/foo"; } } 主要问题在于如何使Etag反映对象的内容。为了安全地完成此操作,您需要了解应用程序的工作方式。一种方法是将Date响应头与URL一起提供给libvmod-digest,并将哈希输出设置为Etag。在Varnish 4.0.0中,您可以(维基已过时)支持向后端发送If-Modified-Since/If-None-Match,因此如果您选择在VCL中执行此操作,请记得在vcl_backend_fetch中进行过滤,以免混淆后端。总的来说,我建议不要在VCL中执行此操作。在后端添加它通常只需启用一个模块。 VCL中的实际更改很简单,但这是HTTP的棘手部分之一,很容易出错。