У меня возникли проблемы с кешированием диапазона байтов MP4 и браузерами Apple. У меня есть узел кеширования, который захватывает содержимое с внутреннего узла и кэширует его, а затем предоставляет пользователям. Это делается с помощью nginx proxy_pass вместе с кешированием nginx.
Я обнаружил, что многие браузеры сначала запрашивают все видео (диапазон байтов от 0 до бесконечности), а затем запрашивают фрагменты. Это было проблемой, потому что из-за этого узел кеширования сразу загружал все видео из серверной части. Чтобы исправить это, мы заставили узел кэша разделить запросы на 10M фрагментов, независимо от того, насколько велик был запрошенный диапазон байтов. Это работало почти для всех браузеров, кроме Safari. Как для настольных компьютеров, так и для сафари iOS Safari почти мгновенно выдает ошибку повреждения носителя. Ошибка выдается, как только будет отправлен запрос с диапазоном байтов, установленным как полный файл. Если мы не переписываем запрос, он отлично работает в Safari, но вызывает насыщение порта узлов кеша почти все время, потому что когда кто-то начинает потоковую передачу файла, весь файл загружается в узел кеша, насыщая порт. Любые предложения о том, как я могу это исправить, будут оценены.