你能帮我确认vcl_recv在Varnish中的默认行为吗?
default.vcl文件中的vcl_recv定义在应用程序设置中被注释掉。
我们在vcl文件中提供了自定义版本的vcl_recv,但没有指定返回(查找)或查找语句。然而,当尝试访问图像或静态内容时,缓存似乎是合适的。在default.vcl的vcl_recv和用户定义的vcl_recv中定义的内容之上,varnish是否在内部实现了某种逻辑来进行缓存?
谢谢
发布于 2015-06-03 11:23:30
说明
当您定义一个自定义的VCL (在本例中为vcl_recv)时,Varnish会自动将默认的VCL附加到您的VCL中。
请记住,如果您在VCL中执行了诸如return(lookup)/pass/etc之类的操作,则在执行该行之后将不会执行varnish默认VCL。
它紧跟在任何用户指定的VCL之后执行,并且始终存在。您不能将其删除。
和:
可以考虑复制您自己的VCL中的所有逻辑,或者让Varnish使用默认的VCL。
示例
sub vcl_recv {
if (req.http.host ~ "dev") {
return(pass);
}
}这不会在缓存中保存主机中有"dev“的任何请求。但它仍然会在缓存中保存任何其他内容。
Extra:
确定varnish是否正常工作的很好的工具:Here
https://stackoverflow.com/questions/29656953
复制相似问题