Отключение 206 частичных ответов на контент на nginx

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

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

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

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

1 ответ

Решение

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

Пример:

location ~ \.mp4$ {
    max_ranges 0;
}
Другие вопросы по тегам