我在后端前面使用 Varnish。
因为后端有时很慢,所以我启用了宽限模式来为客户端提供陈旧的内容。但是,在宽限模式下,仍然有一个用户需要转到后端并且具有非常糟糕的用户体验。
Varnish 是否可以在刷新缓存的同时为所有用户提供陈旧的内容?
我看到有人建议使用 cron 作业或脚本来刷新本地主机上的缓存。这不是一个优雅的解决方案,因为我们网站上的 URL 太多,手动刷新每个 URL 非常困难。
我知道根本问题出在后端,我们需要在那里解决问题。但在短期内,我想知道是否可以提高 Varnish 层的响应时间?
最佳答案
您可以使用重新启动和帮助程序在Varnish 3中进行此操作(通常情况下)。
这里描述了如何编写VCL :(披露:我自己的博客)
http://lassekarstensen.wordpress.com/2012/10/11/varnish-trick-serve-stale-content-while-refetching/
它相当复杂,但是当您有一个刚刚过期的现有对象时,它就可以工作。
在(将来的)Varnish 4中,将有附加的VCL Hook ,这些 Hook 将使这些技巧更加容易。
关于 Varnish -如何在重新获取时为所有客户端提供过时的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305455/