我正在使用 Nginx 作为大文件的缓存反向代理。
对我来说,重要的是源服务器不必输出超过必要范围的带宽。因此,如果文件下载从两个连接开始,我不希望 nginx 下载整个文件两次。
所以我启用了proxy_cache_lock
此功能。但是第二个请求必须等到第一个请求完成文件下载后才能执行。这可能需要很长时间,我希望第二个请求立即开始下载。
所以我需要的是一个系统,其中两个请求(将是 http 范围请求)可以填充相同的缓存文件,并且每个请求只从原始服务器下载其范围。
这只对大文件有意义,而且大多数系统(varnish、nginx)似乎都是为此设计的。Nginx 通常适用于大文件,但在这种情况下却不行。
是否有一个缓存系统可以满足我的需求,还是我必须自己编写一个?我认为一些 CDN 可能有类似的要求。