我只是为我的团队设置了清漆。我想知道:如果我的应用程序当前没有发送任何cache-control
标头,那么清漆缓存的行为是什么。它是否仍然缓存,或者我们需要显式发送带有cache-control
值的max-age
标头,以便varnish可以缓存它。我已设置清漆来缓存200,404,400状态代码响应。感谢。
答案 0 :(得分:2)
这取决于许多因素:Varnish将不缓存客户端发送Coookie
标头的任何请求,或者服务器发送带有Set-Cookie
的响应头。您也无法缓存POST
请求,因为它们不是幂等的。
也就是说,如果请求不已附加cookie,并且是GET
请求,则默认情况下,varnish设置为缓存120秒的请求。这由varnish中的default_ttl
设置决定,并且仅适用于varnish中可缓存的请求(即使没有设置cache-control
标头)。
来自Varnish文档:
Cache-Control标头可以包含许多标头。 Varnish评估它并寻找s-maxage和max-age。如果找到,它会将TTL设置为s-maxage的值。如果未找到s-maxage,则将使用max-age。如果两者都不存在,它将使用Expires标头来设置ttl。 如果这些标头都不存在,则会使用默认TTL
https://www.varnish-software.com/static/book/VCL_Basics.html