← Cloudflare Cache / cache / troubleshooting
Problémy s videi MP4 na iOS a v Safari
Když je provoz směrován přes Cloudflare, Safari na macOS a iOS zařízeních nemusí načíst video soubory MP4.
Tento problém vzniká proto, že Safari zpracovává HTTP range requesty jinak než ostatní prohlížeče, zejména v tom, jak zachází s ETagy během streamování videa.
Safari a zařízení s iOS se při podpoře funkcí videa, jako je přeskakování na konkrétní časovou pozici nebo obnovení přerušeného stahování, spoléhají na HTTP rozsahové požadavky (range requests).
Když vrstva ukládání do mezipaměti Cloudflare zpracuje tyto range requesty se slabými ETagy, Safari může odpověď z mezipaměti zcela odmítnout, což vede k tomu, že se videa nenačtou nebo se zobrazí jako černá obrazovka.
Tento problém vyřešíte nastavením dvou pravidel mezipaměti v tomto pořadí.
1. Vytvořte pravidlo strong ETags
Vytvořte cache rule které se vztahuje na všechny soubory MP4, označí je jako způsobilé pro ukládání do mezipaměti a zapne nastavení Respect Strong ETags.
-
V dashboardu Cloudflare přejděte na Cache Rules stránce.
Přejděte na Cache Rules ↗ -
Vyberte Vytvořit pravidlo > Cache Rules.
-
Zadejte popisný název pravidla do Název pravidla.
-
V Když příchozí požadavky odpovídají… sekci vytvořte filtr, který se vztahuje na všechny soubory MP4, například
URI FullWildcard*.mp4. -
Vyberte Způsobilé pro cache v Způsobilost pro ukládání do mezipaměti sekce.
-
Vyberte + Add Setting pro Respect strong ETags a zapněte přepínač.
-
Vyberte Poslední jako Umístit na.
2. Vytvořte pravidlo bypass cache
Vytvořte další pravidlo mezipaměti, které se použije na všechny soubory MP4 a mezipaměť zcela obejde.
-
V dashboardu Cloudflare přejděte na Cache Rules stránce.
Přejděte na Cache Rules ↗ -
Vyberte Vytvořit pravidlo > Cache Rules.
-
Zadejte popisný název pravidla do Název pravidla.
-
V Když příchozí požadavky odpovídají… sekci vytvořte stejný filtr pro soubory MP4, například
URI FullWildcard*.mp4. -
Vyberte Bypass cache v Způsobilost pro ukládání do mezipaměti sekce.
-
Vyberte Poslední jako Umístit na.
Proč na tomto pořadí záleží
První pravidlo zachovává silné ETags pro soubory MP4, což splňuje požadavky Safari na zpracování range požadavků. Druhé pravidlo obchází mezipaměť, takže Cloudflare předává range požadavky originovému serveru místo toho, aby poskytoval odpovědi z mezipaměti s potenciálně neshodujícími se ETags.
První pravidlo musí být v seznamu Cache Rules uvedeno nad druhým pravidlem.