我们有一个相当大的网站。我们每周更新内容,但在更新后端内容后,首次访问时提供过时的内容是可以的。因此,我们不想禁止或清除 Varnish 中的整个缓存内容,这会导致整个网站首次访问时速度变慢。那么,有没有办法告诉 Varnish 使整个缓存内容过时,而不是清除它们,直到有人访问,然后 Varnish 才会在后台获取内容?
编辑:我读过有关 Varnish 中的 BAN 命令,但文档没有写得很清楚。我不确定缓存的内容是否会被标记为过时,并且 Varnish 在从后端获取新内容时仍会在第一次访问时提供它,还是 Varnish 会在第一次访问时强制等待来自后端的新内容?
答案1
你实际上是在谈论宽限模式:
将对象的宽限期设置为正值,告诉 Varnish 它应该在 TTL 过期后的一段时间内向客户端提供该对象,同时 Varnish 会获取该对象的新版本。