Caching 普通清漆:beresp和;贝雷克及;请求;请求ttl&;贝雷斯特

Caching 普通清漆:beresp和;贝雷克及;请求;请求ttl&;贝雷斯特,caching,varnish,Caching,Varnish,请告诉我,这些概念有什么区别?我在清漆的文档中没有找到任何答案。他们只是执行这些概念,仅此而已 缓存最好使用什么:beresp.ttl或缓存控制头中的max age 如果你能用一些小例子来做这件事,请:)req:请求值一旦到达Varnish bereq:发送到后端的请求。req中的所有变量自动分配给bereq。但是,这些值可能略有不同,因为Varnish可能会修改客户端请求。例如,来自客户端的HEAD请求可能会被转换为向后端获取请求 beresp:后端响应。beresp中的任何更改都会影响res

请告诉我,这些概念有什么区别?我在清漆的文档中没有找到任何答案。他们只是执行这些概念,仅此而已

缓存最好使用什么:beresp.ttl或缓存控制头中的max age


如果你能用一些小例子来做这件事,请:)

req:请求值一旦到达Varnish

bereq:发送到后端的请求。req中的所有变量自动分配给bereq。但是,这些值可能略有不同,因为Varnish可能会修改客户端请求。例如,来自客户端的HEAD请求可能会被转换为向后端获取请求

beresp:后端响应。beresp中的任何更改都会影响resp和obj,后者是缓存对象提示:如果要获取对象的任何其他信息,请将其设置为beresp

响应:发送给客户端的响应。所有beresp值都传递给resp

在解释了所有名称之后,基本上可以得出这样的结论:req.ttl是从请求接收到的ttl,除非您对其进行不同的配置,否则它没有任何意义beresp.ttl是设置对象ttl的工具

至于最适合缓存的内容,Varnish已经获得了最大年龄并将其设置为beresp.ttl。所以最终没有区别。采用这种方法的困难在于,一些web应用程序没有正确处理最大年龄,最终总是发送
nocache
,导致Varnish不缓存任何内容。在这些情况下,您应该忽略beresp.http.cache-control中的内容,并设置自己的TTL


本主题中需要进一步深化的相关阅读可以在中找到。

您可以从这里获得有关vcl对象的详细概览


“最终总是发送nocache,导致Varnish不缓存任何内容”-或者取消设置它并设置缓存控制,对吗?您能提供更多关于req.ttl的详细信息吗?因为您写了“除非您以不同的方式配置它,否则它毫无意义”。你这是什么意思?在剩下的部分,非常感谢,详尽的回答。你是对的。一个about req.ttl,它来自请求者,它不是由你的应用程序或Varnish设置的,大多数时候它应该被忽略,除非你希望你的请求者能够设置对象ttl。除非你希望你的请求者能够设置对象ttl-我想理解的主要事情:)非常感谢!