请告诉我,这些概念有什么区别?我没有在Varnish的文件中找到任何答案。他们只是操作这些概念,没有更多。普通清漆:beresp&resp之间的区别,bereq & req; req.ttl&beresp.ttl
什么是最好的缓存:缓存控制头beresp.ttl或max-age?
如果你可以用很少的例子做 - 做到这一点,请:)
请告诉我,这些概念有什么区别?我没有在Varnish的文件中找到任何答案。他们只是操作这些概念,没有更多。普通清漆:beresp&resp之间的区别,bereq & req; req.ttl&beresp.ttl
什么是最好的缓存:缓存控制头beresp.ttl或max-age?
如果你可以用很少的例子做 - 做到这一点,请:)
REQ:只要它在上光油到达请求值。
bereq:请求转到后端。来自req的所有变量被自动分配到bereq。但是,这些值可能略有不同,因为Varnish可能会修改客户端请求。例如,来自客户端的HEAD请求可能会转换为对后端的GET请求。
beresp:后端respose。 beresp中的任何更改都会影响resp和obj这是缓存的对象。 提示:如果您想要获取有关对象的任何其他信息,请将其设置为beresp。
响应:传递给客户端的响应。所有的beresp值被传递到resp。
解释完所有名称后得出结论:req.ttl是从请求中接收到的TTL,除非您对其进行了不同的配置,否则就意味着什么都没有。 beresp.ttl是要设置您的对象的TTL的那个。
至于什么是最好的缓存,清漆已获得最大年龄,并将其设置为beresp.ttl。所以最终没有区别。采用这种方法的困难在于,一些网络应用程序不能正确对待并最终总是发送nocache
,导致清漆无法缓存。在这些情况下,您应该忽略beresp.http.cache-control中的内容并设置您自己的TTL。
一些相关的阅读材料可以在Varnish Book subroutines section中找到。
“最终总是发送nocache,导致Varnish无法缓存” - 或者可能取消设置并设置我的缓存控制,对不对? 并且可以关于req.ttl的更多细节?因为你写了“这意味着什么,除非你配置不同”。这是什么意思? 其余的,非常感谢,详尽的答案。 –
你说得对。 关于req.ttl,它来自请求者,它不是由你的应用程序或清漆设置的东西,大多数时候它应该被忽略,除非你希望你的请求者能够设置对象ttl。 – alejdg
,除非你想让你的请求者能够设置对象ttl - 我想理解的主要内容:)非常感谢! –