如何强制Varnish看到新创建的文件?

时间:2013-10-04 06:41:49

标签: php apache varnish

我有一台服务器在Apache之前设置了Varnish。我的PHP应用程序正在创建新文件以创建压缩的JS和CSS文件,但是当创建这些文件时,Varnish不会在3-4分钟内看到这些文件,因此第一个页面加载文件的404错误。我知道文件存在,正如我在文件系统中看到的那样。

我该如何解决这个问题?一些htaccess缓存头可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以清除VCL上的缓存404(有特殊请求)[1],甚至强制404错误根本不缓存:

sub vcl_fetch {
  # ...
  if (beresp.status == 404) {
    set beresp.ttl = 0s;
    set beresp.http.cache-control = "no-cache, must-revalidate, post-check=0, pre-check=0";
  }
  # ...
}

[1] https://www.varnish-cache.org/docs/3.0/tutorial/purging.html