清漆configuration规则来caching大的MP3和PDF文件?

我们的网站有一些大的PDF和MP3文件,我们希望将其作为静态文件caching在Varnish中。 目前我们并没有做太多特别的事情 – 只需在vcl_recv删除cookies并set resetp.ttl = 100w;vcl_fetch

问题似乎是当这些文件之一被请求时(可能是旧的浏览器),并且它不在Varnishcaching中。 当Varnish从后端下载文件时有延迟。 我的理解是,在数据完全加载之前,它不会开始提供给客户端。 这可能需要20秒左右,有时Adobe Acrobat或MP3插件变得困惑。

有没有一种方法可以直接pass内容,同时下载保存在caching中,以便下一个匹配的客户端请求?

阅读build议: https : //www.varnish-software.com/blog/http-streaming-varnish

用vanilla Varnish 3.0,你可以在vcl_fetch中设置beresp.do_stream为true。 该文件将从后端获取时进行stream式传输。 注意事项:stream媒体对象设置为繁忙,所以其他客户端将被搁置。

还有一个Varnish 3.0.2版本,可以在“完整”stream媒体支持中使用: http : //repo.varnish-cache.org/test/3.0.2+streaming/人们在制作中使用,所以也许你想试试看。

或者,也许你可以“预热”你的文件,在用户开始下载之前将它们放入光油内存caching中?

3.0.2 +stream媒体分支不再是最新的,它只支持Varnish Plus订阅者,没有社区支持。

所以如果你需要stream媒体function,你可以:

  • 尝试Varnish Plus (仅适用于订阅者)已经内置支持。
  • testing即将到来的Varnish Cache 4.0(预计2014年第二季度发布)是否为您解决了这个问题(它应该)。

Varnish 5.1.2完成你想要的默认configuration。

我尝试了服务器发送的事件,我需要stream首先请求和caching的第二个请求。 它只是工作。