URL 查询参数中的 Nginx 范围请求

Nginx Range Request in URL Query Parameters

我正在构建一个 HLS/DASH 流媒体服务器,今天我发现使用带有范围请求的单个大文件比许多小文件要好 - 这就是 Netflix 和 YouTube 目前正在做的。

但是有个问题;因为我有一个不同的视频 CDN 域和实际播放器页面(例如 netflix.com - nflxvideo.net),CORS 进入并随每个请求发送一个 OPTION 请求。因为播放器发送了很多请求,这会浪费字节。

Netflix(也使用 nginx)和 YouTube 通过 URL 中的发送范围或查询修复了此问题,因此浏览器不会发送 OPTION 请求: https://xx.nflxvideo.net/range/0-64209238?o=...

我正试图在 Nginx 中实现同样的目标,但在 4 小时内我找不到任何方法。 我们在服务器中存储了文件,因此我们正在使用 sendfile。

谢谢!

我找不到如何执行此操作,但为了不浪费 OPTIONS 请求的资源这一主要目标,Access-Control-Max-Age header 用于缓存 OPTIONS 请求。

基本上设置为 Firefox 的最大值 86400 秒(24 小时) 并且可以正常工作。

我之前跳过这个header因为它在Chrome时是10分钟,但显然,它从Chrome76开始增加到2小时。从平均持续时间开始绰绰有余我们的视频是 100 分钟。

有关 header 的更多信息是 here