← Cloudflare Cache / cache / troubleshooting
Проблемы с видео MP4 в iOS и Safari
Если трафик проходит через Cloudflare, Safari на устройствах с macOS и iOS может не загружать видеофайлы MP4.
Эта проблема возникает потому, что Safari обрабатывает HTTP range запросы иначе, чем другие браузеры, особенно в том, как он обрабатывает ETags при потоковом воспроизведении видео.
Safari и устройства на iOS используют HTTP-запросы диапазона (Range requests) для поддержки видеофункций, таких как переход к определённому моменту воспроизведения и возобновление прерванных загрузок.
Когда уровень кэширования Cloudflare обрабатывает такие range-запросы со слабыми ETag, Safari может полностью отклонить закэшированный ответ, из-за чего видео не загружается или отображается черным экраном.
Чтобы устранить эту проблему, настройте два правила кеширования в указанном порядке.
1. Создайте правило для строгих ETag-заголовков
Создайте cache rule которое применяется ко всем файлам MP4, помечает их как пригодные для кеширования и включает настройку Respect Strong ETags.
-
На панели управления Cloudflare перейдите к разделу Cache Rules страницу.
Перейдите в Cache Rules ↗ -
Выберите Создать правило > Cache Rules.
-
Введите описательное название правила в Название правила.
-
В Когда входящие запросы совпадают… разделе создайте фильтр, применяемый ко всем файлам MP4, например
URI FullWildcard*.mp4. -
Выберите Подлежит кешированию в Допустимость кеширования раздел.
-
Выберите + Add Setting для Respect strong ETags и включите переключатель.
-
Выберите Последняя как Расположите на.
2. Создайте правило обхода кеша
Создайте ещё одно правило кеширования, которое применяется ко всем файлам MP4 и полностью пропускает кеш.
-
На панели управления Cloudflare перейдите к разделу Cache Rules страницу.
Перейдите в Cache Rules ↗ -
Выберите Создать правило > Cache Rules.
-
Введите описательное название правила в Название правила.
-
В Когда входящие запросы совпадают… разделе создайте такой же фильтр для файлов MP4, например
URI FullWildcard*.mp4. -
Выберите Bypass cache в Допустимость кеширования раздел.
-
Выберите Последняя как Расположите на.
Почему важен этот порядок
Первое правило сохраняет строгие ETags для файлов MP4, что удовлетворяет требованиям Safari к обработке запросов диапазона. Второе правило обходит кеш, поэтому Cloudflare перенаправляет запросы диапазона на исходный сервер вместо того, чтобы отдавать кешированные ответы с потенциально несовпадающими ETags.
Первое правило должно располагаться выше второго в списке Cache Rules.