Server mp4 file larger than 2GB on 32bit system
Maxim Dounin
mdounin at mdounin.ru
Sun Jun 6 16:10:38 UTC 2021
Hello!
On Sat, Jun 05, 2021 at 08:35:32AM +0000, 王 静凯 wrote:
> 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 max_ranges directive is to limit the number of ranges in a
request, which almost always at most one (and just one in the
request you've showed). And it is completely unrelated to 416
errors. Just leave the default.
> The ngx_size is set to 4 when I compile nginx.
> So:
> #ifndef NGX_MAX_SIZE_T_VALUE
> #define NGX_MAX_SIZE_T_VALUE 2147483647
> #endif
>
>
> #ifndef NGX_SIZE_T_LEN
> #define NGX_SIZE_T_LEN (sizeof("-2147483648") - 1)
> #endif
>
>
> #ifndef NGX_MAX_OFF_T_VALUE
> #define NGX_MAX_OFF_T_VALUE 2147483647
> #endif
>
>
> #ifndef NGX_OFF_T_LEN
> #define NGX_OFF_T_LEN (sizeof("-2147483648") - 1)
> #endif
What does "./configure" output show? Are you running configure on
the target system, or tried to cross-compile nginx?
It looks like for some reason nginx wasn't able to find out how to
instruct your system to use 64-bit off_t. The most likely reason
I can think of is an attempt to cross-compile nginx. Note that
cross-compiling is not supported and not going to work. The most
simple and the only supported solution would be to compile nginx
natively.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx
mailing list