我有清漆安装caching(很多)我的服务服务的图像。 大约每秒4k的约200幅图像,清漆按照以下规则高兴地服务:
if (req.request == "GET" && req.url ~ "\.(css|gif|jpg|jpeg|bmp|png|ico|img|tga|wmf)$") { remove req.http.cookie; return(lookup); }
现在,我最近在同一台服务器上添加了另一个服务,创build了缩略图,但不添加特定的扩展名。 这些文件具有以下文件名模式:
http://www.example.com/thumbnails/date-of-thumbnail/xxxxxxxxx.xx
其中xx是数字,所以xxxxxxxxx.xx可能是6482364283.73(最后两个数字)(实际上这是时间戳,所以我可以在文件名中保留额外的信息)
这有副作用,清漆不caching他们,我看到他们不断由Apache本身服务。
即使我现在可以改变格式来创build以.jpg结尾的thumbnails ,有没有办法改变我的varnish守护进程的vcl文件来caching一个目录下的所有东西( thumbnails目录),或者是所有包含两个数字的东西延期?
让我知道,如果我可以提供任何额外的信息!
谢谢!
对现有规则稍做修改就可以做到这一点:
if (req.request == "GET" && req.url ~ "^/thumbnails/") { remove req.http.cookie; return(lookup); }
或者如果你想caching以两位数字结尾的所有东西,你可以创build正则expression式\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
认为更容易匹配缩略图目录。
req.url ~ "\thumbnails\?.*"应该非常接近。
我build议你阅读更多有关正则expression式和清漆。