if (req.url ~ "do_ajax.php" && req.request == "GET") {
return (lookup);
}
我将这一行放在 varnish.vcl 配置中,但我在响应头中得到了这个头:
no-cache, must-revalidate, max-age=0
我也尝试过:
if (req.url ~ "do_ajax.php" && req.request == "GET") {
return (hash);
}
但是清漆无法重新启动,除非我删除返回(哈希)。
现在,我想知道清漆配置文件中是否有一行强制所有 ajax 调用不接受缓存,我不明白的第二件事是为什么我在响应标头中获取它,不应该是客户端在请求标头中发送这个而不是?为什么服务器返回这个?
正如您在其他帖子中提到的:您可能使用的是过时版本的 Varnish。这可以解释为什么 VCL 语法不起作用。
请确保您使用的是 Varnish 6 或 Varnish 7。根据您使用的 Linux 发行版,请参阅https://www.varnish-software.com/developers/downloads/#linux-packages获取安装过程列表。
我还在您发布的其他帖子中提供了 VCL 解决方案。