我希望有人能够指导如何正确地让Varnish发送缓存控制头部。目前,我的配置正在向客户端发送"Cache-Control: no-cache"。
提前感谢任何能够提供帮助的人...
提前感谢任何能够提供帮助的人...
你的后端将“Cache-Control: no-cache”发送到Varnish,这意味着两件事:
解决方法很简单:在从后端获取响应后(在将其存储在缓存之前),删除缓存控制标头。
在您的vcl文件中执行以下操作:
sub vcl_fetch {
remove beresp.http.Cache-Control;
set beresp.http.Cache-Control = "public";
}
你可以选择仅对某些网址执行此操作(将其包裹在( if req.url ~ "" )
逻辑中),并做更高级的操作。
vcl_fetch
被替换为vcl_backend_response
。 - Kyle Hayeshttps://www.varnish-cache.org/trac/wiki/VCLExampleLongerCaching