普通清漆:beresp&resp,bereq&req之间的差异; req.ttl&beresp.ttl

Nik*_*_ua 3 caching varnish

请告诉我,这些概念之间的区别是什么?我没有在Varnish的文件中找到任何答案.他们只是操作这些概念,仅此而已.

什么更适合用于缓存:beresp.ttl或Cache-control标头中的max-age?

如果你可以用很少的例子来做 - 请做:)

ale*_*jdg 10

req:请求值一到达Varnish就会出现.

bereq:发送到后端的请求.来自req的所有变量都自动分配给bereq.但是,这些值可能略有不同,因为Varnish可能会修改客户端请求.例如,来自客户端的HEAD请求可以转换为针对后端的GET请求.

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

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

在所有名称解释之后,基本结论是req.ttl是从请求接收的TTL,除非您以不同方式配置它,否则它没有任何意义.beresp.ttl是要设置对象的TTL的那个.

至于什么是最适合缓存的,Varnish已经获得了max-age并将其设置为beresp.ttl.所以最后没有区别.使用它的难点在于,某些Web应用程序不能正确处理max-age并最终总是发送nocache导致Varnish不进行任何缓存.在这些情况下,您应该忽略beresp.http.cache-control中的内容并设置自己的TTL.

可以在Varnish Book子程序部分找到一些在本主题中进一步深化的相关阅读.