这样的问题,我需要通过ajax接收一些有用的数据,但是varnish一直缓存它。所以我需要一些解决方案来停止清漆缓存ajax。
问问题
5323 次
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 回答