menu hover
FAQ по хостингу »

Информация, необходимая для начала работы с CDN

Что необходимо для начала настройки видео-CDN.

1. Общие вопросы по CDN.

2. Лучшая на рынке защита от хотлинков.

3. Callback URL.

Что необходимо для начала настройки видео-CDN.

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

  1. Где расположены файлы с видео? Их нужно предварительно импортировать в нашу сеть (это мы настроим). Нужно ли каким-либо образом изменить структуру папок (например, разместить все файлы и каталоги в один общий каталог) или оставить как есть?

  2. Для доступа к vcdn нужно будет использовать отдельный домен (или субдомен) и настроить для него запись CNAME.

  3. Как настроить скорость отдачи видео? Обычно настраивается скорость отдачи, около 120% от битрейта видео, и размер буффера (первые N байт отдаются без ограничения скорости, чтобы перемотка не тормозила) в 3-5 секунд. Можно вообще не ограничивать скорость. Также можно передавать нужные настройки прямо в URL.

  4. Какие делать настройки защиты от хотлинка? Можно проверять реферер (нужен список "белых" доменов), можно подписывать URL (предоставим пример кода), в подписи можно опционально указать время жизни ссылки, IP-адрес(а), для которых подпись действительна, и максимальное количествово IP-адресов, которые могут использовать данный URL), либо проверять и реферер и подпись, или же никак не защищаться.

1. Общие вопросы по CDN.

Для видео-файлов и файлов изображений используются две разных сети CDN.

CDN для видео работает через 302-й редирект. Видео хранится на наших серверах, кол-во копий определяется популярностью файлов - для малопопулярных копий мало, для сильно популярных - много. Сначала запрос попадает на сервер редиректора (их несколько, домен для CDN может иметь несколько IP. Редиректор делает проверки на предмет доступности файла и разрешения доступа (реферер + ключ) и отдает 302-й редирект на стрим сервер, который и будет обслуживать данный конкретный запрос, сервер выбирается исходя из пинга к клиенту и загрузки данного сервера и его аплинков.

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

У нас есть инструменты для автоматизации добавления новых файлов, на вашем сторедже нужно чтобы работал http сервер для скачивания файлов, и rsync-сервер для получения рекурсивного листинга директории с файлами.

Сначала импортируются все файлы, импорт происходит через web форму POST-запросом - в базу отправляется URL файла, его имя внутри cdn и опциональные параметры: размер, контрольные суммы и т.д. CDN импортирует файл на один из серверов, и после этого им можно пользоваться, после успешного импорта файл на вашем сторедже уже можно удалять.

Структуру можно сохранить или модифицировать как угодно, на стрим-серверах файл хранится с оригинальным именем, но без каталога, каталог используется только на редиректоре для определения конкретного файла.

Однажды импортированный файл изменить на ходу пока что нельзя - нужно или импортировать новый (под другим именем) или сначала удалить старый и импортировать заново.

Пример конфигурации для rsync (используется для автоматического добавления новых файлов)

[somekeyhere]
path = /home/client/videos.domain.com
comment = videos
list = false
hosts allow = 46.229.161.235 46.229.170.76 127.0.0.1

2. Лучшая на рынке защита от хотлинков.

Есть несколько возможных настроек защиты от хотлинка: можно проверять реферер; можно подписывать URL; в подписи можно опционально указать время жизни, IP-адрес(а), для которых подпись действительна, и максимальное количество IP-адресов, которые могут использовать данный URL.

Теперь дополнительно может проверяться Cookie (имя можно выбрать любое) - если его значение совпадает со значением ключа - то запрос действительный, даже если нет привязки по IP или нет рефа (если реф есть, но не совпадает, то запрос будет отклонен). Если привязка по IP не используется, то отсутствие правильного Cookie не будет отклонять запрос только если есть действительный (valid) реф.

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

3. Callback URL.

Eсть возможность указывать callback URL, который будет запрашиваться после успешного (или неуспешного) импорта, для того, чтобы ваш скрипт мог сделать у себя пометку в базе, что файл готов к использованию.

Callback is optional url fetched after file is imported returning importing status in parameters: '?status=(fail|success)&message=Some message'. т.е. можно указать callback:

http://www.domain.com/cdn_callback.php?file=/0772/10100.flv
и будет запрошен или
http://www.domain.com/cdn_callback.php?file=/0772/10100.flv&status=success
или
http://www.domain.com/cdn_callback.php?file=/0772/10100.flv&status=fail&message=404%20error
например.