i need to ensure the Accept-Ranges header is present to serve video
files
while supporting forward/backwards seeking.
i notice in many tutorials for nginx that this header is shown as being
present in server response headers by default, yet not on my present
setup.
i have used the following to add the header manually in the relevant
places,
yet so far have not been successful:
streamable mp4
location ~* .(mp4|mp4a)$
#location ~* .mp4$
#location ^~ /file/download/
{
mp4;
mp4_buffer_size 4M;
mp4_max_buffer_size 20M;
gzip off;
gzip_static off;
limit_rate_after 10m;
limit_rate 1m;
# here you add response header “Content-Disposition”
# with value of “filename=” + name of file (in variable
$request_uri),
# so for url example.com/static/audio/blahblah.mp3
# it will be /static/audio/blahblah.mp3
# ----
#set $sent_http_content_disposition filename=$request_uri;
# or
#add_header “content_disposition” “filename=$request_uri”;
# here you add header "Accept-Ranges"
#set $sent_http_accept_ranges bytes;
more_set_headers ‘Accept-Ranges: bytes’;
add_header “Accept-Ranges” “bytes”;
add_header "Cache-Control" "private";
add_header "Pragma" "private";
# tell nginx that final HTTP Status Code should be 206 not 200
return 206;
}
as you can see, i have played with various options, yet none have
succeeded.
i am not even sure that any of these directives are being called at all.
(this is part of a large-ish config file for a social network with many
features).
i am aware that nginx ignores add_header directives except for the ones
in
the final location block for the presently served file… yet so far this
awareness has not yielded a solution.
i am also not seeing a return code of 206 - instead the usual 200 is
returned when i access an mp4 file directly via curl.
anyone know what i am missing? thanks
Posted at Nginx Forum: