我需要一些有关 default.vcl 的建议。规则如下:
- 仅缓存 URL 包含“/c/”的页面,其余页面将通过
- 将缓存过期时间设置为 3 小时
- 仅当 cookie“abc”和 cookie“xyz”为空时才缓存并从缓存中提供服务
谢谢你!
答案1
sub vcl_recv {
if (req.request ~ "^/c/") {
if ( (req.http.cookie ~ "abc=;") && (req.http.cookie ~ "xyz=;") ){
lookup;
}
}
pass;
}
sub vcl_fetch {
if (req.request ~ "^/c/") {
set obj.ttl = 10800s;
}
}
但是,空和未设置是两回事。设置一个测试,您可以在另一个会话中使用 varnishlog 来精确查看 varnish 正在做什么(它非常详细),然后调整规则以执行您需要的操作。