清漆配置规则来缓存大型 MP3 和 PDF 文件?

Nic*_*ell 5 varnish streaming

我们的网站有许多大型 PDF 和 MP3 文件,我们希望将它们作为静态文件缓存在 Varnish 中。目前我们没有做太多特别的事情 - 只需删除vcl_recvset resetp.ttl = 100w;中的 cookie vcl_fetch

问题似乎是当这些文件之一被请求时(可能是旧浏览器)并且它不在 Varnish 缓存中。Varnish 从后端下载文件时会出现延迟。我的理解是在数据完全加载之前它不会开始交付给客户端。这可能需要 20 秒左右,有时 Adob​​e Acrobat 或 MP3 插件会混淆。

有没有办法既pass将内容直接而下载为下一个匹配的客户端请求,将它保存在缓存中?

neo*_*tar 1

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

使用 vanilla Varnish 3.0,您可以在 vcl_fetch 中将beresp.do_stream设置为 true。从后端获取文件时将进行流式传输。警告:该对象在流式传输时设置为忙碌,因此其他客户端将被搁置。

还有一个 Varnish 3.0.2 版本,提供“完整”流支持:http://repo.varnish-cache.org/test/3.0.2+streaming/人们正在生产中使用它,所以也许你想要尝试一下。

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