在varnish子例程中,当您具有对响应对象的写访问权时,是否有一种方法可以告诉对象是直接传递给后端,还是首先通过缓存查找发送?现在我正在摆弄添加应用程序逻辑以接收一些标头,然后将其发送回来,这可以通过清漆读取,但我更希望清漆行为与应用程序无关。
我正在寻找的东西将如下所示,尽管我// DoSomeStuff的方法不一定是交付。
sub vcl_recv {
if( req.url ~ "^/something/ignored.*$" ) {
return ( pass );
}
else {
unset req.http.Cookie;
return( hash );
}
}
sub vcl_deliver {
if( resp.lookup == 1 ) {
//Do Some Stuff
}
}
答案 0 :(得分:0)
是的,有多种方式。您可以在vcl_hash{}
中加入并在req.
中添加一些自定义标题,您可以在vcl_pass{}
中执行相同操作,您可以在vcl_recv{}
之前执行此操作,或者在vcl_hit{}
和vcl_miss{}
中加注(请注意,hit-for-pass
也会调用vcl_pass{}
)
查看processing states以使您的照片更清晰。