1

这样的问题,我需要通过ajax接收一些有用的数据,但是varnish一直缓存它。所以我需要一些解决方案来停止清漆缓存ajax。

4

2 回答 2

4

只要后端服务器要求,Varnish 只会缓存内容。如果后端服务器没有发送类似的东西,默认是缓存 120 秒。

这样做的正确方法是修改后端应用程序以发送Cache-Control: max-age=0响应标头。

还应该注意的是,即使缓存一秒钟(max-age=1),在具有大量并发用户的站点上也会产生良好的结果。

于 2013-03-21T15:19:44.093 回答
3

如果您可以根据 URL 识别您的 AJAX 请求,则可以使用以下 VCL 轻松地将所有请求通过管道传输到后端:

sub vcl_recv {
  if (req.url ~ "(ajax\.php|dynamic\.php)") {
    return(pipe);
  }
}

这将通过管道传输 URL 包含ajax.php或的所有请求dynamic.php

于 2013-03-19T12:33:06.630 回答