我有多个子域指向一个varnish实例。我在文档中读到应该使用PCRE正则表达式。我相信下面的正则表达式应该在请求url为“http://internal.my.com/any/thing”并且应该设置15s ttl时返回true。我也试过(req.url~“internal.my.com”),因为我知道如果请求url的任何部分包含该字符串,它应该匹配。尽管向internal.my.com发出请求,但下面的vcl_fetch子例程始终会产生300s缓存。
# Cache for a longer time if the internal.my.com URL isn't used
sub vcl_fetch {
if (req.url ~ "^[(http:\/\/)|(https:\/\/)]*internal\.my\.com.*"){
set beresp.ttl = 15 s;
} else {
set beresp.ttl = 300 s;
}
}
答案 0 :(得分:0)
哎呀...我应该使用req.http.host而不是req.url。一旦纠正,一个简单的误解会导致预期的行为。