FAQ
- Система подсчета трафика по принципу 95%
- Информация, необходимая для начала работы с Video CDN
- Начало работы с pixCDN
Система подсчета трафика по принципу 95%
На протяжении месяца каждые 5 минут берутся отсчеты по загруженности канала. Получаем 8640 значений (при условии что в месяце 30 дней). Теперь выбираем 5% самых больших значений, т.е. 432, и выбрасываем их. Из оставшихся 8208 выбираем самый большой отсчет. Это и есть то значение, по которому Вам прийдется оплатить трафик провайдеру. Т.е. образно говоря если у вас 5% отсчетов были равны 10Мбитам, 1 отсчет из оставшихся 95% равен 8 мегабитам, и остальные отсчеты равны 3Мбитам, то заплатить вам прийдется за 8Мбит, т.е. 5% которые равны 10Мбитам мы выбросили и взяли из оставшихся самый большой, т.е. 8Мбит. Таким образом эта система подсчета трафика выгодна только тем у кого идет более менее ровный трафик на протяжении месяца. Если же у Вас бывают всплески трафика (например вы купили трафик и 4 дня за месяц Вам на сайт направляли людей), то для Вас этот метод подсчета трафика может оказаться весьма неприятным сюрпризом в виде огромного счета за трафик...
Информация, необходимая для начала работы с Video CDN
Что необходимо для начала настройки видео стриминга.
Чтобы начать настройку, необходимо ответить на несколько уточняющих вопросов.
1. Где лежат видео файлы ?
Их нужно предварительно импортить (мы настроим) - нужно ли менять как-то структуру папок (типа сложить все файлы в одну) или оставить как есть ?
2. Для доступа к vcdn нужно будет использовать отдельный домен (или субдомен) и настроить ему CNAME
3. Какие прописать настройки скорости отдачи? Обычно используется скорость отдачи около 120% от битрейта, и размер буффера (первые N байт отдаются без ограничения скорости, чтоб перемотка не тормозила) в 3-5 секунд. Можно и вообще не ограничивать скорость. Также можно указать нужные настройки прямо в урле.
4. Какие сделать настройки защиты от хотлинка? Можно проверять реферер (нужен список), можно подписывать урл (дадим пример кода) в подписи можно опционально указать время жизни, ип(ы) для которых подпись валидна, и макс кол-во ипов что могут использовать данный урл), либо проверять и реф и подпись, или же никак не защищаться.
1. Общие вопросы по video CDN.
CDN касается только видео файлов, для тумб используется отдельный, принципиально другой CDN.
CDN для видео работает через 302-й редирект. Видео хранится на наших серверах, кол-во копий определяется популярностью файлов - для малопопулярных копий мало, для сильно популярных - много. Сначала запрос попадает на сервер редиректора (их несколько, домен для CDN может иметь несколько IP. Редиректор делает проверки на предмет доступности файла и разрешения доступа (реферер + ключ) и отдает 302-й редирект на стрим сервер, который и будет обслуживать данный конкретный запрос, сервер выбирается исходя из пинга к клиенту и загрузки данного сервера и его аплинков.
Итого, для работы cdn надо иметь домен, который будет указывать на сервера редиректоров (можно один, но лучше несколько, для распределения нагрузки и отказоустойчивости).
У нас есть вспомогательные скрипты для автоматизации добавления новых файлов, на вашем сторедже надо чтобы работал http сервер для скачивания файлов, и rsync сервер для получения рекурсивного листинга директории с файлами.
Сначала импортятся все файлы, импорт происходит через web форму POST-запросом - в базу постятся урл файла, его имя внутри cdn и опциональные параметры, типа размера, чексумы и т.д. CDN стягивает файл на один из серверов, и после этого им можно пользоваться, после успешного импорта файл на вашем сторедже уже можно удалять.
Структуру можно сохранить или модифицировать как угодно, на стрим-серверах файл хранится с оригинальным именем, но без папки, папка используется только на редиректоре для определения конкретного файла.
Однажды заимпорченый файл изменить на ходу пока что нельзя - надо либо импортить новый (под другим именем), либо сначала удалять старый и заново импортить.
Пример конфига для rsync (используется для автоматического добавления новых файлов)
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. Лучшая на рынке защита от хотлинка.
Поддерживается не только классическая проверка реферера, толку от неё уже немного, т.к. через тэг можно легко запретить передачу рефа. Есть такие варианты защиты контента от нежелательного скачивания :
подпись ссылки (параметр /key=..,)
время жизни ссылки ( параметр ,end=12345678/ )
список разрешённых реферов, либо список запрещённых реферов (параметр /referer=LIST/)
привязывание ссылок к IP адресу или диапазону IP адресов ( параметр ,ip=1.2.3.4/ )
лимитирование количества скачиваний с разных IP ( параметр ,limit=3/ )
проверка куки ( параметр /sec=cookie_name/ , имеет смысл только при включенной защите через подпись)
можно отключить защиту
В общем - любой из трех проверок (правильный ип, наличие правильной куки или правильного рефа) достаточно, чтобы запрос был обслужен - хотлинк не может подделать ни один из этих параметров.
3. Callback URL.
Eсть возможность указывать callback урл, который будет дергаться после успешного(или неуспешного) импорта, для того чтобы ваш скрипт мог сделать у себя пометку в базе что файл готов к использованию.
Callback is optional url fetched after file is imported returning importing status in parameters: '?status=(fail|success)&message=Some message'. т.е. можно указать callback:
Начало работы с pixCDN
1. Создание источника.
Для того чтобы подключить сайт в CDN нужно зайти в админку (http://pixcp.ahcdn.com/) в раздел Источники (http://pixcp.ahcdn.com/ru/sources) и нажать кнопку "добавить источник".
В поле "Источник*:" нужно ввести домен, с которого наша система будет импортировать изображения или любые другие статические файлы в наш CDN (без http:// в начале и / в конце - только домен).
Если Вы желаете использовать для отдачи с CDN свой домен, то его необходимо указать в поле "CNAME" (для этого домена Вам нужно создать dns-запись, указав домен из поля "домен доступности" в качестве CNAME.
Для активации антихотлинка нужно указать хотябы один "REFERER:". При включенной функции антихотлинка файлы отдаются только в том случае, если referer один из разрешённых, пустой или заблокированный.
Когда статус источника сменится с "new" на "active" его можно использовать.
Например Вы указали example.com как источник, cdn.example.com - как CNAME (и создали соответственно CNAME запись в DNS). Тогда для того, чтобы начать показывать изображения с CDN Вам нужно изменить url изображений в тэге img.
Для файла
Статистика по количеству файлов и занятого места обновляется в течении нескольких суток
2. Очистка кэша и массовое удаление файлов.
Для выполнения очистки кэша нужно на странице "Источники" отметить источник и нажать на кнопку "Очистить кэш".
Для массового удаления файлов предусмотрена специальная функция ("Массовое удаление файлов" в меню). Из выпадающего списка выберите источник, затем тип (files или directories, если будет выбрано directories то указание файлов в списке также допустимо). Имена файлов в списке разделяются переводом строки, пути должны быть указаны относительные. Например, если нужно удалить из кэша http://cdn.example.comimages/1.png и http://cdn.example.comimages/2.png укажите в списке:
img/2.png
3. Работа с Хранилищем.
PixCDN работает по принципу кэша: при первом обращении к файлу он импортируется в кэш cdn и при следующих запросах на файл - отдаётся уже из кэша.
Импортировать файлы в кэш cdn можно как с Вашего сервера, так и со специально выделенного стореджа (хранилища) PixCDN.
Если Вам удобнее хранить файлы для cdn на нашем хранилище, то нужно создать домен на хранилище, настроить его и указать в качестве Источника.
Чтобы создать акаунт хранилища нужно на странице "Хранилища" нажать кнопку "добавить". Доступ к файлам в хранилище можно получить двумя способами: по ftp и при помощи rsync.
Данные доступа ftp отображаются в поле "info" на странице "Хранилища" в списке.
Данные доступа rsync настраиваются в режиме редактирования хранилища (карандашик в списке хранилищ). Нужно указывать данные Вашего сервера, так как соединение инициируется на стороне стореджа. Авторизация - по ssh ключу (его можно получить в списке хранилищ по ссылке "show" напротив "ssh key". Активировать передачу файлов по протоколу rsync можно из админки или через api.
После того как домен на сторедже настроен и там размещены файлы нужно указать домен, указанный в поле "Хранилище" в качестве источника (на странице "источники" в режиме редактирования источника).
4. Как подключить pCDN для Smart CJ.
Заходим в админку SmartCJ - > Rotation -> Settings - > Settings -> закладка Other Settings
В строке Alternative hosts (img.domain.com,img2.domain.com and so on) (comma separated) (1) вводите свой CNAME (предварительно создав DNS запись) или Домен доступности (автоматически генерируется админкой) (2)
5. Как подключить CDN для WORDPRESS.
Чтобы подключить CDN для WORDPRESS надо
1. Cкачать и установить вот этот плагин.
2. Затем создать Profile в панели Wordpress и как-от его назвать. Например, Media
3. Следующий шаг - заменить "свой домен" на "домен доступности" или "cname" из панели управления CDN
4. Отметить галочкой, что отдавать с этого домена img, content и тд.
6. Как подключить CDN для Joomla.
1. Создайте Источник, как указано здесь http://ahcdn.com/faq#pcdn1
2 Установите плагин, скачав его здесь http://download.nonumber.nl/?ext=cdnforjoomla
- если у Вас новая версия (2.2), воспользуйтесь этой ссылкой http://download.nonumber.nl/?ext=cdnforjoomlaHYPERLINK "http://download.nonumber.nl/?ext=cdnforjoomla&v=2.1.2"&HYPERLINK "http://download.nonumber.nl/?ext=cdnforjoomla&v=2.1.2"v=2.1.2
- если Ваш сайт на PHP 5.2 или более ранних версиях, скачайте соотвествующую версию плагина http://download.nonumber.nl/changelog.php?ext=cdnforjoomlaHYPERLINK "http://download.nonumber.nl/changelog.php?ext=cdnforjoomla&full=1"&HYPERLINK "http://download.nonumber.nl/changelog.php?ext=cdnforjoomla&full=1"full=1
4. Выберите архив (1) и нажмите «Загрузить и установить» (2)
5. После того, как утсановка была успешно завершина, вернитесь в Расширения, выберите Менеджер плагинов и включите Плагин
6. В поле CDN Домен(1) введите Домен Доступности (2), который автоматически генерируется нашей системой
7. Как подключить CDN для Magento.
1. Создайте Источник. Как это сделать смотрите здесь http://ahcdn.com/faq#pcdn1
2. Залогинтесь в Magento. В разделе "System" (1) выберите пункт "Configurations" (2)
3. Здесь в сайдбаре "General" (1) выберите пункт "Web" (2)
4. Выберите вкладку "Unsecure" (1) и введите следующую информацию
В поле Base URL: введите домен своего сайта в формате http://www.domain.com
Base link URL: менять не надо. Должно быть написано “{{unsecure_base_url}}”
Base Skin URL: введите урл, где расположены скины http://example.com/skin//
Base Media URL: введите урл, где находится медиа http://example.com/media/
Base JavaScript URL: урл для скриптов http://cexample.com/js/
8. Как подключить CDN для Drupal.
1. Создайте Источник в панели управления cdn. Как это сделать смотрите здесь http://ahcdn.com/faq#pcdn1
2. Установите CDN модуль.
Залогинившись в Drupal, нажмите на “Modules” (1), затем на “Install new module” (2)
3 В поле“Install from a URL” (1), введите урл для CDN Модуля //ftp.drupal.org/files/projects/cdn-7.x-2.6.zip и нажмите“Install” (2)
В верхнем меню кликните на “Configuration”(1) и проскрольте до “CDN”(2)- нажмите.
Во вкладке“General” (1), выберите статус “Enabled”(2) и “Save Configuration” (3).
3. Во вкладке “Details”(1) выберите “Origin Pull”(2). В “CDN Mapping” введите Доменя доступности/ CNAME в формате http://cdn.drupal.example.com/ и сохраните
9. Как подключить CDN для KVS.
1. Создайте Источник в панели управления cdn. Как это сделать смотрите здесь http://ahcdn.com/faq#pcdn1
2. Открываем файл в редакторе /home/adccount/DOMAIN.COM/admin/include/setup.php
после переменной $config['project_url']="http://www.DOMAIN.COM";
добавляем новую переменную $config['project_url_cdn']="http://img.DOMAIN.COM"; где в кавычках указываем "домен доступности" из админки http://pixcp.ahcdn.com/
3.Потом находим ниже в файле поля, правим нужные с project_url на project_url_cdn
как тут
$config['content_url_videos_screenshots']="$config[project_url_cdn]/contents/videos_screenshots";
$config['content_url_albums_sources']="$config[project_url_cdn]/contents/albums_sources";
$config['content_url_categories']="$config[project_url_cdn]/contents/categories";
$config['content_url_content_sources']="$config[project_url_cdn]/contents/content_sources";
$config['content_url_models']="$config[project_url_cdn]/contents/models";
$config['content_url_avatars']="$config[project_url_cdn]/contents/avatars";