Вопрос: Отключение 206 ответов частичного контента на nginx


У меня есть веб-приложение HTML5, в котором используется тег видео. В зависимости от действий пользователя в ответ будут воспроизводиться разные части видео. Это видео не превышает 5 МБ.

Мне нужно, чтобы это видео было полностью загружено на клиента, иначе пользователю придется ждать буферизации, если часть, которую нужно воспроизвести, находится в конце видео. В самом деле, поведение браузеров заключается в том, чтобы спросить, поддерживается ли запрос диапазона, и получить частичный ответ HTTP 206 с моего сервера nginx.

Я нашел способ сделать то, что хочу, используя xhr2 для загрузки всего видео в виде BLOB. Тем не менее, мне было интересно, возможно ли, если браузеры, которые не поддерживают xhr2, чтобы nginx отказался от запроса диапазона и отправил классический ответ HTTP 200, чтобы браузер получал все видео.

Это возможно? Большое спасибо за Вашу помощь!


5
2017-09-03 12:14


Источник




Ответы:


Задавать max_ranges 0. Для этого требуется nginx 1.1.2 или выше.

Пример:

location ~ \.mp4$ {
    max_ranges 0;
}

6
2017-09-03 12:19



Спасибо, это именно то, что я искал. К сожалению, эта идея не была верным ответом на мою проблему, поскольку видео в формате HTML5, загруженное без запроса диапазона, не доступно для поиска: stackoverflow.com/questions/8088364/html5-video-will-not-loop, Я не знал этого, я попытаюсь найти другую идею. - JuCachalot
Я предлагаю вам посетить Переполнение стека и искать способы предварительной загрузки содержимого. - Michael Hampton♦