我希望有人可以就使Varnish发送缓存控制 header 的正确方法提供建议。当前,我的配置是向客户端发送“Cache-Control:no-cache” 。
预先感谢任何可能提供帮助的人...
最佳答案
您的后端正在向 Varnish 发送“Cache-Control: no-cache”,这意味着两件事:
解决方案很简单:在从后端获取响应之后(以及在将它们存储在缓存中之前)删除缓存控制 header 。
在您的 vcl 文件中执行以下操作:
sub vcl_fetch {
remove beresp.http.Cache-Control;
set beresp.http.Cache-Control = "public";
}
您可以选择仅对某些 url 执行此操作(将其包装在
( if req.url ~ "" )
逻辑中)并执行更高级的操作。
关于http-headers - 如何设置 Varnish 缓存控制 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9009966/