Nginx is not accepting range of bytes

22,468

Solution 1

I was able to get range requests working after adding the following line to my nginx site config

    proxy_force_ranges on;

You can read more about it here

Solution 2

I have found it - its the option

max_ranges

It was max_ranges 0 at the bottom of the configuration.

Share:
22,468
kmitov
Author by

kmitov

Updated on December 17, 2020

Comments

  • kmitov
    kmitov over 3 years

    I am using nginx to serve videos from the file system. I would like to enable range request.

    Currently this is the result returned for my file

    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
    

    But if I send curl --header "Range: bytes=0-50" fileurl

    the whole file is downloaded.

    This is the server in nginx config:

    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;
        }
    

    Do I have to enable anything else? How could I allow range requests for the files?

  • Alexis Wilke
    Alexis Wilke about 5 years
    Only by default max_ranges is not supposed to be zero and you did not show that line in your question! In my case, I have max_ranges 100; and it still isn't doing it right.
  • Marc
    Marc about 4 years
    Man I love you, I've been struggling to get range requests working on my nginx for hours, tried everything, only your hint worked.. Thanks a million.