html5 кеш видео тегов

Мы запустили симпатичный сервер Centos 7 LAMP ( Apache 2.4 с mod_pagespeed PHP 5.6, MariaDB 5.5) и недавно начали встраивать html5-видео на фоне некоторых страниц в соответствии с кодом:

<video class="banner-video" loop autoplay poster="img/poster.jpg">
    <source src="videos/intro.mp4" type="video/mp4">
</video>

Видео работает, как и ожидалось, и автоматически зацикливается, как и ожидалось, большинство наших клиентов загружают видео один раз и перезагружают видео из кэша после первого запуска, но у нас есть несколько клиентов (я считаю 3 на данный момент), которые продолжают - загрузка каждый раз после первого запуска, и это приводит к быстрому увеличению нашей квоты пропускной способности (иногда тот же IP-адрес загружает 35-Гбайт того же видеофайла 7 Мб).

Я почти уверен, что это поведение не является вредоносным (по крайней мере, в этом случае, я готов поверить, что это некоторая неправильная конфигурация на их прокси-сервере или что-то подобное), и поэтому я ищу способы ограничить пропускную способность, используемую одним IP адрес или, чтобы лучше информировать клиентский браузер для кэширования видеофайла, мы уже пытались использовать виртуальный хост apache и через.htaccess этот конфиг, и, похоже, это не имеет значения.

<FilesMatch "\.(mp4)">
    Header set Cache-Control "max-age=604800, must-revalidate"
</FilesMatch>

Я уже протестировал перемещение видеофайла на другой сервер с другой конфигурацией (еще более ванильный Centos 6.6 LAMP), чтобы проверить, не было ли это с нашей стороны неправильной конфигурацией

поэтому мой вопрос заключается в том, есть ли простой способ заблокировать, используя конфигурацию apache (возможно, на 24 часа или на одну неделю) только загрузку файла по определенным IP-адресам после, скажем, 10 загрузок, при этом сохраняя возможность загрузки остальной части сайта?

или есть лучший способ информировать клиента о соблюдении правил кэширования?

Я, вероятно, мог бы написать PHP-скрипт, который бы подсчитывал количество раз, когда файл был загружен, и отвечал 403 в случае, если он был загружен более X раз по одному и тому же IP, но я не думаю, что это решение является оптимальным.

как по логам apache наш клиент работает под управлением windows 10 x64 с google chrome 48 (возможно, это известная ошибка)

1 ответ

Решение

Просто небольшой ответ на этот вопрос, чтобы он не оставался без ответа навсегда, на самом деле он не решает проблему, но, по крайней мере, снижает счет, который мы должны были заплатить.

Мне удалось воспроизвести проблему с плохо настроенным сервером Squid, действующим как прокси.

В этом случае я разместил видео и другие видео, которые мы с тех пор должны были размещать, на другом сервере с более высокой задержкой, но чрезвычайно низкой пропускной способностью.

Общее впечатление от клиента не сильно меняется, потому что, поскольку мы размещаем видеофайлы только на дешевом сервере, мы не платим высокую цену за каждый файл, только за запрос к видео.

Другие вопросы по тегам