【问题标题】:Nginx is not accepting range of bytesNginx 不接受字节范围
【发布时间】:2014-05-08 19:28:09
【问题描述】:

我正在使用 nginx 从文件系统中提供视频。我想启用范围请求。

目前这是为我的文件返回的结果

curl -I fileurl
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 29 Mar 2014 06:41:41 GMT
Content-Type: video/mp4
Content-Length: 15603963
Last-Modified: Sat, 04 Jan 2014 15:02:26 GMT
Connection: keep-alive
Keep-Alive: timeout=300
Accept-Ranges: bytes

但是如果我发送 curl --header "Range: bytes=0-50" fileurl

整个文件被下载。

这是 nginx 配置中的服务器:

server {
            listen 80;
            server_name myserver;
            error_log logs/myserver.error.log;
            access_log logs/myserver.access.log;

            root /srv/myserver;

            #add_header Accept-Ranges;
            add_header Accept-Ranges bytes;
    }

我是否必须启用其他任何功能?如何允许文件的范围请求?

【问题讨论】:

  • 无聊的视频我希望在那个网址下有一部电影大片 :-)
  • 我“期望”在 cmets 中获得帮助 :)(评判有时会很无聊。实际比赛不是 ;))。
  • 我对 nginx 没有经验,我只是感兴趣。一般来说,您不应该发布真实的网址,因此我无法对视频进行评分,并且您对不相关问题的访问量较少。
  • 谢谢。我会记住这一点。对于目前的情况,我希望使用真实的 url 有人可以更轻松地测试服务器。
  • 此问题对于在 iOS 设备上自动播放(静音)html5 视频至关重要。

标签: http nginx http-headers video-streaming html5-video


【解决方案1】:

将以下行添加到我的 nginx 站点配置后,我能够使范围请求工作

    proxy_force_ranges on;

您可以阅读更多关于它的信息here

【讨论】:

  • 我爱你,我一直在努力让范围请求在我的 nginx 上工作几个小时,尝试了一切,只有你的提示有效.. 谢谢一百万。
【解决方案2】:

我找到了——它的选项

max_ranges

在配置的底部是 max_ranges 0。

【讨论】:

  • 只有默认情况下max_ranges 不应该为零,并且您没有在问题中显示该行!就我而言,我有max_ranges 100;,但它仍然没有正确处理。
【解决方案3】:

.m4v 文件的内容类型是video/x-m4v,我认为video/mp4 不适用于这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 2022-11-30
    相关资源
    最近更新 更多