清漆 - 如何在重新获取时为所有客户提供陈旧内容?

时间:2013-08-19 01:58:00

标签: varnish varnish-vcl

我在后端使用Varnish。

因为后端有时非常慢,所以我启用了宽限模式来为客户端提供过时的内容。但是,在宽限模式下,仍然有一个用户需要进入后端并且用户体验非常糟糕。

Varnish是否可以在刷新缓存时为所有用户提供陈旧内容?

我见过有人建议使用cron作业或脚本来刷新本地主机上的缓存。这不是一个优雅的解决方案,因为我们的网站上有很多网址,手动刷新每个网址都非常困难。

我知道潜在的问题在于后端,我们需要解决问题。但是在短期内,我想知道我是否可以改善Varn​​ish层的响应时间?

2 个答案:

答案 0 :(得分:0)

你可以使用重启和帮助程序在Varnish 3中执行此操作(在一般情况下)。

如何为此编写VCL:(披露:我自己的博客)

http://lassekarstensen.wordpress.com/2012/10/11/varnish-trick-serve-stale-content-while-refetching/

它相当复杂,但是当你有一个刚过期的现有对象时,它会起作用。 在(未来)Varnish 4中将会有额外的VCL钩子,这将使这些技巧更容易。

答案 1 :(得分:0)

是的,可以向所有用户提供陈旧内容(在指定的时间内)。您应该尝试使用宽限期和圣徒模式来设置适合您应用的适当时间限制。

在此处阅读更多内容:https://www.varnish-cache.org/docs/3.0/tutorial/handling_misbehaving_servers.html