部分内容nginx的麻烦

时间:2016-07-18 15:19:06

标签: django google-chrome nginx gunicorn nginx-location

我从服务器获取一些视频文件,并在这样的模板中使用:

<div class="player-block" ng-if='hasSubscription(episode_detail.season)'>
                                    <video ng-if='episode_detail' id="serial-video" class="video-js" controls preload="none" height="450" data-setup="{}">
                                        <source ng-src="{{episode_detail.video_mp}}" type='video/mp4'>
                                        <source ng-src="{{episode_detail.video}}" type='video/webm'>
                                        <p class="vjs-no-js">
                                            To view this video please enable JavaScript, and consider upgrading to a web browser that
                                            <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
                                        </p>
                                    </video>
                                </div>

我的nginx配置: enter image description here

enter image description here

这就是我的意思,尝试在Google Chrome中回放视频: http://185.143.173.143:8000/media/SPONGEBOB_TRAP_REMIX_KRUSTY_KRAB_Vine_Remix.mp4

结果不适用于chrome倒带,我读到有必要配置服务器以返回部分内容。如何为此配置nginx?

1 个答案:

答案 0 :(得分:0)

您将max_ranges设置为0,这将禁用nginx中的范围请求处理。最简单的方法是删除max_ranges 0行。但是,如果原点(185.143.173.143)不符合Range请求,那么仍然可能无效。

为了测试origin(185.143.173.143)本身是否支持范围请求,您将需要使用来自nginx机器的curl:

curl -I -r 0-100 http://185.143.173.143/path/to/video   

如果Range请求有效,状态将类似于206 Partial Content,并且会有一个Content-Range标头指示请求的范围。在这种情况下,Content-Length应为101。如果你得到200,那么你的实际来源本身可能不支持范围请求,你必须在那里调试配置。