我想,您想要的是拥有相同URI的不同缓存版本,使用自定义非常容易vcl_hash:
sub vcl_hash {
# ...
if (req.http.X-Forwarded-Proto &&
req.url !~ "(?i)\.(png|gif|jpeg|jpg|ico|gz|tgz|bz2|tbz|mp3|ogg|zip|rar|otf|ttf|eot|woff|svg|pdf)$") {
hash_data(req.http.X-Forwarded-Proto);
}
# ...
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,静态文件仅被缓存一次,其余文件(html,js,css ..)被缓存在2个不同的版本中(假设X-Forwarded-Proto仅采用两个值)。
您可以在https://github.com/NITEMAN/varnish-bites/blob/master/varnish3/drupal-base.vcl的更广泛的上下文中查看示例