有没有办法用 Varnish VCL 语言定义域列表?我想 ACL 也有类似的东西。我想做这样的事情(以 ACL 为例)。
acl website_list {
'(www\.)?domain.tld';
'(www\.)?domain2.tld';
}
...
if(req.http.Host ~ website_list) return(lookup);
我可以只使用单独的 RegEx 测试,但如果我想在 VCL 的其他地方使用这些域,它的可重用性不是很好。
谢谢!
最佳答案
你可以有一个设置标记头的测试条件,然后稍后再测试它:
sub vcl_recv {
if (req.http.Host ~ "^(www\.)?domain.tld" ||
req.http.Host ~ "^(www\.)?domain2.tld") {
/* Set the magic marker */
set beresp.http.magicmarker = "1";
}
if (resp.http.magicmarker) {
return(lookup);
}
}
关于list - 在 VCL(Varnish 配置语言)中定义列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685209/