Server mp4 file larger than 2GB on 32bit system

王 静凯 lywjk at
Sat Jun 5 08:35:32 UTC 2021


I compile a nginx for an 32bit system (ARM).
When I request a mp4 file which is larger than 2GB then it response with '416 Requested Range Not Satisfiable’.
The type of max_ranges is ngx_uint_t, I could not set it max than about 2000000000.
In this situation, I could I server the mp4 file correctly?

The ngx_size is set to 4 when I compile nginx.
#define NGX_MAX_SIZE_T_VALUE  2147483647

#ifndef NGX_SIZE_T_LEN
#define NGX_SIZE_T_LEN  (sizeof("-2147483648") - 1)

#define NGX_MAX_OFF_T_VALUE  2147483647

#ifndef NGX_OFF_T_LEN
#define NGX_OFF_T_LEN  (sizeof("-2147483648") - 1)

Config file:
location ~* .*\.(mp4|m3u8|m4s)$
                        max_ranges 2000000000;
                        include conf.d/options.conf;
                        add_header 'Access-Control-Allow-Origin' '*';
                        add_header 'Access-Control-Allow-Credentials' 'true';
                        root /mypath;
                        expires      6h;

The header of request:
Accept: */*
Accept-Encoding: identity;q=1, *;q=0
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: keep-alive
Cookie: --------
Pragma: no-cache
Range: bytes=0-
Referer: -------------
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.41
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list