Welcome! Log In Create A New Profile

Advanced

proxy_cache с заголовком Range.

May 10, 2016 01:40PM
Коллеги, здравствуйте.
Использую nginx для проксирования и кэширования на диск видео-файлов (mp4) из социальной сети ВКонтакте.
Приложение на php узнаёт ссылку на файл на удалённом сервере, определяет где будет хранится файл на диске и отдаёт эту информацию в заголовком
Для воспроизведения видео на сайте используется html5-плеер, который, для определения возможности перемотки на ещё не загрузившийся момент, к заголовку запроса добавляет "Range: bytes=0-" и если сервер ответил кодом 206, то даёт возможность делать такую перемотку, если код 200, то такой возможности не предоставляется.
Но nginx кэширует ответы только с кодом 200, а 206 с "Range: bytes=0-" нет. В принципе, это хорошо, т.к. неполные файлы в кэше не нужны, но в данном ситуации кэшировать файлы с помощью nginx не представляется возможным (т.к. плеер всегда делает запрос с заголовком Range).

Демонстрационный-код + конфиг: https://gist.github.com/anonymous/07a89471f2d2c7a18bda8f0464c3091e

Подскажите, пожалуйста, как можно сделать, чтобы nginx таки кэшировал файлы?
Мне видятся 2 варианта решения данного вопроса:
- из php возвращать код 206 и сделать 2 location, один из которых будет поддерживать заголовок Range, но не будет сохранять файл на диск, а второй будет слать запрос к удалённому серверу без Range и nginx будет сохранять на диск файл;
- написать что-то в конфиге nginx, чтобы он заменял код 200 на 206, при наличии заголовка "Range: bytes=0-";
Но как реализовать любой из них - не представляю.

P.S. Flash-плеер, который не умеет слать заголовок Range, использовать нет возможности.

Благодарю.
С уважением.
Subject Author Posted

proxy_cache с заголовком Range.

kycedbi May 10, 2016 01:40PM

Re: proxy_cache с заголовком Range.

kycedbi May 12, 2016 06:02AM

Re: proxy_cache с заголовком Range.

Eugene Mychlo May 12, 2016 06:19AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 300
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready