假设我有一个原始站点和媒体结构如下:
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
根据需要添加相关设置。