我想向某个 URL 添加一个参数,该参数允许我为页面取消缓存提供服务。所以像https://example.org/foo/baa?uncached这样的东西应该是应用服务器的服务器,而https://example.org/foo/baa可能是直接从 varnish 的缓存中提供的。
为此,我尝试添加
if (req.url ~ "^/\?uncached") {
set req.http.X-VC-Cacheable = "NO:On user request";
return(pass);
}
到我的 vcl_recv。但不知何故,这不起作用(缓存行为未切换)。这是正确的方法吗?我做错了什么?
我认为应该是:
我的问题是RegEx有问题:
仅适用于没有任何本地部分的 URL。然而:
适用于第一个参数为 uncached 的每个 URL。