在端口80上使用清漆5.1的多个网站设置中,我不想缓存所有域。 这很容易在vcl_recv中完成。
if ( req.http.Host == "cache.this.domain.com" ) {
return(hash);
}
return(pass);
现在在vcl_backend_response中我想对缓存域进行一些处理。
当然,我可以这样做(bereq.http.Host ==" cache.this.domain.com"),但有没有办法知道它是一个返回(哈希)还是一个vcl_backend_response中的vcl_recv中的return(pass)调用?
我认为这可能有意义,但无法找到信息。
感谢您的帮助。
答案 0 :(得分:1)
除了@Daniel V.建议的临时方法之外,另一种可能符合您需求的方法是:
sub vcl_backend_response {
if (!bereq.uncacheable) {
...
}
}
这样,您只能对可缓存的对象执行额外处理。
答案 1 :(得分:0)
这让我想知道为什么你首先需要这样的处理。
我认为没有办法直接告诉你如何进入vcl_backend_response
。所以我想你可以设置一个标志并稍后检查,即:
sub vcl_recv {
if ( req.http.Host == "cache.this.domain.com" ) {
set req.http.return_type = "hash";
return(hash);
}
set req.http.return_type = "pass";
return(pass);
}
sub vcl_backend_response {
if( bereq.http.return_type == "pass" ) ...
}