![Nginx Cache 替代方案,其中两个请求可以同时填充大型缓存文件?](https://linux22.com/image/671986/Nginx%20Cache%20%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88%EF%BC%8C%E5%85%B6%E4%B8%AD%E4%B8%A4%E4%B8%AA%E8%AF%B7%E6%B1%82%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E5%A1%AB%E5%85%85%E5%A4%A7%E5%9E%8B%E7%BC%93%E5%AD%98%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在使用 Nginx 作为大文件的缓存反向代理。
对我来说,重要的是源服务器不必输出超过必要范围的带宽。因此,如果文件下载从两个连接开始,我不希望 nginx 下载整个文件两次。
所以我启用了proxy_cache_lock
此功能。但是第二个请求必须等到第一个请求完成文件下载后才能执行。这可能需要很长时间,我希望第二个请求立即开始下载。
所以我需要的是一个系统,其中两个请求(将是 http 范围请求)可以填充相同的缓存文件,并且每个请求只从原始服务器下载其范围。
这只对大文件有意义,而且大多数系统(varnish、nginx)似乎都是为此设计的。Nginx 通常适用于大文件,但在这种情况下却不行。
是否有一个缓存系统可以满足我的需求,还是我必须自己编写一个?我认为一些 CDN 可能有类似的要求。