带有可启动缓存的缓存代理

带有可启动缓存的缓存代理

假设我有一个原始站点和媒体结构如下:

https://watch.example.com/2017-04-06/training.mp4,这是永远不会改变的静态5GB。

现在在远程位置网络很差,我想提供一个快取代理它安装了一个 4TB 磁盘(我提前发送了),这些文件位于类似这样的目录中/media/2017-04-06/training.mp4,因此当http://cache.local/2017-04-06/training.mp4被访问时,它会播放本地缓存的内容。如果失败,缓存代理可能会从https://watch.example.com/2017-04-06/training.mp4或者媒体播放器客户端可能被编码为回退到规范https://watch.example.com/2017-04-06/training.mp4

因此经过调查nginx,不幸的是,它将内容和标题以 md5sum 格式保存在 中proxy_cache_path,这使我通过磁盘预缓存或准备缓存的目标变得困难。

我是否遗漏了其他更简单的解决方案?

答案1

类似这样的事情应该可以工作:

server {
  server_name example.com;
  root /media;

  location / { try_files $uri $uri/ @backend; }

  location @backend {
    proxy_pass http://watch.example.com;
  }
}

因为这个配置不会缓存它尚不存在的任何内容,但是您可以proxy_cache根据需要添加相关设置。

相关内容