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。
我正在构建一个 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。