CDN
Начало работы c продуктом
CDN: основные понятия, типы доставляемого контента и принцип работы услуги
Что такое CDN?
CDN или сеть доставки контента — это географически распределённая сеть серверов, благодаря которой пользователи сервисов могут загружать контент за несколько миллисекунд. Контент доставляется CDN-серверами. Это промежуточные узлы или PoP (точки присутствия), которые кешируют и доставляют объём данных, снижая нагрузку на источник.
Простыми словами CDN — это курьерская служба с быстрой доставкой. Вы не ждёте посылку с главного склада, ведь это займёт много времени, поэтому вам доставляют заказ с одного из складов рядом с вами. На CDN происходит то же самое: контент хранится в разных точках мира, поэтому и данные для клиентов загружаются быстрее.
Какой контент доставляет CDN?
CDN может раздавать динамический и статический контент.
Динамический контент ― это контент, который генерируется на сервере при получении запроса или изменяется в зависимости от геолокации пользователя, времени отправки запроса и устройства, с которого запрашивается контент.
Динамический контент кастомизирует веб-страницы пользователей и добавляет больше возможностей для интерактива. Например, социальные сети относятся к динамическому контенту. Там каждый пользователь загружает собственную динамическую новостную ленту, где можно оставлять комментарии и делиться записями с друзьями.
Несмотря на то, что динамический контент индивидуален для каждого пользователя и не кешируется как статический, CDN позволяет ускорять даже его.
Статический контент — контент, который хранится в неизменном виде или незначительно изменяется при загрузке на сервер. К статическим данным относятся бинарные файлы, аудио, видео, стили сайтов и другие.
Например, статьи в интернете — это статический контент, где текст и изображения изменяются нечасто. Информация на странице будет идентичной для каждого читателя, независимо от его личности или геолокации.
Когда CDN-сервер кеширует статические данные, на нём сохраняется копия файла в течение заданного периода времени. Так, файл становится ближе к пользователю и загружается быстрее.
Как работает CDN?
Допустим, вы владеете оптовой компанией, а ваши пользователи находятся по всей России. Источник (основной сервер), на котором хранится контент, расположен в Калининграде. Без CDN пользователи запрашивают контент напрямую с источника. При этом чем дальше от источника находится пользователь, тем дольше он будет ожидать загрузки контента. Например, пользователь из Владивостока может не дождаться ответа вашего сервера и уйдёт с сайта навсегда. А если на источник поступит большое количество запросов, возрастёт нагрузка, и он может упасть.
При подключении CDN ваши пользователи будут получать данные не с источника, а с ближайших CDN-серверов. Так, время загрузки значительно сократится.
Рассмотрим, как это происходит.
1. Например, на сайт заходит первый пользователь из Екатеринбурга и хочет загрузить контент. Такой запрос отправится на ближайший CDN-сервер, однако он переадресует его на источник, поскольку CDN такой контент ещё не кешировал. Первому пользователю контент будет доставлен с задержкой, но он также параллельно будет закеширован на ответившем CDN-сервере для последующих пользователей.
2. Второй и последующие пользователи из Екатеринбурга будут получать данные почти моментально уже из кеша CDN, а не от источника. Скорость загрузки увеличится, потому что CDN больше не обращается к источнику. А если на ваш сервис будет поступать аномальное количество запросов, CDN поможет снять нагрузку с источника и принять удар на себя.
Кто использует услугу CDN?
CDN рекомендуется подключать для любых сайтов и проектов с широкой клиентской базой. CDN сервис содержит множество полезных опций, улучшает SEO, защищает сервер от нагрузок и разных DDoS-атак, делая сервер отказоустойчивым, а также обеспечивает низкие задержки до 30 мс и предоставляет техподдержку, которая всегда готова помочь.
Посмотрим, какие отрасли успешно работают с нашим провайдером MaCloud, и как мы помогаем им развиваться.
Онлайн-ритейл. MaCloud ускоряет работу интернет-магазинов, повышая доверие клиентов и продажу товаров. Ведь если скорость загрузки сервиса замедляется, пользователи покидают его и могут не вернуться.
Вместе со скоростью мы повышаем и позиции в поисковой выдаче, улучшая SEO. Поэтому такие интернет-магазины пользуются популярностью у пользователей и получают хорошую прибыль.
Во время акций и распродаж MaCloud помогает справиться с большими нагрузками благодаря опции Шилдинг источника. Это специальный прекеш-сервер, который собирает запросы от всей CDN, и единственный обращается к серверу-источнику. Так, шилдинг защищает ваш сервер от высоких нагрузок.
Образование. Мы помогаем проводить онлайн-лекции и вебинары с минимальными задержками. Для таких целей можно настроить потоковое вещание и общаться с учениками из разных регионов без буферизации.
Ссылки на занятия можно разместить на сайте учебного заведения для последующего просмотра и предоставить к ним доступ ограниченному кругу лиц. Опция Secure token помогает создавать временные ссылки и защищать информацию от нежелательной публики. Контент по таким ссылкам можно доставить на любое устройство: компьютеры, смартфоны, планшеты, Smart TV и т.д.
Финтех. MaCloud помогает финансовым приложениям становиться быстрыми и стабильными. А политики доступа защищают конфиденциальные данные пользователей.
Встроенная на CDN DDoS-защита также защищает приложения от вредоносного трафика. При этом если источник приложения становится недоступен из-за нагрузки, статические данные на некоторое время останутся в кеше CDN-серверов — клиенты смогут просматривать всю информацию или её часть.
Банки также часто выгружают логи запросов для отслеживания и анализа входящих запросов, выявления аномальной активности.
Медиа. MaCloud позволяет нашим клиентам проводить прямые трансляции в разрешении 4K без буферизации. С нашей помощью онлайн-кинотеатры доставляют видео в высоком качестве без задержек даже во время премьер.
Веб-сервисы, которые передают через CDN множество изображений, также пользуются услугой Image Stack, которая позволяет сжимать и изменять изображения прямо в процессе доставки.
О чём важно помнить?
1. CDN-серверы не подходят для долговечного хранения данных. Они нужны только для временного кеширования файлов на основании настроек ресурса.
2. Если на источнике часто изменяются файлы, на кеширующих серверах они могут остаться в прежнем виде. Рекомендуем очищать кеш CDN, чтобы актуализировать файлы для пользователей.
3. Из-за неправомерной активности вашего «соседа по IP» ваш сервис может оказаться заблокированным. Обратитесь в техническую поддержку, чтобы решить такую проблему.
Создать и интегрировать CDN-ресурс для контента всего сайта
Создать и интегрировать CDN-ресурс для контента всего сайта
Этот тип ресурса позволит ускорить и защитить весь сайт с помощью сервисов CDN и DNS без необходимости менять код сайта.
Важно. Если произойдёт остановка одного из сервисов (DNS или CDN), сайт перестанет ускоряться и работать.
1. Перейдите в раздел CDN и нажмите Создать ресурс.
2. Выберите тип ускорения «Ускорить и защитить весь сайт» и нажмите Подтвердить.
Обратите внимание. Для выбранного типа ускорения сайта требуется сервис DNS. Если у вас ещё не подключён этот сервис, выберите и подключите один из его тарифов. Посмотреть текущие тарифы сервисов можно в разделе Биллинг.
3. Введите название сайта (доменное имя), для которого необходимы ускорение и защита. Вы можете ввести домен второго уровня (напр., example.com) или поддомен (напр., blog.example.com, sales.shop.example.com). В обоих случаях наш Мастер настройки добавит DNS-зону для домена второго уровня (напр., example.com).
Если вы используете домен eTLD (effective top-level domains), например, co.uk, DNS-зона будет состоять из поддомена и eTLD (напр., example.co.uk).
Внимание. Если вы введёте использовать DNS-зону другого клиента, процедура будет отклонена.
В поле «Описание» можно задать необязательный комментарий, описывающий ресурс. Комментарий будет отображаться в списке ресурсов. Максимальная длина — 512 символов.
Нажмите Подтвердить.
4. Добавьте DNS-записи.
На этом шаге система ищет DNS-записи, относящиеся к вашему домену. Если записи существуют, они появятся автоматически — загрузятся из баз вашего DNS-провайдера. Если записей нет, их нужно добавить вручную.
- Если DNS-записи найдены, они отображаются с возможностью их редактирования и добавления новых.
- Если DNS-записи не найдены, появится предупреждение, что необходимо добавить A-запись для корневого домена. Добавьте её.
Можно добавить несколько записей с помощью кнопки Добавить DNS-запись. Любую из них можно редактировать.
5. (опционально) Добавьте поддомен WWW.
Если вы хотите ускорить не только основной домен (напр., example.com), но и его поддомен WWW (напр., www.example.com), включите опцию Создать поддомен WWW. Опция создаст CNAME-запись в сервисе DNS MaCloud.
После создания CDN-ресурса поддомен появится в списке его персональных доменов. Настройки CDN также будут распространяться на данный поддомен.
Для перехода на следующий шаг нажмите Подтвердить.
6. Замените серверы имён.
Если все шаги пройдены успешно, на шаге «Замените серверы имён» будут автоматически созданы CDN-ресурс и DNS-зона для сайта, который вы указали в шаге «Введите название сайта».
Детали CDN-ресурса:
- В качестве персонального домена используется сайт, который вы указали в шаге «Введите название сайта».
- В качестве источника используется IP-адрес, указанный A-записи для корневого домена.
Детали DNS-зоны:
- В DNS-зоне создаются все DNS-записи, которые были добавлены на шаге «Добавление DNS-записей».
Обратите внимание. Если вы ускоряете сайт, домен которого совпадает с уже имеющейся DNS-зоной в сервисе DNS, для настроек будет использована эта DNS-зона. Дублирование зоны не происходит.
Для завершения настройки ускорения сайта, войдите в учётную запись вашего регистратора домена и замените текущие серверы имён на серверы имён MaCloud. Они будут указаны в подсказке.
Серверы имён могут измениться после публикации статьи. Актуальные серверы указаны в разделе DNS в личном кабинете. Помните: для применения изменений регистратору доменов может потребоваться до 24 часов.
Нажмите Подтвердить.
7. (опционально) Настройте CDN-ресурс, активировав необходимые опции. Вы можете внести эти настройки позже. Нажмите Подтвердить.
CDN-ресурс создастся автоматически. Вы увидите страницу «Настройки ресурса», в верхней части которой будет отображаться имя связанной DNS-зоны. Если зона нам не делегирована, отображается предупреждение:
Создать и интегрировать CDN-ресурс для статических файлов
Создать и интегрировать CDN-ресурс для статических файлов
В одном аккаунте можно создать 30 CDN-ресурсов.
1. В разделе CDN нажмите Создать CDN-ресурс.
2. На открывшейся странице выберите «Ускорить и защитить только статические файлы» и нажмите Подтвердить.
3. Задайте начальную конфигурацию CDN-ресурса.
(необязательно) Добавьте Описание. Можете оставить внутренний комментарий о CDN-ресурсе. Комментарий не влияет на настройки, он просто отображается в разделе CDN-ресурсы напротив CNAME (персонального домена) ресурса.
4. Если у вас уже есть группы источников, выберите нужную из списка в разделе Источник. Если групп нет, укажите домен или IP-адрес сайта, где размещены статические файлы, — оттуда CDN будет забирать контент.
Выберите один из протоколов взаимодействия с источником: HTTP (80 порт), HTTPS (443 порт) или HTTP и HTTPS. По умолчанию CDN подключается к источнику через порты 80 и 443. Если хотите использовать другой порт, укажите его в строке источника через двоеточие (mydomain.com:8080).
5. Настройте Персональный домен. Выберите, какой домен использовать для раздачи контента через CDN: домен со своим значением или общий домен.
- Свое значение. Укажите домен вида cdn.[домен вашего сайта] для доставки статических файлов через CDN. Например, если ваш сайт — yourdomain.com, введите cdn.yourdomain.com. Динамический контент пользователи будут получать с yourdomain.com, а статический — с cdn.yourdomain.com.
Можно указать сразу несколько доменов для раздачи контента, для этого нажмите на значок +. Позднее на шаге №8 вы сможете настроить свой сайт таким образом, чтобы разные типы статических файлов доставлялись с разных доменов. Обратите внимание: после создания CDN-ресурса домен вида cdn.yourdomain.com нельзя будет изменить.
- Общий домен — опция, которая позволяет создавать персональные домены для CDN-ресурсов в нашей доменной зоне, с нашим SSL-сертификатом.
Мы обеспечиваем полное обслуживание общего домена. Вам не нужно беспокоиться за продление SSL-сертификата и за создание CNAME-записей, так как настройка DNS происходит на нашей платформе.
Если опция ещё не подключена, обратитесь к вашему менеджеру или в техническую поддержку по почте и запросите её активацию.
Чтобы настроить Общий домен:
1) Нажмите на кнопку Свое значение — появится список общих доменов. Выберите домен и добавьте желаемый поддомен 3 уровня в поле ввода значения.
Можно указать сразу несколько доменов для раздачи контента, для этого нажмите на значок +.
{width="602" height="219"}
2) Так как на поддомен общего домена распространяется Wildcard SSL-сертификат, для ресурса не нужно выписывать SSL-сертификат. Но если вы используете и собственный, и общий домены, к ресурсу необходимо добавить Let’s Encrypt сертификат или собственный SSL-сертификат. Следуйте инструкции «Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS».
Обратите внимание на ограничения опции Общий домен:
- Невозможно создать домен ниже 3 уровня в общей зоне из-за ограничений Wildcard-сертификата. Такой домен может быть создан только в персональной зоне.
- Нельзя использовать несколько общих доменов на одном CDN-ресурсе. Например, если вам доступны общие домены example.com и domain.ru, вы можете создавать поддомены только для одного из этих доменов.
- Наш Wildcard SSL-сертификат распространяется только на поддомены на 1 уровень ниже общего домена.\ Например, если вам доступен общий домен 2 уровня example.com, наш сертификат будет распространяться только на поддомены 3 уровня (например, cdn.example.com). На поддоменах 4 уровня и ниже (*.cdn.example.com) сертификат действовать не будет. Если вы хотите использовать поддомен более низких уровней, выпишите Let’s Encrypt сертификат или добавьте собственный SSL-сертификат. Следуйте инструкции «Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS».
6. Если нужно, чтобы статические файлы были доступны по протоколу HTTPS, включите Поддержку HTTPS в разделе SSL. Выберите одну из двух опций: Выписать бесплатный сертификат Let’s Encrypt или Добавить или выбрать собственный SSL-сертификат. При выборе первой — SSL-сертификат для домена CDN-ресурса (cdn.yourdomain.com) выпишется автоматически после шага №7 этой инструкции. При выборе второй — вы сможете добавить свой сертификат, сделать это можно по инструкции «Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS».
Нажмите Подтвердить.
7. Добавьте CNAME-запись для домена вида cdn.yourdomain.com, который вы указали в шаге №5. Сделать это нужно в личном кабинете вашего DNS-провайдера. В качестве значения CNAME-записи укажите поддомен, указанный в интерфейсе нашего личного кабинета. Если вы добавили дополнительные домены в шаге №5, для них тоже создайте CNAME-запись с тем же значением.
Благодаря CNAME-записи пользователь будет получать статический контент с наших CDN-серверов, но от имени вашего домена вида cdn.yourdomain.com.
Для каждого аккаунта присваивается один уникальный домен. Его нужно указывать в CNAME-записях для всех CDN-ресурсов, созданных в вашем аккаунте.
Нажмите Подтвердить.
8. В путях статических файлов замените домен источника на персональный домен CDN-ресурса. Например, если раньше путь к файлам был yourdomain.com/images/image.jpg, укажите новый путь cdn.yourdomain.com/images/image.jpg. В результате пользователи будут обращаться за статическими файлами к кешу наших CDN-серверов, и только если там не будет нужного файла, запрос уйдёт на ваш сервер.
- Если ваш сайт создан на CMS (WordPress, Joomla, Drupal или другой), можно заменить домен в пути файлов с помощью специальных плагинов. Подходящие плагины для замены URL можно найти в интернете.
- Если ваш сайт создан не на CMS, замените домен в URL статических файлов вручную.
Нажмите Подтвердить.
9. По желанию вы можете подключить дополнительные опции для CDN-ресурса. Этот шаг можно пропустить; позже вы всегда сможете вернуться к дополнительным настройкам.
Нажмите Подтвердить, чтобы завершить создание и настройку CDN-ресурса.
Ресурс будет создан автоматически. Откроется страница с его расширенными настройками. Если в верхнем правом углу нет надписи «Осталось … шагов», всё хорошо и ресурс работает.
Если вы видите надпись «Осталось ... шагов», значит что-то пошло не так в процессе создания или интеграции CDN-ресурса.
Чтобы узнать, где именно произошла ошибка, кликните по фразе Инструкция по настройке сверху. Откроется шторка, в которой можно проверить статус каждого шага создания CDN-ресурса.
Если шаг настроен без ошибок, это будет сказано в интерфейсе.
Если ошибка есть, появится соответствующее оповещение.
В случае ошибки вернитесь к инструкции выше и выполните нужный шаг настройки ещё раз. Если потребуется помощь, напишите в техподдержку в чате или на почту — мы вам поможем.
Поддержка HTTP/2. Настроить HTTP/2 на сервере-источнике
Веб-сервер Nginx
Требования:
Версия: 1.9.5 и выше (если у вас установлена более ранняя версия Nginx, обновите его).
Настройка:
Откройте конфигурационный файл /etc/nginx/nginx.conf и найдите в секции server следующую строку:
listen 443 ssl;
и замените её на:
listen 443 ssl http2;
Сохраните внесенные изменения и перезагрузите Nginx следующей командой:
sudo service nginx reload
Веб-сервер Apache
Требования:
Версия: 2.4.17 и выше (если у вас установлена более ранняя версия Apache, выполните обновление).
Настройка:
Подключите модуль mod_http2 (может также называться mod_h2_module).
После этого добавьте в конфигурационный файл следующие строки:
Для доступа по https:
# for a https server
Protocols h2 http/1.1
Для доступа по http:
# for a http server
Protocols h2c http/1.1
Перезапустите Apache.
Преимущества протокола HTTP/2
При использовании протокола HTTP/2 нет необходимости создавать несколько CNAME-записей: при загрузке контента создается одно TCP-соединение и его в рамках происходит загрузка. При этом не будет возникать задержек из-за количества одновременных соединений.
Разделы главного меню
Группы источников. Добавить источник контента
1. Добавьте новую группу источников. Сделать это можно двумя способами: в настройках CDN-ресурса либо в разделе Группы источников.
Вариант 1: откройте настройки нужного CDN-ресурса, найдите опцию Протокол взаимодействия с источником и нажмите Добавить группу.
Появится новая группа источников. Она не привяжется к CDN-ресурсу автоматически. Чтобы привязать новую группу, обновите страницу браузера, нажмите на символ ᐯ и выберите созданную группу в выпадающем списке. Затем нажмите Сохранить изменения.
Вариант 2: откройте раздел Группы источников и нажмите Добавить группу источников. Созданная группа источников появится в общем списке групп источников. Она не привяжется к CDN-ресурсу автоматически — сделайте это вручную.
Какой бы вариант вы ни выбрали, появится окно для добавления и настройки группы. Остальные шаги выполняйте в нём.
3. Впишите название группы источников. Оно отобразится в общем списке групп источников и в настройках CDN-ресурса.
4. В поле «Источник контента» укажите IP-адрес источника или его доменное имя без http:// и https://. С этого источника CDN будет забирать контент.
Доменное имя вашего источника может иметь несколько IP-адресов. CDN определит IP-адреса источника как отдельные источники и будет распределять по ним запросы по алгоритму Round-robin, то есть первый запрос уйдет на первый источник, второй запрос — на второй и далее.
5. Если ваш источник отвечает по порту, отличному от 80 или 443, впишите порт в поле «Источник контента» через двоеточие (напр. example.com:8080).
6. Если хотите добавить дополнительные источники контента, нажмите Добавить источник. Если решили оставить в группе только один источник, пропустите этот шаг.
Когда в группе несколько источников, вы можете настроить балансировку между ними. Для этого вы выберите:
- Какие источники включить, а какие выключить.
- Какие источники сделать активными, а какие резервными.
- Активировать ли опцию Использовать следующий источник из списка.
Включить/выключить источник. Рядом с каждым из источников по умолчанию стоит ползунок в положении «On» (синий). Такое положение ползунка означает, что CDN может забирать контент с этого источника: он добавлен в балансировку.
Если хотите выключить источник контента в группе, переведите ползунок в положение «Off» (серый). Вы выключите источник только в текущей группе — он будет продолжать работать в других группах. CDN-запросы перестанут поступать на выключенный источник через 15 минут.
Последний активный источник выключить нельзя.
Активный/резервный источник. Всем новым источникам автоматически присваивается статус «Активный». С таких источников CDN забирает контент, балансировка между ними происходит по алгоритму Round-robin. Вы можете превратить активный источник в резервный, выбрав опцию Использовать источник в качестве резервного. Резервные источники по умолчанию выведены из балансировки. CDN запрашивает с них контент, только если активный источник выдаёт код ответа 5хх.
Использовать следующий источник из списка. Эта опция работает, только если на каждом источнике содержится одинаковый контент. При включённой опции CDN будет обращаться к следующим источникам по списку, если предыдущий недоступен — отвечает любым кодом ответа из серии 4хх или 5хх, кроме 400. Код 400 является исключением: получив 400, CDN не будет перенаправлять запросы на другой источник. Если все источники недоступны, CDN отдаст ответ последнего источника в списке.
На первый взгляд, взаимодействие активных/резервных источников и опции Использовать следующий источник из списка можем показаться сложным. Чтобы было проще понять его, покажем на примерах, как это работает.
1) Опция Использовать следующий источник из списка неактивна, все источники активные.
Если активный источник ответит ошибкой, CDN отдаст её конечному пользователю.
2) Опция Использовать следующий источник из списка активна. Один источник активный, остальные — резервные.
Если активный источник ответит 4хх и 5хх кодом ответа, CDN начнёт запрашивать контент с остальных источников, двигаясь вниз по списку.
3) Опция Использовать следующий источник из списка активна, все источники активные.
Если первый активный источник ответил кодом ответа 404, 500, 502, 503 или 504, CDN начнёт запрашивать контент с остальных источников, двигаясь вниз по списку.
4) Опция Использовать следующий источник из списка неактивна. Один источник активный, остальные — резервные.
Если активный источник не ответит в течение 5 секунд или ответит 5хх кодом ответа, CDN запросит контент с резервного источника. Если активный источник ответит 4xx кодом ответа, CDN не будет обращаться к резервному источнику и отдаст пользователю ошибку.
7. Нажмите Добавить группу, чтобы сохранить настройки.
Проверить работу источника
Вы можете проверить работу добавленных источников на странице CDN-ресурсы: напротив каждого источника отображён его статус.
🟢 — источник доступен, время ответа составило менее 1 секунды.
🟡 — источник доступен, но получение данных затруднено, время ответа составило от 1 до 5 секунд.
🔴 — источник может быть недоступен, время ответа составило более 5 секунд. Пожалуйста, проверьте настройки вашего источника и CDN-ресурса.
⚪ — нет данных об источнике, так как к нему не поступали запросы в течение 15 минут. CDN-серверы могут не обращаться к источнику в 2 случаях:
1. Кешированный трафик вашего ресурса близок к 100%.
2. На ресурс не поступают пользовательские запросы.
Если сменить группу источников, заголовок Host изменится?
Нет. Если CDN-ресурс переключить с одной группы источников на другую, заголовок Host не изменится автоматически. Его нужно будет изменить вручную.
Очистка. Очистить кеш CDN выборочно или полностью
Об очистке кеша
Почему может потребоваться сбросить кеш на наших серверах CDN:
- Вы обновили контент на источнике (весь или частично).
- Данные в CDN отображаются некорректно.
Существуют два способа сбросить кеш на сети CDN:
- С помощью API
- В личном кабинете в разделе Очистка
Как очистить кеш из личного кабинета
1. Перейдите на вкладку CDN и выберите раздел Очистка.
2. В верхней строке на открывшейся странице выбрите ресурс, кеш которого хотите очистить.
3. Выберите вариант очистки:
- Полная очистка кеша. Такая очистка удалит все файлы из кеша CDN-ресурса: кеш CDN-серверов будет пустым. Подробнее о способе очистки в инструкции ниже.
- Очистка по шаблону. Такая очистка удалит все файлы, соответствующие введённому шаблону. Подробнее о способе очистки в инструкции ниже.
4. Нажмите Очистить.
Ограничения на очистку:
- Не более 1 запроса в минуту
- Не более 10 шаблонов путей в запросе
Запрос на очистку будет формироваться одну минуту. После начнётся процедура очистки файлов. Время очистки зависит от количества файлов и обычно не превышает 15 минут.
Полная очистка кеша
При полной очистке кеша серверы CDN будут обращаться за контентом на ваш источник и создадут серьёзную нагрузку на сервер, из-за чего могут возникнуть трудности в работе вашего сервиса. Если у вас большой объём контента, рекомендуем очищать кеш через API отдельными файлами.
Очистка по шаблону
В строке ввода укажите путь до нужного файла или маску пути без доменного имени.
Для очистки по маске используйте оператор *, заменяющий любое количество символов (вы можете использовать несколько операторов * в одном запросе). Путь должен начинаться с / или *. В каждой строке можно указать только один путь или маску пути.
Если вы не укажете параметры запроса (параметр после знака вопроса — .jpg?VERSION), мы удалим из кеша файлы, соответствующие маске пути, с любыми параметрами запроса.
Примеры очистки по шаблону:
Тип очистки | По какому пути очистить кеш файлов | Что ввести в поле «Очистка по шаблону» |
1\. Очистить кеш отдельного файла Введите путь до файла без доменного имени. В результате будут удалены все файлы по адресу cdn.site/static/image.jpg, в том числе и файлы имеющие параметры запроса .jpg?VERSION. Если вы используете параметры запроса: введите пусть с параметрами запроса: /static/image.jpg?VERSION. | _cdn.site/static/image.jpg_ | _/static/image.jpg_ |
2\. Очистить кеш для группы файлов в одной папке Введите маску пути без доменного имени и добавьте оператор \*. | _cdn.site/static_ | _/statiс/\*_ |
3\. Очистить кеш группы файлов c одинаковым расширением Введите оператор \* и расширение файлов. В результате команды будут удалены все файлы с расширением JPG, в том числе и файлы имеющие параметры запроса .jpg?VERSION. | _cdn.site/\*.jpg_ | _\*.jpg_ |
4\. Очистить кеш группы файлов в одной папке Введите маску пути без доменного имени и оператор \* дважды. | _cdn.site/\*/static/\*_ | _\*/static/\*_ |
5\. Очистить кеш группы файлов c одинаковым расширением в одной папке Введите маску пути без доменного имени и оператор \*. | _cdn.site/\*/static/\*.jpg_ | \*/static/\*.jpg |
Отчёты. Посмотреть отчёты по работе CDN-ресурса. Узнать, как формируется статистика
Чтобы посмотреть отчёты по работе CDN-ресурсов, перейдите в сервис CDN → Отчёты.
Статистика отображается в часовом поясе UTC.
В разделе Отчёты доступна статистика по:
- Объёму трафика
- Ширине полосы
- Кодам ответа
- Проценту кеширования
- Количеству запросов и запросов WAF
- Трафику с серверов в мировых регионах и континентах
- Трафику с серверов в регионах России
- Трафику из стран
- Времени выполнения запроса
- Времени ответа источника
- Количеству оптимизированных изображений (опция Image Stack)
Расширенная статистика по количеству запросов, трафика, уникальных пользователей, сгруппированная по:
- Странам
- Директориям
- Браузерам
- Устройствам
- Операционным системам
Если у вас подключена опция HTTP/3, в графиках Расширенной статистики вы сможете проверить объём HTTP/3-трафика и количество HTTP/3-запросов вашего ресурса.
Обратите внимание. Расширенная статистика — платная опция, для подключения напишите нам на почту, в чат или свяжитесь с вашим аккаунт-менеджером.
Статистика
Базовая статистика по объёму трафика, ширине полосы, кодам ответа, проценту кеширования, количеству запросов, трафику с серверов в различных регионах, трафику из топ-5 стран и оптимизации изображений включена в стоимость всех тарифов.
Перейдите в сервис CDN, на вкладку→ Отчёты → Статистика, чтобы посмотреть базовые отчёты по работе CDN-ресурсов.
На вкладке Статистика можно:
- Выбрать отображение статистики по одному, нескольким или всем CDN-ресурсам и выбрать необходимый отчёт:
Обратите внимание. На вкладке Сводные данные отображается информация по объёму трафика и полосе за последние 3 месяца. На вкладке Трафик по странам отображаются топ-5 стран с наибольшим трафиком.
- Установить временной интервал.
- Установить период автообновления графика отчёта.
Расширенная статистика
Расширенная статистика — это набор платных отчётов по количеству запросов, трафика, уникальных пользователей, сгруппированных по:
- Странам
- Директориям
- Браузерам
- Устройствам
- Операционным системам
Вы можете подключить как все виды отчётов, так и только ту часть, которая вам необходима, например, «Директории». Для этого напишите нам на почту, в чат или свяжитесь с вашим аккаунт-менеджером.
Обратите внимание: после подключения отчётов потребуется около суток для сбора статистики и корректного отображения данных.
До подключения отчётов расширенной статистики на вкладке Расширенная статистика отображаются примеры отчётов со случайными данными.
Если у вас подключена опция HTTP/3, в графиках Расширенной статистики вы сможете проверить объём HTTP/3-трафика и количество HTTP/3-запросов вашего ресурса.
Перейдите в сервис CDN, на вкладку→ Отчёты → Расширенная статистика, чтобы посмотреть дополнительные отчёты по работе CDN-ресурсов.
Фильтры
Для удобного анализа информации воспользуйтесь фильтрами.
1. Укажите ресурс, по которому нужно отобразить статистику и выберите тип статистики: статистика по запросам, трафику или уникальным пользователям.
Важно. Уникальные пользователи определяются по совокупности параметров: IP + user-agent.
2. Определите период, за который необходима статистика, а также часовой пояс её отображения: UTC или ваш локальный.
3. В фильтрах по «Стране», «Директориям», «Браузерам», «Устройствам» и «ОС» укажите параметры, которые нужно отобразить на графиках отчётов.
Эти параметры влияют на отражение данных во всех видах отчётов.
Например, если в фильтре «Устройство» вы выбрали «PC», в остальных отчётах отобразятся данные с учётом вашего выбора, т. е. страны с трафиком/уникальными пользователями/запросами с PC или трафик/уникальные пользователи/запросы браузеров, запущенных с PC.
Важно. Фильтры по «Стране», «Директориям», «Браузерам», «Устройствам» и «ОС» становятся доступными только при подключении соответствующего вида отчёта. В демо-режиме фильтры недоступны.
Виды отчётов
Отчёты показывают количество трафика, запросов или уникальных пользователей в зависимости от выбранных параметров. Данные рассчитываются на основе запросов конечных пользователей.
География
В отчёте показана информация о странах, пользователи которых совершали запросы к вашим ресурсам. На карте отражаются данные по всем странам мира.
В таблице ниже размещена информация, полученная на основе параметров, указанных в фильтрах. Здесь вы можете выбирать страны, которые будут отображаться на графике.
Для быстрой навигации по странам воспользуйтесь поиском.
Директории
Отчёт показывает информацию о директориях, которые запрашивались пользователями.
В таблице ниже размещена информация, полученная на основе параметров, указанных в фильтрах. Здесь вы можете выбирать директории, которые будут отображаться на графике.
Для быстрой навигации воспользуйтесь поиском.
Браузеры
В отчёте показана информация о браузерах, пользователи которых совершали запросы к вашим ресурсам.
В таблице ниже размещена информация, полученная на основе параметров, указанных в фильтрах. Здесь вы можете выбирать браузеры, которые будут отображаться на графике.
Для быстрой навигации воспользуйтесь поиском.
Устройства
В отчёте показана информация об устройствах, пользователи которых совершали запросы к вашим ресурсам.
В таблице ниже размещена информация, полученная на основе параметров, указанных в фильтрах. Здесь вы можете выбирать устройства, которые будут отображаться на графике.
Для быстрой навигации воспользуйтесь поиском.
ОС
В отчёте показана информация об операционных системах, пользователи которых совершали запросы к вашим ресурсам.
В таблице ниже размещена информация, полученная на основе параметров, указанных в фильтрах. Здесь вы можете выбирать операционные системы, которые будут отображаться на графике.
Для быстрой навигации воспользуйтесь поиском.
Как формируется статистика
Статистика используется как для формирования счетов, так и для отображения данных по CDN-ресурсам в личном кабинете.
Для формирования счетов нужна точность, для отчётов в личном кабинете — скорость и актуальность в определенный период времени, поэтому у нас есть два метода расчёта статистики:
- Для биллинговой статистики и выставлении счёта мы используем nginx access logs — логи по ресурсам, которые мы собираем, обрабатываем и храним. \ Логов много, они содержат большой объём данных, и их обработка требует времени и ресурсов, поэтому мы не используем их как статистику в реальном времени.
- Для построения отчётов в реальном времени мы используем nginx virtual host traffic status module — специальный запрос, предоставляющий информацию о текущем состоянии ресурсов.\ Для отображения отчётов в реальном времени данные агрегируются и кешируются, что влияет на конечное значение, поэтому они не настолько точные как биллинговые данные, которые не проходят дополнительную обработку.
Общие опции CDN-ресурса
Персональный домен. Задать доменное имя для доставки контента через CDN
Выберите, какой домен использовать для раздачи контента через CDN: домен со своим значением или общий домен MaCloud.
Свое значение
1. Во время создания CDN-ресурса в разделе Персональный домен укажите свой домен вида cdn.example.com. Например, если ваш сайт — yourdomain.com, введите cdn.yourdomain.com. Вместо cdn вы можете указать любой другой поддомен для вашего основного домена.
Важно! Персональный домен должен отличаться от источника данных.
2. Нажмите Сохранить изменения.
Настроить CNAME-записи в DNS
После создания ресурса внесите изменения в настройки DNS домена.
1. На сайте регистратора домена перейдите в настройки ресурсных записей.
2. Создайте CNAME-запись.
3. На странице настроек CDN-ресурса нажмите на блок Инструкция по настройке.
4. В открывшейся шторке вы найдёте поддомен, на который нужно направить CNAME-запись. Значение поддомена индивидуально и едино для всех ваших ресурсов.
Важно! После создания ресурса нельзя отредактировать первый указанный домен.
Дополнительные персональные домены
1. Добавьте дополнительные домены, которые будут использованы для раздачи контента. Для этого нажмите на + справа от поля ввода значения.
Дополнительные домены можно редактировать и удалять.
Важно! После создания дополнительных доменов необходимо добавить соответствующую CNAME-запись в настройки DNS домена.
После того как вы убедились, что CNAME и дополнительные CNAME заданы верно, используйте их при интеграции сайта с CDN.
2. Нажмите Сохранить изменения.
Общий домен
Общий домен — опция, которая позволяет создавать персональные домены для CDN-ресурсов в нашей доменной зоне, с нашим SSL-сертификатом.
Мы обеспечиваем полное обслуживание общего домена. Вам не нужно беспокоиться за продление SSL-сертификата и за создание CNAME-записей, так как настройка DNS происходит на нашей платформе.
Если опция ещё не подключена, обратитесь к вашему менеджеру или в техническую поддержку по почте и запросите её активацию.
Чтобы настроить Общий домен:
1. Во время создания или настройки CDN-ресурса нажмите на кнопку Свое значение — появится список общих доменов. Выберите домен и добавьте желаемый поддомен 3 уровня в поле ввода значения.
Можно указать сразу несколько доменов, для этого нажмите на значок +.
2. Так как на поддомен общего домена распространяется Wildcard SSL-сертификат, для ресурса не нужно выписывать SSL-сертификат. Но если вы используете и собственный, и общий домены, к ресурсу необходимо добавить Let’s Encrypt сертификат или собственный SSL-сертификат. Следуйте инструкции «Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS».
3. Нажмите Сохранить изменения.
Обратите внимание на ограничения опции Общий домен:
- Невозможно создать домен ниже 3 уровня в общей зоне из-за ограничений Wildcard-сертификата. Такой домен может быть создан только в персональной зоне.
- Нельзя использовать несколько общих доменов на одном CDN-ресурсе.\ Например, если вам доступны общие домены example.com и domain.ru, вы можете создавать поддомены только для одного из этих доменов.
- Наш Wildcard SSL-сертификат распространяется только на поддомены на 1 уровень ниже общего домена.\ Например, если вам доступен общий домен 2 уровня example.com, наш сертификат будет распространяться только на поддомены 3 уровня (например, cdn.example.com). На поддоменах 4 уровня и ниже (*.cdn.example.com) сертификат действовать не будет. Если вы хотите использовать поддомен более низких уровней, выпишите Let’s Encrypt сертификат или добавьте собственный SSL-сертификат. Следуйте инструкции «Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS».
Шилдинг источника. Активировать и настроить шилдинг источника
Что такое шилдинг
Шилдирование источника (шилдинг) — платная опция, которая защищает ваш сервер-источник от высокой нагрузки, вызванной запросами с большого количества CDN-серверов.
Благодаря этому сервису все запросы к источнику контента аккумулируются на специальном сервере. Так, напрямую с источником взаимодействует не вся сеть CDN, а только один промежуточный шилдинг сервер или прекеш-сервер. Благодаря этому снижается нагрузка, и увеличивается производительность вашего сервера-источника.
Шилдинг работает как обычный CDN-сервер, но встаёт между вашим сервером-источником и всеми остальными CDN-серверами. Он получает запросы пользователей, кеширует контент и опрашивает сервер-источник, только если файла нет в кеше шилдинга.
Как подключить шилдинг
1. Перейдите в секцию Шилдинг источника в Настройках ресурса.
2. Включите переключатель Активировать шилдинг источника.
3. В выпадающем списке выберите локацию дата-центра, в котором будет находиться шилдинг. В большинстве случаев нужно выбрать наиболее близкий к источнику дата-центр.
4. Нажмите Сохранить изменения.
Опция активируется в течение 15 минут. Вы увидите уведомление:
SSL-сертификат. Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS
SSL-сертификат — это уникальная цифровая подпись вашего сайта, необходимая для организации защищенного соединения между клиентом и сервером, что особенно важно при передаче конфиденциальной информации и проведении финансовых операций.
Используйте навигацию справа для быстрого поиска нужного раздела.
Вы можете добавить к ресурсу личный SSL-сертификат или выпустить бесплатный SSL-сертификат Let's Encrypt.
Личный SSL-сертификат
Добавить личный сертификат можно двумя способами: при создании ресурса и в разделе SSL-сертификаты.
Добавить личный SSL-сертификат при создании ресурса
Для того чтобы добавить и привязать личный сертификат при создании ресурса:
1. Активируйте функцию Поддержка HTTPS, выберите «Добавить или выбрать собственный SSL-сертификат».
2. Нажмите кнопку Добавить SSL-сертификат.
3. В открывшемся окне укажите имя сертификата, сертификат в формате PEM и приватный ключ. Или нажмите на кнопку Вставить из файла, чтобы добавить сертификат из файла на вашем устройстве.
Как правильно оформить сертификат, рассказываем ниже.
4. Нажмите Добавить SSL-сертификат.
Сертификат будет привязан к ресурсу, а также добавлен в список личных сертификатов в разделе SSL-сертификаты сервиса CDN.
Добавить личный SSL-сертификат в разделе SSL-сертификаты
Для того чтобы добавить сертификат в личный кабинет без привязки к ресурсу:
1. Перейдите в раздел SSL-сертификаты. Нажмите Добавить SSL-сертификат.
2. Введите SSL-сертификат в формате PEM и приватный ключ, а также задайте имя сертификата. Или нажмите на кнопку Вставить из файла, чтобы добавить сертификат из файла на вашем устройстве.
Как правильно оформить сертификат, рассказываем ниже.
3. Нажмите Создать SSL-сертификат.
После сохранения настроек сертификат отобразится в списке SSL-сертификатов. В разделе доступна информация о сертификате: ID, имя, срок действия, CDN-ресурсы, которые используют сертификат, тип их ускорения.
Удалить личный SSL-сертификат
Чтобы удалить сертификат, перейдите в раздел SSL-сертификаты, нажмите на знак ··· напротив нужного сертификата и выберите Удаление.
Внимание. Удаление сертификатов, которые используются в CDN-ресурсах, невозможно. Если вы хотите удалить такой сертификат, замените его в настройках CDN-ресурса на другой SSL-сертификат.
Прикрепить личный сертификат к ресурсу
Прикрепить к ресурсу сертификат, добавленный в разделе SSL-сертификаты, можно в настройках ресурса при его создании или редактировании.
1. Перейдите в настройки ресурса.
2. В разделе SSL найдите и включите опцию Поддержка HTTPS.
3. Выберите «Добавить или выбрать собственный SSL-сертификат».
4. Выберите нужный сертификат в отображающемся селекторе.
5. Сохраните настройки.
Важно. Если для ресурса подключён сертификат Let’s Encrypt, селектор личных сертификатов отображаться не будет. Чтобы получить возможность выбрать личный сертификат, сначала отзовите Let's Encrypt.
Заменить сертификат
Добавленный личный сертификат изменить нельзя, поэтому по истечении срока действия сертификата следуйте шагам:
1. Добавьте новый сертификат в разделе SSL-сертификаты.
2. Перейдите в настройки нужного ресурса.
3. Найдите опцию Поддержка HTTPS. Нажмите на селектор и выберите новый сертификат.
4. Сохраните изменения. Настройки применятся в течение 15 минут.
5. Проверьте, какой сертификат привязан к ресурсу. Для этого откройте CNAME в браузере (например, https://example.ru). Нажмите на знак замка слева от домена → Действительный сертификат.
Сравните данные защищенного соединения с только что установленным сертификатом. Если настройки применились, можно удалить старый сертификат из раздела SSL–сертификаты.
Важно. Не удаляйте заменяемый сертификат из раздела SSL-сертификаты до тех пор, пока контент не будет раздаваться с помощью нового сертификата. Следуйте шагам, описанным выше, иначе замена сертификата произойдет с прерыванием доставки контента.
Особенности ввода данных сертификата и приватного ключа
1. Откройте файл с сертификатом в формате PEM в приложении «Блокнот». Сертификаты такого формата обычно имеют расширения PEM, CRT или CER.
2. Скопируйте и вставьте цепочку сертификатов в следующей последовательности: Личный сертификат → Промежуточный CA → Root CA.
3. Данные в поле Certificate необходимо вставлять, включая теги -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----.
4. Цепочки сертификатов должны быть вставлены слитно.
5. Откройте файл с приватным ключом KEY в приложении «Блокнот».
6. Скопируйте и вставьте ключ, включая теги -----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY-----.
7. Нажмите Создать SSL-сертификат.
Сертификат появится в разделе SSL-сертификаты, а если добавление происходило в момент создания ресурса — сертификат также привяжется к ресурсу.
Let’s Encrypt сертификат
Если у вас нет собственного SSL-сертификата, в личном кабинете есть возможность подключить бесплатный Let’s Encrypt сертификат.
Подключить Let’s Encrypt сертификат
1. Создайте CDN-ресурс и укажите персональный домен.
2. Добавьте CNAME-запись в настройках DNS домена.
3. В настройках ресурса активируйте опцию Поддержка HTTPS, выберите пункт «Выписать бесплатный сертификат Let's Encrypt» и нажмите на кнопку Получить SSL-сертификат.
Выписка сертификата Let's Encrypt начнётся после создания ресурса. Направьте персональный домен на CDN для успешной выписки.\ Получение сертификата может занять до 15 минут. В течение этого времени нельзя:
- Выключать поддержку HTTPS
- Выбирать другой сертификат
- Прерывать выпуск текущего сертификата
Важно:
- Получение сертификата занимает до 30 минут в случае, если вы оформляете его на только что созданный ресурс, так как конфигурация нового ресурса ещё не применена на всех CDN-cерверах. Если конфигурация ресурса уже присутствует на всех CDN-серверах, получение Let's Encrypt сертификата происходит менее чем за пару минут.
- Если во время выпуска сертификата произойдёт ошибка, опция Поддержка HTTPS выключится, а на вашу почту уйдёт уведомление с описанием причины и дальнейших действий. Письма также отправляются всем вашим пользователям с ролями Administrators и Engineers.
- Выпустить сертификат Let's Encrypt можно только на существующий ресурс. Если CNAME ресурса не направлена на нас в настройках DNS домена, или источник недоступен, сертификат не выпишется.
- На один ресурс в один момент времени может быть выдан только один сертификат Let's Encrypt. Если вы захотите добавить или удалить второй персональный домен для ресурса, после сохранения изменений мы перевыпустим сертификат.
- Пока ресурс активен, сертификат продлевается автоматически. Попытка замены сертификата происходит за 30 дней до окончания срока действия предыдущего. Предпринимается одна попытка перевыпуска. В случае, если сертификат выписать не удалось, на вашу почту придёт уведомление.\ \ В случае неудачной попытки перевыпуска, сертификат продолжит работать ещё 30 дней. После чего контент станет недоступным по HTTPS. Чтобы избежать прерывания доставки контента, запросите перевыпуск сертификата самостоятельно. Для этого в личном кабинете сначала отзовите Let's Encrypt сертификат, а затем подключите Let's Encrypt сертификат заново.
Перевыпустить или удалить Let’s Encrypt сертификат
Если по какой-то причине ваш сертификат не может обновиться самостоятельно, вы можете запустить перевыпуск сертификата, нажав на Перевыпустить сертификат Let's Encrypt. Новый сертификат применится к вашему ресурсу в течение 15 минут.
Чтобы удалить сертификат, перейдите в настройки ресурса и нажмите Отозвать сертификат Let's Encrypt.
Важно. Если меняете Let's Encrypt на собственный сертификат через API-запрос, отзывать Let's Encrypt сертификат не нужно.
Ограничения и особенности опции
- Сертификат не выдаётся на wildcard-домен (напр., *.example.com).
- Если на ресурс выписан Let's Encrypt сертификат, селектор выбора личных сертификатов не отображается. Личные сертификаты станут доступны для выбора после удаления Let's Encrypt сертификата.
- Выпущенные Let’s Encrypt сертификаты не отображаются во вкладке SSL-сертификаты.
- Let’s Encrypt сертификат отображается только в настройках ресурса, для которого он выписан.
- Выписка и отзыв Let's Encrypt сертификата не требуют сохранения настроек ресурса.
- Если вы используете DNS Cloudflare, для опции CNAME Flattening необходимо выбирать вариант Flatten CNAME at root. При выборе Flatten all CNAMEs, вместо CNAME будет передаваться А-запись и сертификат не будет выписан.
Уведомления об истечении срока действия SSL-сертификатов
Уведомления об истечении срока действия личных SSL-сертификатов и Let’s Encrypt сертификатов отображаются в личном кабинете и пересылаются на почту пользователям аккаунта с ролями Administrators и Engineers.
Пользователи уведомляются по почте:
- За 14 дней до истечения сертификата
- За 7 дней до истечения сертификата
- За 1 день до истечения сертификата
Внимание. Обычно Let's Encrypt сертификаты обновляются самостоятельно, но при очередной выписке может произойти ошибка. Если вам пришло уведомление об истечении срока действия Let's Encrypt сертификата, обновите его вручную, чтобы избежать сложностей при доставке контента. Для этого в личном кабинете сначала отзовите Let's Encrypt сертификат, а затем выпустите его снова. Вы также можете обновить сертификат с помощью API.
Если истекает срок действия личного сертификата, раздел SSL-сертификаты будет отмечен восклицательным знаком:
В разделе SSL-сертификаты напротив сертификатов, нуждающихся во внимании, будут стоять специальные символы:
- Восклицательный знак жёлтого цвета, если сертификат истекает через 14 или менее дней.
- Восклицательный знак красного цвета, если сертификат уже истёк.
HTTP/3. Использовать HTTP/3 для доставки контента
Поддержка QUIC и HTTP/3 экспериментальная, поэтому возможно всё.
О протоколах HTTP/3 и QUIC
HTTP/3 — третья версия протокола прикладного уровня HTTP, работающая через QUIC. Протокол только готовится к стандартизации, но многие пользователи уже внедрили его в свои проекты.
QUIC — транспортный протокол, основанный на протоколе UDP. QUIC позволяет шифровать и мультиплексировать потоки данных между устройствами, поэтому обмен контентом происходит быстрее.
Подробнее о протоколах читайте в нашем блоге.
CDN уже поддерживает передачу контента по HTTP/3. Ниже рассказываем, как настроить опцию для CDN-ресурса.
Настройка опции HTTP/3
1. Перейдите в раздел CDN и откройте Настройки желаемого CDN-ресурса.
2. В разделе Общие найдите опцию SSL. Если для ресурса ещё не выписан SSL-сертификат, добавьте его в соответствии с инструкцией.
Важно. CDN не cможет доставить контент по протоколу HTTP/3 без подключённого SSL-сертификата.
3. Перейдите к опции HTTP/3 и нажмите на переключатель Включить HTTP/3, чтобы активировать её.
4. Нажмите Сохранить изменения и подождите 15 минут для применения настроек.
Теперь CDN будет отправлять ваш контент по протоколу HTTP/3, если он поддерживается браузерами конечных пользователей. Воспользуйтесь онлайн-сервисом, чтобы проверить работу HTTP/3 в вашем браузере.
Статистика работы опции HTTP/3
После подключения опции вы сможете проверить объём HTTP/3-трафика и количество HTTP/3-запросов с помощью графиков в Расширенной статистике.
Источник. Указать источник контента и протокол взаимодействия с источником
Протокол взаимодействия с источником
Протокол взаимодействия с источником задает протокол связи между узлом CDN и источником. Параметр имеет три значения: HTTP, HTTPS, HTTP и HTTPS.
Выберите протокол взаимодействия с источником в зависимости от того, по какому протоколу источник отдаёт контент:
HTTP — если ваш источник отдаёт контент только по HTTP (80 порт) или на источнике настроен редирект с HTTPS на HTTP.
HTTPS — если ваш источник отдаёт контент только по HTTPS (443 порт) или на источнике настроен редирект с HTTP на HTTPS.
HTTP и HTTPS — если контент на источнике доступен и по HTTP и по HTTPS. Запрос от узла CDN на источник будет отправлен в зависимости от запроса конечного пользователя. В таком случае:
- Кеширование файлов на CDN-сервере проходит по двум протоколам сразу. То есть в кэше будет две версии файла: одна для HTTP, другая для HTTPS.
- Когда пользователь отправляет запрос по URL https://cdn.example.ru/image.jpg, CDN-серверы загружают контент с источника по протоколу HTTPS (443 порт).
- Когда пользователь отправляет запрос по URL http://cdn.example.ru/image.jpg, CDN-серверы загружают контент с источника по протоколу HTTP (80 порт).
Примеры использования
Чтобы понять логику работы опции Протокол взаимодействия с источником, и что будет, если установить неправильное значение, рассмотрим пример:
Ваш источник отдает контент только по протоколу HTTPS (443 порт), но в личном кабинете в качестве значения опции Протокол взаимодействия с источником ошибочно указан HTTP (80 порт).
В зависимости от того, настроен на источнике редирект или нет, пользователь получит или не получит контент.
a) Если на источнике настроен редирект с HTTP на HTTPS:
1. Пользователь запрашивает у узла CDN контент по URL http://cdn.example.ru/image.jpg.
2. Узел CDN отправляет запрос на источник по URL http://example.ru/image.jpg.
3. Источник с помощью редиректа перенаправляет запрос на https://example.ru/image.jpg.
4. CDN отдает пользователю редирект https://example.ru/image.jpg.
Вывод: Пользователь получит контент, но не из CDN, а напрямую с источника. Чтобы контент отправлялся через CDN, в качестве значения опции «Протокол взаимодействия с источником» укажите HTTPS.
b) Если на источнике не настроен редирект с HTTP на HTTPS:
1. Пользователь запрашивает у узла CDN контент по URL http://cdn.example.ru/image.jpg.
2. Узел CDN отправляет запрос на источник по URL http://example.ru/image.jpg.
3. Источник контент не предоставляет, так как может отправлять его только по https://example.ru/image.jpg.
Вывод: Пользователь не получит контент. Чтобы контент отправлялся и доставлялся через CDN, в качестве значения опции Протокол взаимодействия с источником укажите HTTPS.
Группа источников
В блоке «Запрашивать контент с» вы можете указать источник данных, откуда CDN будет забирать контент.
В качестве источника может выступать IP-адрес или домен вашего сайта.
Если вы хотите изменить текущий источник данных, нажмите Редактировать группу.
Вы также можете добавить группу источников, нажав Добавить группу.
Внимание. При добавлении группы из настроек ресурса группа источников не назначается ресурсу автоматически. Её необходимо вручную выбрать из списка.
Источник. Валидация источника с помощью SSL
Важно. На данный момент опция доступна только через API.
Зачем нужна опция
При настройке Протокола взаимодействия с источником вы задаёте протокол связи между узлом CDN и источником, ориентируясь на то, по какому протоколу источник отдаёт контент. Так, вы можете выбирать, будет соединение зашифровано (HTTPS) или нет (HTTP).
При выборе HTTPS-протокола серверы CDN будут обращаться и получать контент с источника по протоколу HTTPS. Такой процесс передачи информации хоть и является зашифрованным, но не спасает от атак типа «Атака посредника», так как по умолчанию при запросе контента CDN не проверяет, принадлежит ли ответивший сервер клиенту.
Для увеличения уровня безопасности передаваемых данных, воспользуйтесь опцией Валидация источника с помощью SSL.
После включения валидации источника CDN-серверы будут проверять действительность SSL сертификата на сервере-источнике, а также принадлежит ли ответивший сервер клиенту.
Как это работает
1. С помощью API-запроса вы указываете публичную часть цифрового сертификата X.509 в нашей системе в формате PEM, часть сертификата хранится у вас на источнике. Каждому сертификату в системе будет присвоен свой идентификатор, и полная информация о них будет храниться на всех CDN-серверах. Вы сможете в любой момент запросить данные о сертификате или обо всех имеющихся в системе сертификатах, а также внести изменения в название сертификата.
2. При поступившем от пользователя запросе CDN-сервер отправит запрос на доступ к защищенной информации на сервере-источнике.
3. Сервер-источник предоставит свой сертификат X.509 CDN-серверу.
4. CDN-сервер проверит цифровую подпись публичного ключа, имеющегося в системе.
5. Если этот шаг выполнен успешно, CDN-сервер отправит свой сертификат на сервер-источник.
6. Сервер-источник проверит полученный от CDN сертификат тем же способом.
7. Если проверка успешна, сервер-источник предоставит доступ к защищённой информации.
8. CDN-сервер заберёт контент с сервера-источника и закеширует его для передачи пользователю.
SSL-сертификат. Исправить ошибку добавления или выписки сертификата
Не получается добавить личный сертификат к ресурсу
Проверьте, стоит ли пустая строчка в конце цепочки сертификатов. Про строчку часто забывают, из-за этого возникает ошибка. Так выглядит цепочка с пустой строкой в конце:
Полная инструкция по добавлению сертификата: «Добавить SSL-сертификат к ресурсу».
Не получается выписать Let's Encrypt сертификат
1. Проверьте, не перекрывают ли созданные вами правила путь «/.well-known/acme-challenge/\<TOKEN>». Это путь выписки сертификата, если он перекрыт правилом (напр., с путём «/.*»), сертификат не получить. Отключите правило и попробуйте выписать сертификат снова.
Проверить, перекрывает ли правило путь выписки сертификата, можно с помощью этого сервиса.
2. Проверьте, добавили ли CNAME-запись с нашим доменом. В DNS-записях вашего домена должна быть CNAME-запись, направленная на вашу персональную зону. Без неё сертификат не выписать. Значение для записи вы найдёте на втором шаге инструкций по настройке ресурса:
Если эти советы не подошли, напишите в техническую поддержку по почте - мы вам поможем.
Автоматическая и ручная остановка CDN-ресурса
Автоматическая остановка
В случае если созданный ресурс активен, но на нём нет трафика на протяжении 90 дней, он будет автоматически остановлен системой.
1. За 7 дней до остановки ресурсов все пользователи аккаунта с ролями Administrator и Engineer получат письмо со списком ресурсов, которые будут остановлены.
- В настройках ресурса будет отображаться время до его остановки.
- В списке ресурсов напротив ресурсов, которые подлежат остановке, будет отображён индикатор, напоминающий, что данный ресурс будет остановлен.
Важно! Если после получения первого письма на ресурсе появится трафик:
- Второе письмо об остановке ресурсов не будет отправлено.
- Ресурс не будет остановлен.
2. В момент остановки ресурса все пользователи аккаунта с ролями Administrator и Engineer получат письмо со списком остановленных ресурсов.
Если после ручного включения остановленного ресурса система продолжит фиксировать отсутствие трафика, через 7 дней ресурс будет приостановлен снова.
Если вы не хотите, чтобы CDN-ресурсы без трафика останавливались, обратитесь в техподдержку.
Самостоятельная остановка
При необходимости вы можете остановить работу CDN-ресурса самостоятельно.
1. Для этого перейдите в настройки CDN-ресурса и нажмите на переключатель в опции Доступность контента.
2. Нажмите Сохранить изменения.
Контент будет недоступен конечным пользователям.
Чтобы включить доступность контента, нажмите на переключатель снова и сохраните изменения.
Кеширование. Настроить и проверить
Кеширование. Настроить и проверить параметры кеширования на CDN-серверах
Вы можете задать время хранения контента в кеше CDN-серверов.
После того как время хранения кеша истекает, CDN-серверы обращаются к файлу, находящемуся на источнике, чтобы сравнить HTTP-заголовок Etag.
- Если значения заголовка не совпадают — CDN кеширует новый файл на время, заданное для хранения контента в кеше CDN.
- Если значения заголовка совпадают — CDN продолжит отдавать пользователям имеющийся в кеше файл ещё один период времени, заданный для хранения контента в кеше CDN.
Внимание. Независимо от настроек опции контент удаляется из кеша CDN-серверов через 36 часов, если он не запрашивается конечными пользователями.
Настроить параметры кеширования
Опция Кеширование на CDN задаёт время хранения контента в кеше CDN-серверов. Чтобы настроить опцию:
1. Перейдите в настройки желаемого CDN-ресурса.
2. Включите опцию Кеширование на CDN.
3. Выберите вариант работы опции и настройте её.
Доступны 2 варианта работы:
- «Задать настройки на CDN»,
- «Использовать настройки источника».
Подробнее о каждом варианте рассказываем ниже.
4. Сохраните изменения.
Задать настройки на CDN
При выборе варианта «Задать настройки на CDN», CDN-серверы будут запрашивать контент с источника и кешировать его на время, заданное в опции.
Чтобы настроить опцию:
1. Укажите «Время жизни кеша». Параметр задаёт время хранения кеша для запросов с кодами ответа 200, 206, 301, 302. Коды ответа 4xx и 5xx кешироваться не будут.
Важно. При выборе значения «Не кешировать» CDN не будет кешировать ответы с кодами 200, 206, 301, 302, 4хх и 5хх. Используйте Расширенные настройки кеширования, чтобы переопределить значение параметра «Время жизни кеша».
2. (опционально) Создайте Расширенные правила кеширования. С помощью правил можно задать время хранения кеша для запросов с другими кодами ответа, а также переопределить время кеширования для кодов, попадающих под параметр «Время жизни кеша».
Важно. Значения параметра Расширенные правила кеширования имеют больший приоритет, чем значения параметра «Время жизни кеша».
3. Сохраните изменения.
Пример работы опции:
1. В настройках опции вы выбрали «Задать настройки на CDN» и указали «Время жизни кеша» равное «4 дням».
2. В расширенных правилах добавили 2 правила:
- Код ответа 200 — 1 минута
- Код ответа 404 — 10 минут
В результате настроек запросы будут кешироваться так:
- Запросы с кодом ответа 200 — 1 минуту
- Запросы с кодом ответа 404 — 10 минут
- Запросы с кодом ответа 206, 301, 302 — 4 дня
- 4хх (кроме 404), 5хх — кешироваться не будут
Использовать настройки источника
При выборе варианта «Использовать настройки источника», CDN-серверы, запрашивая контент, будут ориентироваться на настроенный на источнике заголовок Cache-Control, и кешировать контент на время, заданное в его значении.
Если на сервере-источнике отсутствует заголовок Cache-Control, то CDN использует время хранения, заданное в параметре «Время жизни кеша по умолчанию».
Чтобы настроить опцию:
1. Укажите «Время жизни кеша по умолчанию». Значение применяется для ответов с кодами 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, если на источнике не настроены заголовки кеширования. Ответы с остальными кодами кешироваться не будут.
2. Сохраните изменения.
Настройка кеширования на источнике
По умолчанию мы наследуем все заголовки, заданные на источнике. Время хранения кеша на CDN-серверах определяется HTTP-заголовком Cache-Control.
Добавьте заголовок Cache-Control на ваш сервер в файл .htacess или nginx.conf. Заголовок должен содержать директивы public, max-age.
Пример конфигурации Apache:
<ifModule mod_headers.c>
<FilesMatch "\.(gif|ico)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
<FilesMatch "\.(js)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
</ifModule>
Пример конфигурации Nginx:
server {
#...
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
add_header Cache-Control "max-age=88000, public";
}
#... }
Проверка настроек кеширования
Проверьте, какие заголовки кеширования присутствуют при запросе файла, интегрированного с CDN.
1. Проверить, откуда (с вашего сервера или с CDN-сервера) был отправлен контент, можно по значению HTTP-заголовка Cache:
- Cache: HIT — файл отдался из кеша CDN.
- Cache: MISS — файл был запрошен с источника.
2. Проверить, с какого сервера CDN был отправлен контент, можно по значению заголовка X-Node:
- X-Node: [m9-up-e245] — файл отдан с сервера m9-up-e245.
3. Время, когда контент был закеширован на CDN-сервере, можно узнать по значению заголовка X-Cached-Since:
- X-Cached-Since: 2017-06-09T12:51:43+00:00 — время, с которого файл находится в кеше узла CDN.
Для проверки кеширования важно понимать, какие значения заголовков кеширования поддерживаются CDN-серверами, а какие — нет.
Совместимые с CDN параметры HTTP-заголовка Cache-Control:
- Cache-Control: Max-Age — задаёт время жизни файла в кеше в секундах.
- Cache-Control: Public — указывает на то, что кешировать файл сможет не только конечный клиент пользователя (браузер), но и прокси-серверы, CDN-серверы и т.д.
Несовместимые с CDN параметры HTTP-заголовка Cache-Control:
- Cache-Control: Private — директива, противоположная public — указывает на то, что файл не должен кешироваться промежуточными прокси.
- Cache-Control: No-cache — позволяет указать, что клиент должен делать запрос на сервер каждый раз при обращении к файлу.
Проверка с помощью команды cURL в терминале (terminal для MacOS; cmd для WindowsOS)
1. В терминале пропишите: curl -I http://cdn.example.ru/js/intlTelInput/css/intlTelInput.css
Где http://cdn.example.ru/js/intlTelInput/css/intlTelInput.css — ссылка на файл, интегрированный с CDN.
2. Вы получите такой вывод. Обратите внимание на заголовки Cache-Control, Cache, X-Cached-Since, X-Node:
HTTP/1.1 200 OK
Server: nginx/1.13.1
Date: Fri, 09 Jun 2017 12:54:24 GMT
Content-Type: image/jpeg
Content-Length: 124024
Connection: keep-alive
X-Image-Generated: 29
X-Image-Meta: 1024x768
X-Image-Read: 71
Expires: Wed, 06 Dec 2017 12:51:43 GMT
Access-Control-Allow-Origin: *
Last-Modified: Sun, 01 Jan 2017 12:00:00 GMT
Cache-Control: max-age=315360000, public — время, на которое файл будет закеширован на сервере в секундах
Cache: HIT — файл отдался из кеша CDN
X-Cached-Since: 2017-06-09T12:51:43+00:00 — время, с которого файл находится в кеше сервера CDN
X-Node: m9-up-e245 — сервер CDN, с которого был отдан файл
3. Если у вас возникли подозрения, что контент не кешируется, проверьте настройки на источнике, изучите статью «Что делать, если контент не кешируется» или обратитесь в техническую поддержку.
Проверка с помощью инструментов разработчика в браузере
1. Откройте любой интернет-браузер (например, Google Chrome).
2. Откройте ваш сайт.
3. Нажмите кнопку F12 — откроется панель разработчика.
4. Выберите вкладку Сеть (Network).
5. Обновите страницу, нажав клавишу F5. Вы получите список всех файлов, которые были загружены с вашего сайта.
6. Найдите статический файл (например, JPEG, PNG, IMG), интегрированный с CDN, и нажмите на него. Для более удобного поиска можете воспользоваться фильтром в левом углу панели.
7. На вкладке Заголовки (Headers), справа вы увидите заголовки, которые настроены на вашем сервере.
8. Проанализируйте их, используя описание важных заголовков.
Кеширование. Настроить параметры кеширования для браузеров пользователей
Вы можете настроить время кеширования файлов в браузерах конечных пользователей.
1. Для этого перейдите в настройки желаемого CDN-ресурса.
2. Включите опцию Кеширование в браузере.
3. Выберите вариант работы опции и настройте её.
Доступны 2 варианта работы:
- «Использовать настройки источника» настраивает время кеширования в браузере в соответствии с временем, которое вы задали в настройках источника. Если на источнике таких настроек нет, то в браузере контент кешироваться не будет.
- «Задать настройки на CDN» настраивает время кеширования в браузере в соответствии с временем, которое вы укажите в значении параметра Время жизни кеша.
4. При выборе варианта «Задать настройки на CDN» укажите Время жизни кеша. Параметр задаёт время хранения кеша браузера для запросов с кодами ответа 200, 201, 204, 206, 301, 302, 303, 304, 307, 308. Ответы с остальными кодами кешироваться в браузере пользователя не будут.
5. Нажмите Сохранить изменения.
Set-Cookie. Игнорировать Set-Cookie при кешировании на CDN-сервере
По умолчанию файлы с HTTP-заголовком Set-Cookie не кешируются. В результате, каждый новый запрос пользователя проксируется на источник, а не отдаётся из кеша. Это снижает процент кешированного трафика и создаёт нагрузку на источник. Подключите опцию Игнорировать Set-Cookie, чтобы CDN игнорировал заголовок Set-Cookie и кешировал такие файлы.
Чтобы включить опцию:
1. Перейдите в настройки желаемого CDN-ресурса.
2. Включите опцию Игнорировать Set-Cookie.
3. Нажмите Сохранить изменения.
Параметры запроса. Игнорировать параметры запросов при кешировании на CDN
Параметр запроса — это уникальная строка запроса (параметр после знака вопроса) в URL. Например:
http://cdn.example.com/photo.jpeg?id=6&color=blue\ http://cdn.example.com/photo.jpeg?id=1&figure=circle
CDN кеширует один и тот же файл с разными параметрами запросов как уникальные файлы. В результате, каждый новый запрос пользователя проксируется на источник, а не отдаётся из кеша. Это снижает процент кешированного трафика и создаёт нагрузку на источник. Подключите опцию Игнорировать параметры запроса, чтобы такие файлы кешировались как один.
Чтобы включить опцию:
1. Перейдите в настройки желаемого CDN-ресурса.
2. Включите опцию Игнорировать параметры запроса.
3. Выберите вариант работы опции и настройте её.
Доступны 3 варианта работы:
1) Игнорировать все. Файлы с разными параметрами запроса кешируются как объекты с одинаковым ключом, независимо от значения параметров.
Например, следующие файлы будут закешированы как объекты с одним ключом кеширования, т.к. все параметры будут проигнорированы:
http://cdn.example.com/photo.jpeg?id=6&color=blue\ http://cdn.example.com/photo.jpeg?id=1&color=blue
2) Игнорировать все, кроме. Файлы с указанными параметрами запроса кешируются как объекты с разными ключами, файлы с другими параметрами — как объекты с одинаковым ключом. Вводите каждый параметр в отдельную строку поля.
- Например, вы указали параметр id.\ Следующие файлы будут закешированы как объекты с разными ключами, т.к. значения параметра id отличаются, значения параметра color будут проигнорированы.\ http://cdn.example.com/photo.jpeg?id=6&color=blue\ http://cdn.example.com/photo.jpeg?id=1&color=blue
- Вы указали параметр color.\ Следующие файлы будут закешированы как объекты с одинаковыми ключами, т.к. значения параметра color совпадают, а параметр id будет проигнорирован.\ http://cdn.example.com/photo.jpeg?id=6&color=blue\ http://cdn.example.com/photo.jpeg?id=1&color=blue
3) Игнорировать только. Файлы с указанными параметрами запроса кешируются как объекты с одинаковым ключом, файлы с другими параметрами — как объекты с разными ключами.\ Вводите каждый параметр в отдельную строку поля.
- Например, вы указали параметр id.\ Следующие файлы будут закешированы как объекты с одинаковыми ключами, т.к. значения параметра id будут проигнорированы, а значения параметров color совпадают.\ http://cdn.example.com/photo.jpeg?id=6&color=blue\ http://cdn.example.com/photo.jpeg?id=1&color=blue
- Вы указали параметр color.\ Следующие файлы будут закешированы как объекты с разными ключами, т.к. значения параметра color будут проигнорированы, а значения параметров id отличаются.\ http://cdn.example.com/photo.jpeg?id=6&color=blue\ http://cdn.example.com/photo.jpeg?id=1&color=blue
4. Введите необходимые параметры запроса в появившееся поле (если есть).
5. Сохраните изменения.
Всегда онлайн. Доставлять устаревший контент из кеша CDN при недоступности источника
Опция Всегда онлайн позволяет отдавать последний кешированный контент при недоступности сервера-источника при следующих ошибках:
- error (сетевые проблемы)
- timeout
- invalid_header
- updating (обновление кеша)
- http_500
- http_502
- http_503
- http_504
- http_403
- http_404
- http_429
Устаревший контент будет отдаваться с заголовком Cache: Stale. Доступность источника будет проверяться с каждым запросом пользователя. Если работоспособность источника восстановилась, CDN закеширует свежую версию файла. В случае если работоспобность источника не восстановилась, CDN-серверы будут отдавать Stale-контент, пока доступность источника не восстановится.
Внимание. На момент недоступности сайта в кеше CDN может храниться недостаточно контента для отображения страницы целиком, поэтому мы не можем гарантировать, что все файлы будут отданы корректно. При открытии страницы у пользователя могут не загрузится некоторые изображения, таблицы стилей или другой статический контент.
Как настроить опцию
Вы можете включить опцию и выбрать ошибки, при которых CDN будет отдавать устаревший контент.
Для управления опцией:
1. Перейдите в настройки желаемого CDN-ресурса.
2. В разделе Кеширование перейдите к опции Всегда онлайн и активируйте её, передвинув переключатель.
3. В появившемся поле выберите ошибки, при которых CDN будет доставлять устаревший контент из кеша.
4. Нажмите Сохранить изменения.
Редирект с источника. Получать контент с другого источника на CDN
Что такое Редирект с источника
Опция Редирект с источника разрешает CDN следовать редиректу, чтобы получать контент с другого источника. Когда опция выключена, а источник отдаёт 3хх код ответа, CDN кеширует такой ответ и отправляет пользователю. При включении опции CDN автоматически запрашивает контент с другого источника, следуя редиректу, кеширует его и отдаёт пользователю.
Например: на CDN-ресурсе cdn.example.com включена опция Редирект с источника. Источник origin.example.com перенаправляет запрос на файл /file на другой источник — www.origin.example.com — с 302 кодом ответа. Тогда cdn.example.com вернёт файл по URL cdn.example.com/file с 200 кодом ответа.
Важно. После включения или отключения опции кеш CDN не очищается, поэтому пользователи могут получать неактуальный контент. Чтобы избежать этого, очистите кеш CDN после настройки опциии.
Настроить Редирект с источника
Чтобы настроить опцию в личном кабинете:
1. Перейдите в раздел CDN, нажмите на иконку ··· и откройте Настройки желаемого CDN-ресурса.
2. В разделе Кеширование найдите опцию Редирект с источника. Нажмите на переключатель Следовать редиректу с источника, чтобы включить её.
3. Выберите один или несколько кодов редиректа, которые возвращает ваш источник. Если в ответе с источника CDN получит один из указанных кодов, он последует редиректу и запросит файл с другого источника. Если в ответе указан другой код, CDN перешлёт такой ответ пользователю в неизменном виде.
Доступные коды редиректа: 301, 302, 303, 307, 308.
4. (опционально) Включите Использование домена из редиректа в качестве заголовка Host. Так, CDN изменит заголовок Host на значение домена из URL редиректа. Если URL редиректа не содержит домен, CDN отправит запрос с заголовком Host, указанным в опции Изменить заголовок Host.
5. Нажмите Сохранить изменения и подождите 15 минут для применения настроек.
Не забудьте очистить кеш CDN.
Безопасность
Политика доступа по доменам. Защищать контент от публикации на других сайтах
Опция Политика доступа по доменам запрещает размещение ссылок на ваш контент на других сайтах. С ней вы сократите попытки пиратства контента и использования его не по назначению.
По умолчанию опция выключена, а доступ к контенту ресурса разрешён всем доменам.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Политика доступа по доменам, передвинув ползунок.
3. Выберите тип политики доступа:
- Разрешающую — разрешает доступ к контенту всем доменам, кроме указанных в поле.
- Блокирующую — запрещает доступ к контенту всем доменам, кроме указанных в поле.
4. Добавьте домен или маску домена без http:// или https:// в поле опции.
Например:
- www.domain.com — разрешить или запретить доступ для конкретного домена.
- *.domain.com и domain.com — разрешить или запретить доступ для всех поддоменов и самого домена (необходимо добавлять сам домен и дополнительно домен в формате wildcard).
5. (опционально) Если вы добавили в поле хотя бы 1 домен, вы можете включить Запрет доступа к контенту по прямой ссылке без домена, чтобы разрешить или запретить сайтам обращаться к ресурсу напрямую. Параметр добавляет пустой реферер в значение опции.
6. Нажмите Сохранить изменения.
Обратите внимание. В личном кабинете домены добавляются в строку только по одному. Используйте API-запросы, чтобы добавить список доменов. Подробности запроса описаны в блоке options → referer_acl в API-документации.
Secure token. Настроить и использовать
Настройка опции
1. Перейдите в настройки желаемого CDN-ресурса.
2. Включите опцию Secure token.
3. В появившемся поле введите любой набор символов длиной от 6 до 32 символов.
4. Если контент должен быть доступен с любых IP-адресов, оставьте пустым чекбокс «Добавить IP-адрес к токену». Если хотите, чтобы контент был доступен только с одного IP, поставьте в чекбоксе галочку (доверенный IP вы укажете позже, на шаге №6).
5. Сохраните изменения.
6. Эту настройку выполните на сервере-источнике. Добавьте на свой источник скрипт, который генерирует защищённые ссылки на контент. Получившиеся ссылки должны иметь вид:
http://cdn.example.com/photo.jpeg?md5=DMF1ucDxtHCxwYQ&expires=2147483647
Где:
- http://cdn.example.com/photo.jpeg — путь к файлу.
- DMF1ucDxtHCxwYQ — результат хэш-функции MD5(_String), где _String — параметр, полученный слиянием элементов: \<время истечения ссылки>\<путь к файлу>\<доверенный IP> \<ключ, который вы указали на шаге №3>.
- 2147483647 — момент времени, после которого ссылка будет считаться недействительной, в формате UNIX timestamp.
Мы подготовили для вас шаблоны скриптов для PHP, Python и OpenSSL — просто скопируйте один из них из раздела «Скрипты для генерации ссылок». Скрипт начнёт создавать защищённые ссылки на контент.
7. Эту настройку выполните на сервере-источнике. Организуйте свой источник таким образом, чтобы доступ к нужным файлам пользователи получали только по ссылкам с secure token. При этом наша CDN при обращении к серверу-источнику должна получать контент вне зависимости от наличия ключа.
На этом настройка закончена, опция Secure token работает и защищает ваш контент.
Скрипты для генерации ссылок
Генерировать ссылки с secure token на PHP
Скрипт для создания временных ссылок с ограничением доступа по IP. Файлы будут доступны только с доверенного IP, и только пока не истечёт срок жизни ссылки.
<?php
$secret = 'secret_key';
$ip = '1.2.3.4';
$path = '/live/133529_2/chunklist.m3u8';
$expires = time() + 10000;
$link = "$expires$path$ip $secret";
$md5 = md5($link, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
$url = "http://cdn.site.com{$path}?md5={$md5}&expires={$expires}";
echo $url;
echo "\n";
Скрипт для создания временных ссылок без ограничения доступа по IP. Файлы будут доступны с любого IP, но только пока не истечёт срок жизни ссылки.
<?php
$secret = 'secret_key';
$path = '/live/133529_2/chunklist.m3u8';
$expires = time() + 10000;
$link = "$expires$path $secret";
$md5 = md5($link, true);
$md5 = base64_encode($md5);
$md5 = strtr($md5, '+/', '-_');
$md5 = str_replace('=', '', $md5);
$url = "http://cdn.site.com{$path}?md5={$md5}&expires={$expires}";
echo $url;
echo "\n";
Где:
- $secret — секретный ключ,
- $path — путь к файлу,
- $ip — IP-адрес, которому разрешено получить контент,
- $expires — момент времени, после которого ссылка будет считаться недействительной, в формате UNIX timestamp,
- $url — итоговая ссылка на файл.
Генерировать ссылки с secure token на Python
Скрипт для создания временных ссылок с ограничением доступа по IP. Файлы будут доступны только с доверенного IP и только пока не истечёт срок жизни ссылки.
import base64
from hashlib import md
from time import time
ip = '1.2.3.4'
secret = 'secret_key'
stream_address = '133529_2'
path = f'/live/{stream_address}/playlist.m3u8'
expires = int(time()) + 100000
token = base64.encodebytes(md5(f"{expires}{path}{ip}
{secret}".encode()).digest()).decode().replace("\n", "").replace("+", "-").replace("/", "_").replace("=", "")
secured_url = f"https://cdn.site.com{path}?md5={token}&expires={expires}"
print(secured_url)
Скрипт для создания временных ссылок без ограничения доступа по IP. Файлы будут доступны с любого IP, но только пока не истечёт срок жизни ссылки.
import base64
from hashlib import md5
from time import time
secret = 'secret_key'
stream_address = '133529_2'
path = f'/live/{stream_address}/playlist.m3u8'
expires = int(time()) + 100000
token = base64.encodebytes(md5(f"{expires}{path}
{secret}".encode()).digest()).decode().replace("\n", "").replace("+", "-").replace("/", "_").replace("=", "")
secured_url = f"https://cdn.site.com{path}?md5={token}&expires={expires}"
print(secured_url)
Где:
- secret — секретный ключ,
- path — путь к файлу,
- ip — IP-адрес, которому разрешено получить контент,
- expires — момент времени, после которого ссылка будет считаться недействительной, в формате UNIX timestamp,
- secured_url — итоговая ссылка на файл.
Сгенерировать secure token через OpenSSL
Скрипт для создания secure token, который ограничивает время жизни ссылки и открывает доступ к контенту только доверенному IP:
echo -n '2147483647/images/1.jpg1.2.3.4 secret_key' |
openssl md5 -binary | openssl base64 | tr +/ -_ |
tr -d ='2147483647/images/1.jpg1.2.3.4 secret_key' = '{expires}{path}{ip} {secret_key}'
Скрипт для создания secure token, который только ограничивает время жизни ссылки:
echo -n '2147483647/images/1.jpg secret_key' |
openssl md5 -binary | openssl base64 | tr +/ -_ |
tr -d = '2147483647/images/1.jpg secret_key' = '{expires}{path} {secret_key}'
Где:
- 2147483647/images/1.jpg — путь к файлу,
- 1.2.3.4 — доверенный IP,
- secret_key — секретный ключ, который вы ввели на шаге №3 инструкции «Настройка опции».
Скрипты выше только генерируют secure token. Вам нужно самостоятельно создать дополнительный скрипт, который добавляет к ссылкам secure token и время истечения ссылки, а также приводит ссылку к виду:
http://cdn.example.com/photo.jpeg?md5=DMF1ucDxtHCxwYQ&expires=2147483647
Где:
- http://cdn.example.com/photo.jpeg — путь к файлу,
- DMF1ucDxtHCxwYQ — secure token,
- 2147483647 — момент времени, после которого ссылка будет считаться недействительной, в формате UNIX timestamp.
Политика доступа по геолокации. Ограничить доступ к контенту из выбранных стран и их регионов
Политика доступа по геолокации (новое)
Новая опция Политика доступа по геолокации позволяет ограничивать доступ к CDN-контенту по указанному списку стран и их регионов.
По умолчанию опция выключена, а доступ к контенту ресурса разрешён всем странам.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Политика доступа по геолокации, передвинув ползунок.
3. Выберите тип политики доступа:
- Разрешающую — разрешает доступ к контенту из всех стран и их регионов, кроме указанных в поле.
- Блокирующую — запрещает доступ к контенту из всех стран и их регионов, кроме указанных в поле.
4. Чтобы добавить страну, нажмите Добавить страну и введите её название.
5. (опционально) Из выпадающего списка в поле «Регионы» выберите названия регионов, для которых нужно настроить доступ. Чтобы разрешить или ограничить доступ для всей страны, оставьте это поле пустым.
6. Нажмите Сохранить изменения.
Обратите внимание. В личном кабинете страны и регионы добавляются по одному. Используйте API-запросы, чтобы добавить список стран и регионов. Подробности запроса описаны в блоке options → geo_acl в API-документации.
Политика доступа по странам (устаревшее)
Обратите внимание. Опция Политика доступа по странам перестанет работать 22 апреля 2025 года. Мы автоматически перенесём ваши настройки в новую опцию Политика доступа по геолокации.
Старая опция Политика доступа по странам позволяет ограничивать доступ к CDN-контенту по указанному списку стран.
По умолчанию опция выключена, а доступ к контенту ресурса разрешён всем странам.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Политика доступа по странам, передвинув ползунок.
3. Выберите тип политики доступа:
- Разрешающую — разрешает доступ к контенту всем странам, кроме указанных в поле.
- Блокирующую — запрещает доступ к контенту всем странам, кроме указанных в поле.
4. Чтобы добавить страны, кликните по полю «Выберите страну» и введите их названия.
5. Нажмите Сохранить изменения.
Обратите внимание. В личном кабинете страны добавляются в строку только по одной. Используйте API-запросы, чтобы добавить список стран. Подробности запроса описаны в блоке options → country_acl в API-документации.
Редирект с HTTP на HTTPS. Включить и настроить
На CDN-ресурсе можно установить либо редирект с HTTPS на HTTP, либо с HTTP на HTTPS.
Включить редирект трафика с HTTPS на HTTP можно только с помощью API (подробнее в API-документации). Редирект с HTTP на HTTPS включается как через API, так и в настройках личного кабинета.
Чтобы включить опцию Редирект с HTTP на HTTPS в личном кабинете, перейдите в настройки CDN-ресурса:
1. Выпустите бесплатный Let’s Encrypt сертификат или добавьте собственный в опции SSL-сертификат и сохраните изменения. Подробнее об опции можно узнать в статье «Добавить SSL-сертификат к ресурсу для передачи контента по HTTPS».
2. Перейдите в раздел Безопасность, активируйте опцию Редирект с HTTP на HTTPS.
3. Сохраните изменения.
Ошибка “You cannot enable redirect HTTP to HTTPS when HTTPS is disabled. Please enable HTTPS and add SSL certificate first” означает, что вы не добавили сертификат или что выпуск Let’s Encrypt сертификата для вашего аккаунта ещё не завершен. Обычно это занимает около 15 минут.
Secure token. Обзор опции
Что такое Secure token?
Secure token — это опция CDN, которая защищает ваши файлы от нежелательных загрузок. Опция помогает сделать ссылки на контент временными и ограничить доступ к контенту по IP. Если мошенник использует истёкшую ссылку или запрашивает контент не с доверенного IP, то не сможет ничего загрузить.
Зачем нужна опция Secure token?
Опция Secure token помогает защитить контент, чтобы его не украли или не использовали дольше, чем вам хочется. Приведём четыре примера, когда полезна опция Secure token.
1. Приватный контент компании. У вас есть конфиденциальные данные, доступ к которым должен быть только из офиса компании. Вы настраиваете Secure token, чтобы ссылки на контент открывались только c офисных IP.
2. Платный контент. Ваши пользователи покупают временный доступ к контенту — например, доступ на месяц к онлайн-курсу. Вы настраиваете опцию, чтобы ссылка на контент была действительна ровно месяц с момента покупки.
3. Временный доступ к файлам для пользователей. Ваши пользователи хотят делиться временным доступом к своим файлам — например, давать доступ к папке на сутки. Вы настраиваете опцию, чтобы пользователи могли генерировать временные ссылки на файлы.
4. Видеотрансляции. Вы хотите защитить видеоконтент от мошенников, которые крадут прямые ссылки на трансляции и размещают их на сторонних сайтах. Вы настраиваете опцию, и пользователи получают защищённую ссылку с очень коротким сроком жизни — например, 2 секунды. В результате клиенты без проблем смотрят видео, а мошенники не могут украсть контент: пока они копируют ссылку, она уже станет недействительна.
Особенности Secure token
Вы можете ограничивать доступ к своему контенту по IP, но это необязательно. Можно настроить опцию так, чтобы контент был доступен с любого IP.
Вы устанавливаете время действия ссылки. Если оно истечёт во время загрузки контента, CDN не остановит загрузку и отдаст файл до конца. Так пользователи даже с медленным интернетом смогут скачать ваши файлы и не бояться, что загрузка прервётся. Например, если срок жизни ссылки истекает в 18:40, а пользователь запросил контент в 18:39, он сможет скачать файл целиком — даже если загрузка займёт несколько часов. А вот если откроет ссылку в 18:40 или позднее, скачать файл не получится.
Как работает Secure token?
Как ссылки защищаются?
К каждой ссылке добавляется набор символов — специальный код, где зашифровано, как долго ссылка должна быть доступна и с каких IP. Этот код называют secure token. Когда пользователь переходит по ссылке, наша сеть CDN обрабатывает этот запрос и расшифровывает secure token. CDN не отдаст контент, если срок действия ссылки истёк или IP-адрес не подходит.
Ваш сайт сам создаёт secure token и добавляет его к ссылкам. Настроить генерацию защищённых ссылок просто — достаточно добавить на сайт нужный скрипт. Мы подготовили для вас шаблоны скриптов на PHP, Python и OpenSSL.
Как выглядят защищённые ссылки?
Так выглядит ссылка с secure token:
http://cdn.example.com/photo.jpeg?md5=DMF1ucDxtHCxwYQ&expires=2147483647
Где DMF1ucDxtHCxwYQ — secure token.
Что зашифровано в DMF1ucDxtHCxwYQ?
- время жизни ссылки
- путь к файлу
- разрешённый IP-адрес
- ключ (набор символов)
Как запрашивается контент через защищённую ссылку?
1. При включении опции Secure token в настройках CDN-ресурса вы указываете ключ (любой набор символов).
2. Вы добавляете скрипт для генерации защищённых URL на свой сайт. В скрипте вы указываете четыре переменные: срок жизни ссылки, доверенный IP-адрес, путь к вашему файлу и ключ из шага №1.
3. С помощью ключа скрипт кодирует переменные, превращая их в строку вида DMF1ucDxtHCxwYQ.
4. Скрипт добавляет DMF1ucDxtHCxwYQ к URL-адресу файла. Получившаяся ссылка имеет вид http://cdn.example.com/photo.jpeg?md5=DMF1ucDxtHCxwYQ&expires=2147483647. Эту ссылку видят пользователи на сайте.
5. Пользователь пытается запросить содержимое, используя этот защищённый URL-адрес.
6. Наша CDN обрабатывает запрос. Ей известен ключ, с помощью которого скрипт зашифровал переменные, поэтому она может расшифровать DMF1ucDxtHCxwYQ. CDN видит три переменные: срок жизни ссылки, доверенный IP-адрес и путь к вашему файлу.
7. Если срок действия ссылки не истёк, запрос поступает с доверенного IP-адреса и путь к файлу указан правильно, CDN отдаёт контент. Если что-то не совпадает, CDN возвращает ошибку.
Настроить Secure token
Для работы Secure token ваш сайт должен научиться генерировать защищенные URL-адреса и предоставлять их пользователям, а наша сеть CDN должна получить ключ для расшифровки таких ссылок. Как настроить сайт и CDN, рассказываем в статье «Secure token. Настроить и использовать».
Политика доступа по IP-адресам. Настроить доступ к контенту по IP-адресам
Опция Политика доступа по IP-адресам позволяет ограничивать доступ к CDN-контенту по указанному списку IP-адресов.
По умолчанию опция выключена, а доступ к контенту ресурса разрешён всем IP.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Политика доступа по IP-адресам, передвинув ползунок.
3. Выберите тип политики доступа:
- Разрешающую — разрешает доступ к контенту всем IP-адресам, кроме указанных в поле.
- Блокирующую — запрещает доступ к контенту всем IP-адресам, кроме указанных в поле.
4. Опция поддерживает как IPv4, так и IPv6-адреса. В поле впишите IP-адрес с маской подсети. Например, 192.168.3.2/32 или 2a03:d000:2980:7::8/128.
5. Нажмите Сохранить изменения.
Обратите внимание. В личном кабинете IP-адреса добавляются в строку только по одному. Используйте API-запросы, чтобы добавить список IP-адресов. Подробности запроса описаны в блоке options → ip_address_acl в API-документации.
Политика доступа по клиентским приложениям. Настроить доступ к контенту для user agents
Опция Политика доступа по клиентским приложениям позволяет ограничивать доступ к CDN-контенту по user agent (браузеру, приложению или устройству).
Опция может использоваться для защиты данных. Предположим, вы — владелец приложения, контент которого доставляется через CDN. Вы не хотите, чтобы другие приложения распространяли ваш контент. Тогда вы настраиваете опцию так, чтобы CDN разрешал доступ только для вашего приложения. Ваш контент остаётся в безопасности.
По умолчанию опция выключена, а доступ к контенту ресурса разрешён всем клиентским приложениям.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Политика доступа по клиентским приложениям, передвинув ползунок.
3. Выберите тип политики доступа:
- Разрешающую — разрешает доступ к контенту всем клиентским приложениям, кроме указанных в поле.
- Блокирующую — запрещает доступ к контенту всем клиентским приложениям, кроме указанных в поле.
4. Добавьте значение клиентского приложения (user agent) в поле опции. Максимальная длина одного значения составляет 100 символов.
Значением может быть:
- Строка значения user agent. Например, User agent value.
- Пустое значение user agent. Выберите параметр «Пустое значение» из выпадающего списка, чтобы настроить политику доступа для пустого значения HTTP-заголовка User agent.
- Регулярное выражение. Введите регулярное выражение, начинающееся с \~. Например, \~/Safari[ /]+([0-9\.]+)/i. Проверьте валидность вашего выражения с помощью сервиса regex.
5. Нажмите Сохранить изменения.
Обратите внимание. В личном кабинете клиентские приложения добавляются в строку только по одному.
Используйте API-запросы, чтобы добавить список клиентских приложений. Подробности запроса описаны в блоке options → user_agent_acl в API-документации.
Разрешённые HTTP-методы. Указать разрешённые HTTP-методы обращения к контенту
Вы можете задать разрешённые HTTP-методы запросов к контенту в CDN. По умолчанию разрешены и доступны методы GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Разрешённые HTTP-методы, передвинув ползунок.
3. В поле укажите HTTP-методы или удалите ненужные.
Указывая необходимые методы запроса, вы блокируете все остальные. В большинстве случаев рекомендуем оставлять методы GET, HEAD и POST.
Если сервер не распознал указанный клиентом метод, вернётся статус 501 (Not Implemented). Если серверу метод известен, но он неприменим к конкретному ресурсу, возвращается сообщение с кодом 405 (Method Not Allowed).
4. Нажмите Сохранить изменения.
Имя SNI-хоста. Задать и передавать имя SNI-хоста в запросах к источнику
Server Name Indication (SNI) — расширение протокола TLS, позволяющее клиенту указывать имя хоста, с которым он пытается установить соединение. SNI позволяет веб-серверам, размещённым на одном IP-адресе под разными доменами, корректно откликаться по HTTPS.
Опция Имя SNI-хоста позволяет задать имя хоста, передающееся в SNI-запросах от CDN-серверов к серверу-источнику по протоколу HTTPS.
Важно:
- Опция работает только, если CDN-серверы используют протокол HTTPS для обращения к источнику.
- После создания ресурса опция автоматически активируется со значением «Динамическое имя SNI-хоста».
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Безопасность и включите опцию Имя SNI-хоста, передвинув ползунок.
3. Выберите значение опции:
- Динамическое имя SNI-хоста — чтобы задать значение, совпадающее со значением опции Заголовок Host.
- Пользовательское имя SNI-хоста — чтобы задать значение SNI-хоста вручную. Значение не может быть пустым, содержать доменное имя или IP адрес.
4. Если выбрано значение «Пользовательское имя SNI-хоста», укажите имя SNI-хоста.
5. Нажмите Сохранить изменения.
Контент
Сжатие. Настроить сжатие GZip, Brotli на CDN
Об опциях сжатия
Настройте опции Сжатие GZip и/или Сжатие Brotli, чтобы ваши пользователи получали контент от CDN в сжатом виде. Так, скорость загрузки увеличится, а объём данных уменьшится в несколько раз. При этом с источника всегда будет запрашиваться несжатая версия файла.
Важно. Если в запросе к CDN браузер пользователя не отправляет заголовков с перечислением поддерживаемых форматов сжатия, например, Accept-Encoding: gzip, deflate, br, контент отдаётся без сжатия.
Включить опции сжатия
Внимание. Для корректной работы опции сначала очистите кеш CDN, а затем активируйте её в настройках ресурса.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу Контент и включите опцию Сжатие GZip и/или Сжатие Brotli, передвинув ползунок.
3. Добавьте или удалите необходимые типы данных для сжатия.
4. Сохраните изменения.
Взаимодействие Сжатия GZip и Сжатия Brotli
Вы можете активировать оба варианта сжатия одновременно. При этом метод сжатия данных будет зависеть от их типа, наличии включённой опции Шилдинг источника и того, поддерживает ли браузер пользователя тот или иной метод сжатия.
- Если для опции Сжатие Brotli указан тип данных, который поддерживается сжатием GZip, сжатие Brotli будет иметь больший приоритет. При условии, что браузер пользователя поддерживает такой тип сжатия и на ресурсе включён Шилдинг источника. Если GZip не поддерживается, пользователь получит несжатую версию файла.
- Если для опции Сжатие Brotli не указан тип данных, который поддерживается сжатием GZip, такие данные будут сжиматься по методу GZip. При условии, что браузер пользователя поддерживает такой тип сжатия. Если GZip не поддерживается, пользователь получит несжатую версию файла.
Пример:
Вы активировали обе опции. В «Типах данных» опции Сжатие Brotli указали text/html и application/json.
Когда пользователь запрашивает тип файла text/html, его браузер отправляет CDN-серверу заголовки с перечислением поддерживаемых форматов сжатия. Если браузер поддерживает сжатие Brotli, контент будет сжат на шилдинге источника, т.к. несмотря на поддержку этих типов данных методом сжатия GZip, алгоритм сжатия Brotli имеет больший приоритет.
Если тот же пользователь запросит тип файла application/x-javascript, данные будут сжаты на CDN по методу GZip, т.к. в параметрах опции Сжатие Brotli такой тип отсутствует.
Взаимодействие настроек и правил ресурса
1. При активной опции Сжатие на источнике в основных настройках ресурса, невозможно включить опции Сжатие GZipи Сжатие Brotli в правилах ресурса.
2. Чтобы сжатие всех файлов происходило на CDN по выбранному методу сжатия, а для файлов, попадающих под правила, запрашивалось сжатие на источнике, необходимо в основных настройках ресурса включить опции Сжатие GZip, Сжатие Brotli или обе опции, а в правилах ресурса включить Сжатие на источнике.
3. Чтобы настроить сжатие всех файлов на источнике, но установить сжатие по одному из методов для файлов, попадающих под правила, необходимо в основных настройках ресурса включить опцию Сжатие на источнике, а в правилах добавить эту же опцию, но оставить её выключенной. Затем в правилах нужно добавить и включить Сжатие GZip и/или Сжатие Brotli.
Rewrite. Настроить перенаправление запросов
Rewrite используется для изменения и перенаправления пути запроса, опция работает в соответствии с конфигурацией nginx.
Для активации опции перейдите в настройки CDN-ресурса, нажав на CNAME нужного ресурса в списке. В разделе Контент перейдите к опции Rewrite и передвиньте переключатель. Rewrite также доступен в разделе Правила.
В поле Rewrite body после активации опции отображается регулярное выражение, заданное по умолчанию. Очистите поле и введите через пробел две директивы: путь, к которому будет применяться rewrite, и то, на что должен меняться указанный путь. Используйте регулярные выражения.
Например, вам необходимо применить Rewrite ко всему ресурсу, чтобы CDN обращался за контентом в определенную папку на вашем источнике.
Предположим, ваш источник example.com. Необходимо забирать контент из директории example.com/media/
В таком случае пропишите в поле Rewrite следующие параметры:
/(.*) /media/$1
где:
- /(.*) — то, к чему применяется Rewrite. Группа переменных (.*) позволяет применить Rewrite ко всем возможным вариантам того, что будет идти после / в example.com/;
- /media/ — директория, в которую будут уходить запросы;
- $1 — порядковый номер группы переменных. Если групп больше одной, то соответственно, следующие номера будут $2, $3 и так далее.
Чтобы проверить ваше регулярное выражение, воспользуйтесь одним из сервисов для проверки.
Флаг break применяется к опции по умолчанию, и в поле не отображается. Как применить к опции другие флаги написано в блоке options → rewrite в API-документации.
Код ответа. Задать HTTP-код ответа для CDN-контента
Опция Код ответа позволяет настроить отдачу выбранного HTTP-кода для контента, размещённого на CDN.
Это может быть полезно, если вы хотите, чтобы пользователям при запросе определённого файла отдавался, например, 403 код. Или для настройки редиректа на другой URL.
1. Перейдите в настройки желаемого CDN-ресурса.
2. Включите опцию Код ответа.
3. В поле «Код ответа» введите любой код, кроме следующих: 408, 444, 494, 495, 496, 497, 499.
Важно. В поле можно ввести только один код.
4. (опционально) Укажите URL для редиректа или текст для кода ответа.
5. Сохраните изменения.
Обратите внимание. Если вы активируете Код ответа в настройках ресурса, опция будет применена ко всему контенту.
Чтобы настроить код ответа для определенных файлов или расширений, воспользуйтесь разделом Правила.
Сжатие. Настроить сжатие на источнике
Об опции
Опция Cжатие на источнике позволяет сократить полосу между сервером-источником и CDN-серверами и увеличить скорость отдачи контента за счет сокращения времени на сжатие файла на стороне CDN.
Активировать опцию Cжатие на источнике можно в настройках ресурса в разделе Контент.
Если опция активна, CDN-серверы забирают с вашего сервера-источника сжатый контент.
Обратите внимание:
- Если на сервере-источнике сжатие происходит по методу Brotli, CDN забирает несжатый контент, если не настроено иного.
- Если на сервере-источнике настроено сжатие Brotli, но вы хотите, чтобы CDN забирал сжатый контент, необходимо настроить источник так, чтобы при запросе файла GZip он отправлял файл Brotli.
Особенности опции
- Cжатие на серверe-источнике должно происходить по методу GZip.
- CDN-серверы не будут разжимать контент при доставке пользователю, даже если браузер клиента не поддерживает сжатие, но такие случае маловероятны.
- Опция не работает совместно с опцией Сжатие GZip, Сжатие Brotli и Оптимизация доставки больших файлов, т.к. они являются взаимоисключающими.
Сжимать без настроек на CDN
Источник поддерживает сжатие
Если вы хотите, чтобы через CDN отдавался сжатый или несжатый контент в зависимости от того, какой запрос поступил от конечного пользователя, необходимо отключить все настройки сжатия в вашем личном кабинете и выполнить некоторые настройки на вашем источнике.
На источнике должны быть настроены два HTTP-заголовка Vary: Accept-Encoding и Content-Encoding.
При обработке запроса от конечных пользователей CDN-серверы проверяют HTTP-заголовок Accept-Encoding. Если в заголовке содержится gzip и/или deflate, br, означающие возможность браузера обрабатывать сжатый контент, CDN запросит с источника сжатую версию файла. Если таких директив нет, сервер отдаст несжатый файл.
- Если на сервере не настроен заголовок Vary: Accept-Encoding, в CDN закешируется файл, который был первым запрошен (сжатый или нет). Это может вызывать сложности с отображением контента у конечного пользователя.\ Например, нужно чтобы из CDN был отдан несжатый файл, а в кеше только сжатый, тогда пользователь получит сжатый файл, а браузер не сможет его отобразить.
- Если заголовок Vary: Accept-Encoding настроен, в кеше CDN-серверов хранятся две версии файла.
Источник не поддерживает сжатие
В кеше CDN-серверов будет храниться несжатая версия файла. Независимо от того, запрашивает ли конечный пользователь сжатие или нет, из кеша будет отдаваться несжатый файл.
Оптимизация доставки больших файлов. Включить и использовать
Об опции
Что это? Опция Оптимизация доставки больших файлов позволяет ускорить кеширование файлов больших размеров. Файл будет запрашиваться с вашего источника частями по 10 МБ и храниться в кеше CDN.
Для работы опции ваш источник должен поддерживать HTTP Range request.
Как работает? При активации опции CDN начинает делить файлы, запрашиваемые с источника, на части по 10 МБ и загружать их в кеш. Файл будет запрашиваться последовательно, по мере необходимости. Так, если пользователь запросит файл размером 30 ГБ, CDN будет передавать одну часть за другой по мере отдачи пользователю предыдущих частей.
Если пользователи одновременно запрашивают разные части одного файла, ближайший CDN-сервер, используя множество одновременных потоков, загрузит с источника эти части файла в кеш и соберёт их воедино.
Пример. Пользователь запросил часть файла Range: bytes=123537047-123545047 (8 КБ). CDN заберёт с источника часть в диапазоне Range: bytes=115343360-125829119 (10 МБ) и закеширует её. При этом пользователю отдастся запрашиваемый им диапазон 123537047-123545047.
Как включить опцию
Перейдите в настройки CDN-ресурса → раздел Контент → опция Оптимизация доставки больших файлов. Включите опцию, передвинув ползунок. Нажмите Сохранить изменения. \ Теперь ваш контент начнёт запрашиваться частями.
Особенности опции:
- Настройка применяется ко всем файлам CDN-ресурса, что приведет к увеличению нагрузки на сервер-источник. Чтобы минимизировать нагрузку, активируйте Шилдинг источника или производите изменения в часы наименьшего трафика.
- Для корректной работы опции необходимо очищать кеш после каждого обновления файла на источнике.
- Если для ресурса используется группа источников, файлы на каждом из используемых источников должны содержать одинаковые заголовки Content-Length и Etag.
- Опция не работает совместно с опциями Сжатие на источнике, Сжатие GZip и Сжатие Brotli.
WebSockets. Разрешить WebSocket-соединения с источником
Что такое WebSocket
WebSocket — протокол для передачи данных между клиентом и сервером.
В чём отличие WebSocket от HTTP?
- WebSocket двунаправленный: клиент и сервер в любой момент могут послать друг другу данные. А HTTP однонаправленный — сервер отправляет данные только по запросу клиента; без запроса не может ничего прислать.
- WebSocket устанавливает одно соединение и постоянно держит его открытым. HTTP устанавливает новое соединение каждый раз, как клиент делает запрос, и разрывает после ответа сервера.
Websocket пригодится, когда нужно обновлять данные в реальном времени или отправлять сообщения клиенту. Например, для работы социальных сетей: когда вам кто-то пишет, сервер сам доставляет входящее по WebSocket. Если бы социальные сети работали по HTTP, пришлось бы каждый раз обновлять страницу, чтобы проверить, нет ли новых сообщений.
Важно. Для корректной работы протокола на CDN в открытом соединении данные необходимо передавать не реже чем раз в 5-8 секунд. В противном случае соединение может быть разорвано.
Как подключить WebSockets
Внимание. Опция WebSockets подключается по запросу. Пожалуйста, обратитесь в техническую поддержку, чтобы активировать опцию и управлять ей.
1. Отправьте запрос на подключение опции WebSockets в техническую поддержку через почту или через чат. Мы сообщим вам, когда опция будет подключена. Далее вы сможете включать её для ваших ресурсов.
2. Перейдите в настройки CDN-ресурса, для которого желаете активировать опцию.
3. В разделе Контент найдите опцию WebSockets и включите её.
4. Сохраните изменения.
HTTP-заголовки
Поддержка заголовка CORS. Включить и настроить
Что такое заголовок CORS и для чего он используется
Заголовок ответа Access-Control-Allow-Origin применяется в механизме Cross-Origin Resource Sharing (CORS), чтобы дать возможность браузеру пользователя получать разрешения на доступ к ресурсам домена, отличном от того, с которого поступает запрос.
Опция Поддержка заголовка CORS передаёт в ответе браузеру заголовок Access-Control-Allow-Origin и может использоваться:
- Для защиты контента от загрузки на сторонних сайтах.
- Для предотвращения появления ошибки «XMLHttpRequest cannot load http://domain.ru. No ’Access-Control-Allow-Origin’ header is present on the requested resource», которая возникает при загрузке веб-шрифтов из кеша CDN-серверов в браузерах по умолчанию (например, Firefox, InternetExplorer).
Как работает CORS
Например, пользователь, находящийся на сайте http://domain1.com, открывает изображение, которое расположено на вашем сайте по адресу http://cdn-domain.com/image.jpg.
В таком случае браузер пользователя отправляет на сервер домена http://cdn-domain.com/image.jpg запрос вида:
GET /image HTTP/1.1
Host: domain2.com
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://domain1.com/examples/access-control/test.html
Origin: http://domain1.com
В запросе важным является заголовок Origin. Он сообщает серверу, что запрос отправлен с домена http://domain1.com.
Сервер домена http://cdn-domain.com/image.jpg учитывает заголовок Origin запроса и принимает запрос или отказывает в его обработке.
Если сервер принял запрос, в ответе браузеру будет отправлен заголовок Access-Control-Allow-Origin, который позволит браузеру отобразить изображение для пользователя сайта http://domain1.com.
Важно. Параметры заголовка (в примере ниже: «*») зависят от заданных настроек на сервере. Подробнее об этом и о том, от чего зависит, принял ли сервер запрос или отказал в обработке читайте ниже в инструкции по настройке.
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2020 00:23:53 GMT
Server: Apache/2.0.61
Access-Control-Allow-Origin: *
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
[XML Data]
Если сервер отказал в обработке запроса, ответ браузеру будет отправлен без заголовка Access-Control-Allow-Origin, и браузер не отобразит изображение для пользователя.
Настроить заголовок через опцию
Откройте настройки ресурса. В списке опций выберите раздел HTTP-заголовки и найдите опцию Поддержка заголовка CORS.
Включите опцию.
Вы можете поставить галочку напротив пункта «Всегда добавлять заголовки в ответ от CDN независимо от кода ответа». Тогда заголовок CORS будет добавляться при любых кодах ответа. Если не ставить галочку — заголовок будет добавляться только для ответов с кодами 200, 201, 204, 206, 301, 302, 303, 304, 307 или 308.
В этой опции доступно три варианта настройки заголовка:
1. *, для всех доменов: отображение контента разрешено всем доменам.
В таком случае CDN в ответе браузеру передаст заголовок Access-Control-Allow-Origin с параметром «*», и контент будет доступен для просмотра:
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2020 00:23:53 GMT
Server: Apache/2.0.61
Access-Control-Allow-Origin: *
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
2. "$http_origin", если источник указан ниже: отображение контента разрешено для тех доменов, которые указаны в поле настройки опции. В заголовке ответа передаётся домен, с которого пришёл запрос. Если необходимо добавить wildcard, укажите также и сам домен, например, *.domain.com и domain.com.
При получении запроса CDN сверит значение заголовка запроса Origin с доменами, которые указаны для опции Поддержка заголовка CORS.
Если значение заголовка Origin в запросе к серверу соответствует одному из указанных доменов, CDN добавит к ответу заголовок Access-Control-Allow-Origin с доменом, с которого пришёл запрос, и контент будет доступен для пользователя.
Если значение заголовка Origin в запросе к серверу не соответствует одному из указанных в личном кабинете доменов, заголовок Access-Control-Allow-Origin добавлен не будет, и контент не отобразится.
Например, в настройках опции указан домен domain.com. В таком случае, если запрос на ваш контент был отправлен с domain.com, браузер пользователя получит ответ от сервера вида, и контент будет отображён:
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 00:23:53 GMT
Server: Apache/2.0.61
Access-Control-Allow-Origin: https://domain.com
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
Если запрос на ваш контент был отправлен не с домена domain.com, заголовок Access-Control-Allow-Origin в ответ браузеру добавлен не будет, и контент отображён не будет.
3. "$http_origin", для всех доменов: отображение контента разрешено для всех доменов, а в заголовке ответа передаётся домен, с которого пришёл запрос. Если необходимо добавить wildcard, укажите также и сам домен, например, *.domain.com и domain.com.
Этот вариант опции аналогичен первому варианту, т.к. контент доступен всем доменам, но отличается тем, что в параметре заголовка Access-Control-Allow-Origin будет передаваться домен, с которого был отправлен запрос.
Так, например, если запрос на ваш контент был отправлен с домена domain.com, он будет передан браузеру в заголовке ответа Access-Control-Allow-Origin, и контент будет отображен:
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 00:23:53 GMT
Server: Apache/2.0.61
Access-Control-Allow-Origin: https://domain.com
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml
Такой вариант использования может быть необходим, например, если для настройки определённых фильтраций на сервере не подходит параметр «*».
Настройки опции будут применены ко всем файлам, передающимся через CDN.
Настроить заголовок через правило
Настройте заголовок только для определённых файлов, используя Правила.
Перейдите в раздел Правила в настройках ресурса, нажмите Создать правило, затем Создать пустое правило.
В настройках правила укажите, к каким файлам необходимо его применять. Нажмите Добавить опцию и выберите опцию Поддержка заголовка CORS из списка.
Варианты работы правила:
- Если опция добавлена и активирована, заголовок Access-Control-Allow-Origin добавляется к файлам, указанным в правиле.
- Если опция добавлена, но не активирована, заголовок Access-Control-Allow-Origin не добавляется к файлам, указанным в правиле.
Настроить заголовок на источнике
Ниже представлены примеры конфигураций для настройки заголовка CORS на источнике.
HTTP-заголовок Access-Control-Allow-Origin со значением «*» позволяет отображать контент с любого домена.
Конфигурация Apache
# ----------------------------------------------------------------------
# CORS-enabled images (@crossorigin)
# ----------------------------------------------------------------------
# Send CORS headers if browsers request them; enabled by default for images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
# mod_headers, y u no match by Content-Type?!
<FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Webfont access
# ----------------------------------------------------------------------
# Allow access from all domains for webfonts.
# Alternatively you could only whitelist your # subdomains like "subdomain.example.com".
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
Конфигурация Nginx
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}
Проверить заголовок CORS
1. Очистите кеш CDN-ресурса или файлов, для которых добавили заголовок. Читать подробнее об очистке кеша.
2. Воспользуйтесь одним из способов проверки ниже.
Проверить с помощью команды cURL
Для MacOS действия можно выполнить в терминале (terminal), для Windows — в командной строке (cmd).
1. Пропишите: curl -I http://cdn.example.ru/js/intlTelInput/css/intlTelInput.css
Где http://cdn.example.ru/js/intlTelInput/css/intlTelInput.css — ссылка на файл, интегрированный с CDN.
2. Вы получите следующий вывод. Обратите внимание, присутствует ли заголовок Access-Control-Allow-Origin:
HTTP/1.1 200 OK
Server: nginx/1.13.1
Date: Fri, 09 Jun 2017 12:54:24 GMT
Content-Type: image/jpeg
Content-Length: 124024
Connection: keep-alive
X-Image-Generated: 29
X-Image-Meta: 1024x768
X-Image-Read: 71
Expires: Wed, 06 Dec 2017 12:51:43 GMT
Cache-Control: max-age=15552000
Access-Control-Allow-Origin: *
Last-Modified: Sun, 01 Jan 2017 12:00:00 GMT
Cache-Control: max-age=315360000, public
Cache: HIT
X-Cached-Since: 2017-06-09T12:51:43+00:00
X-Node: m9-up-e245
Если в ответе вы увидели нужный заголовок, заголовок CORS настроен.
Проверить с помощью инструментов разработчика в браузере
1. Откройте любой интернет-браузер (например, Google Chrome).
2. Откройте ваш сайт.
3. Нажмите кнопку F12 (откроется панель разработчика).
4. Выберите вкладку Сеть (Network).
5. Обновите страницу (клавиша F5).
6. Вы получите список всех файлов, которые были загружены с вашего сайта.
7. Найдите необходимый файл (например: JPEG, PNG, IMG), интегрированный с CDN, и нажмите на него. Для более удобного поиска можете воспользоваться фильтром в левом углу панели.
8. На вкладке Headers справа вы увидите заголовки, которые настроены на вашем сервере.
Если в ответе вы увидели нужный заголовок, заголовок CORS настроен.
Заголовок Host. Включить и настроить
Что такое заголовок Host
Заголовок Host — обязательный заголовок HTTP-запросов. Например, при запросе контента CDN-серверы отправляют этот заголовок на источник. Заголовок Host помогает определить, к какому домену или IP-адресу из всех существующих на сервере нужно обратиться, чтобы получить запрашиваемый контент.
Опция Заголовок Host включается и заполняется автоматически, когда вы создаёте CDN-ресурс и указываете его источник или группу источников. Во втором случае в качестве значения Заголовка Host будет указан домен или IP-адрес первого ресурса из группы источников.
К примеру, создадим CDN-ресурс и укажем домен mydomain.com в качестве источника:
Этот же домен появится в значении Заголовка Host:
Как управлять опцией
1. Откройте настройки CDN-ресурса в личном кабинете.
2. Перейдите в раздел HTTP-заголовки и включите опцию Заголовок Host.
3. Настройте опцию. Доступны два параметра:
- Кастомный заголовок Host. Выберите этот параметр, если в качестве значения нужно указать определённый домен или IP-адрес.
- Пересылать заголовок Host. Выберите этот параметр, если при запросе контента с источника нужно отправлять тот же заголовок Host, что и при запросе к CDN. Так, если персональный домен вашего CDN-ресурса — cdn.example.com, тогда значением Заголовка Host будет также cdn.example.com.
4. Укажите желаемое значение заголовка Host.
5. Сохраните изменения.
Не забудьте очистить кеш CDN после внесения изменений в опцию.
Важно: при смене источника, значение опции Заголовок Host не меняется автоматически. Вам нужно внести изменения вручную. Если вы не поменяете значение заголовка Host, CDN будет запрашивать контент с нового источника, используя старый заголовок Host. Тогда в ответе от CDN вместо желаемого контента пользователь получит ошибку.
Как отключить опцию
Если опция Заголовок Host отключена, в большинстве случаев пользователи получат 4xx или 5xx ошибки. Чтобы избежать сложностей, включите опцию и укажите корректное значение.
Исключение. Если вы используете CDN-ресурс с нашим доменом для стриминга, опция Заголовок Host примет значение этого персонального домена. Опция принимает такое значение, когда она выключена, поэтому её не нужно настраивать дополнительно.
Как проверить, что заголовок задан верно
Проверьте правильность значения Заголовка Host, используя следующую команду:
curl -H "Host: example.com" -I http(s)://1.2.3.4/image.png
где:
- example.com — значение опции Заголовок Host
- http(s) — протокол обращения к источнику
- 1.2.3.4 — IP-адрес источника
- image.png — путь до любого статичного файла, который доставляется через CDN
Если в ответе вы получите ошибку 400 Bad Request или 403 Forbidden Response, значит ваш сервер не может обработать указанный заголовок Host. В таком случае следуйте инструкции выше и укажите верный заголовок.
Заголовки ответов (добавить). Добавить собственные HTTP-заголовки
Добавить заголовки ответов
С помощью опции Заголовки ответов (добавить) вы можете задать собственные HTTP-заголовки, которые CDN-серверы добавят в ответ клиенту. Если такой заголовок уже настроен на сервере, его значение будет перезаписано на стороне CDN.
1. Перейдите в настройки CDN-ресурса.
2. В разделе HTTP-заголовки найдите опцию Заголовки ответов (добавить) и активируйте её.
3. В поле «Название заголовка» введите необходимое значение.
Допустимые символы для поля: латинские буквы (A-Z, a-z), цифры (0-9), нижнее подчёркивание (_) и дефис (-).
4. В поле «Значение» укажите значение заголовка, которое будет передаваться в ответе.
Допустимые символы для поля: латинские буквы (A-Z, a-z), цифры (0-9), пробел и следующие спецсимволы: `\~!@#%^&*()-_=+ /|";:?.>\<{}[].
Ограничения для поля:
- Недопустимые символы: \$'
- Не может начинаться со спецсимвола
- Не может состоять только из спецсимволов
- Максимальная длина значения — 512 символов
5. Поставьте галочку, если нужно добавлять заголовок в ответы с любым кодом. Если этого не нужно, снимите галочку. Тогда заголовки будут добавляться только в ответы с кодами 200, 201, 204, 206, 301, 302, 304, 307 и 308.
6. Нажмите Добавить заголовок, если хотите добавить дополнительные заголовки. Заполните поля по аналогии с шагами 4 и 5.
Вы можете установить до 50 заголовков ответа.
7. Сохраните изменения.
Указать несколько значений заголовка
Если нужно добавить больше одного значения заголовка, вы можете сделать это двумя способами. От способа зависит вид заголовков в ответе:
1. Если необходимо передавать значения заголовков в разных строках, введите заголовок № 1 в поле «Значение» и нажмите Enter, затем введите заголовок № 2 и нажмите Enter и так далее.
В этом случае в ответ заголовок передастся следующим образом:
Header: value
Header: value2
Header: value3
2. Если необходимо передавать значения заголовков в одной строке, укажите необходимые значения заголовков в поле «Значение» через запятую.
В этом случае в ответ заголовок передастся следующим образом:
Header: value, value2, value3
Чтобы комбинировать два способа добавления заголовков: укажите заголовки через запятую и добавьте к ним другие заголовки по отдельности.
В этом случае в ответ заголовок будет передаваться следующим образом:
Header: value, value2
Header: value3
Проверить заголовки
1. Очистите кеш CDN-ресурса или файлов, для которых добавили заголовок.
2. Выполните команду cURL в терминале на компьютере или используйте онлайн сервисы.
curl -I http://cdn.site.com/images/1.jpg
HTTP/1.1 200 OK
Server: nginx/1.11.4
Date: Wed, 05 Apr 2017 19:27:14 GMT
Content-Type: image/jpeg
Content-Length: 62890
Connection: keep-alive
Last-Modified: Mon, 03 Oct 2016 22:21:05 GMT
ETag: "f5aa-53dfd5c25d421"
FILE: Image
Example: yourvalue
Cache: HIT
X-Node: m9-up-e240
Accept-Ranges: bytes
3. Если в ответе вы увидели нужный заголовок, настройка произведена успешно.
Заголовки запросов. Задать HTTP-заголовки для запросов от CDN к источнику
Опция Заголовки запросов позволяет устанавливать собственные HTTP-заголовки, которые CDN добавит в запросы к источнику.
Чтобы настроить опцию:
1. Перейдите в раздел CDN-ресурсы и откройте настройки ресурса.
2. Спуститесь к разделу HTTP-заголовки и включите опцию Заголовки запросов, передвинув ползунок.
3. В появившихся полях введите название и значение заголовка запроса.
- Для поля «Название заголовка» допустимы латинские буквы (A-Z, a-z), цифры (0-9), подчеркивание (_) и дефис (-),
- Для поля «Значение» допустимы латинские буквы (A-Z, a-z), цифры (0-9), подчеркивание (_), точка (.), слеш (/), двоеточние (:), дефис (-), равно (=), пробел. Значение заголовка не может начинаться или заканчиваться пробелами. Между символами можно ввести только один пробел_._ Максимальная длина значения — 512 символов.
Чтобы добавить другие заголовки, нажмите Добавить заголовок.
4. Сохраните изменения.
Заголовки ответов (скрыть). Задать HTTP-заголовки, которые CDN скроет из ответа
По умолчанию CDN-сервер передаёт конечным пользователям все HTTP-заголовки, заданные на источнике.
Чтобы управлять передаваемыми заголовками ответов:
1. Откройте настройки CDN-ресурса.
2. Перейдите в раздел HTTP-заголовки и включите опцию Заголовки ответов (скрыть).
3. Настройте опцию. Доступны два параметра:
- Скрывать все, кроме. Укажите, какие заголовки CDN-сервер включит в ответ. Все заголовки, кроме указанных, будут скрыты.\ После включения опции появится список популярных заголовков. Можно удалить некоторые из них, нажав на иконку 🞪 рядом с названием заголовка, или удалить все, кроме обязательных, нажав на 🞪 в правой части поля.\ Чтобы добавить заголовки, нажмите на слово HTTP-заголовки и выберите заголовок из выпадающего списка или введите собственное значение. Заголовки ответов могут состоять из латинских букв (a-z), цифр (0-9), дефис (-) и нижних подчёркиваний (_).
- Скрывать только. Укажите, какие заголовки CDN-сервер скроет из ответа. Все заголовки, кроме указанных, будут переданы конечным пользователям.\ Чтобы добавить заголовки, нажмите на слово HTTP-заголовки и выберите заголовок из выпадающего списка или введите собственное значение. Заголовки ответов могут состоять из латинских букв (a-z), цифр (0-9), дефис (-) и нижних подчёркиваний (_).\ Обратите внимание. Существуют обязательные заголовки, которые нельзя скрыть из ответа: connection, content-length, content-type, server и date.
4. Сохраните изменения.
Заголовок X-Forwarded-Proto. Определить протокол обращения пользователя
X-Forwarded-Proto — стандартный HTTP-заголовок, который позволяет определить по какому протоколу (HTTP или HTTPS) пользователь обращается на сервер.
Наши CDN-серверы передают заголовок X-Forwarded-Proto по умолчанию.
Добавив настройки со своей стороны, можно использовать этот заголовок, чтобы:
- Настроить редирект обращений с HTTP на HTTPS.
- Выдавать пользователям разный контент в зависимости от протокола обращения.
Оптимизация
Image stack. Подключить и настроить опцию
Об опции Image stack
Что это? Image stack — это платная опция, которая позволяет преобразовывать изображения в форматах JPG, PNG, WebP и AVIF на стороне CDN. Расширение и URL изображения останутся неизменными, будут меняться только его версии, хранящиеся в кеше CDN.
Какие преобразования доступны:
- Изменение качества
- Сжатие и конвертация в форматы WebP и AVIF
- Изменение размера
- Обрезка
Как работает? Покажем работу опции на примере изменения качества изображения. Сверху — оригинал, а снизу — его версия в качестве, которое мы снизили до 10%. Вес нашего изображения также уменьшился, поэтому пользователь получит его быстрее.
Оригинал изображения:
Обработанное изображение:
Со стороны CDN это выглядит так:
Получив запрос на преобразование, мы проверяем формат изображения, и если он соответствует JPG, PNG, WebP или AVIF, отправляем на ваш источник необходимый набор заголовков запроса. Этот запрос затем уходит на Image stack сервер, который обрабатывает изображение и отправляет результат конечному пользователю.
В заголовках ответа появится информация о выполненном преобразовании:
- X-Img-Operations: выполненное преобразование.
- X-Img-Origin-Download-Time: время скачивания изображения с источника в миллисекундах.
- X-Img-Origin-Size: оригинальный размер изображения в байтах.
- X-Img-Processing-Time: время, потраченное на преобразование, в миллисекундах.
- X-Img-Saved-Bytes: количество байт, на которое уменьшилось изображение после преобразования.
- X-Img-Server: сервер, который преобразовал изображение.
- Img-Skip-Reason: причина, по которой преобразование не было выполнено.
Операции по преобразованию изображений исполняются в таком порядке:
- Изменение размера
- Обрезка
- Сжатие и конвертация в форматы WebP и AVIF
Обратите внимание:
- Операция по изменению качества не может выполняться отдельно от других операций. Если вы хотите изменить качество изображения, активируйте ещё одну операцию.
- Все операции Image Stack выполняются обособленно друг от друга, поэтому возможные сложности на одной операции не повлияют на выполнение других операций.
Когда изображение не изменится
Пользователь получит оригинальное изображение из кеша CDN, если Image stack не сможет его преобразовать. Это произойдёт, если:
- Размер файла превышает 32 МБ. Image stack не может преобразовывать изображения размером более 32 МБ.\ Если размер изображения более 32 МБ и менее 100 МБ, изображение не будет преобразовано, но будет доставлено CDN.\ Если размер изображения превышает 100 МБ, изображение может доставиться частично, либо вы получите сообщение об ошибке: «The original image is too large».
- Качество оригинального изображения ниже желаемого. Например, если качество оригинального изображения — 45%, а в настройках Image stack указано значение 80%. Мы не сможем повысить качество.
- Оригинальные изображения сжаты с помощью GZip. Image stack не поддерживает команду ungzip, поэтому не сможет преобразовать изображение, которое содержит HTTP-заголовок Content-Encoding: gzip.
- Браузер пользователя не поддерживает форматы WebP или AVIF.\ С помощью HTTP-заголовка Accept Image stack определяет, поддерживает ли браузер пользователя форматы сжатия. Если в значении заголовка содержится image/webp или image/avif, значит, браузер поддерживает эти форматы.
- Формат изображения не поддерживается Image stack. Image stack не может преобразовывать изображения в форматах отличных от JPG, PNG, WebP и AVIF (например, GIF).
Проверьте HTTP-заголовок Img-Skip-Reason, чтобы выяснить причину:
Как подключить и настроить опцию
Image stack — платная опция.
1. Отправьте запрос на её подключение в техническую поддержку по почте или через чат.
В запросе укажите ID вашего аккаунта, чтобы мы могли вас идентифицировать. ID аккаунта находится на главной странице вашего личного кабинета.
Шаблон сообщения: «Добрый день! Включите, пожалуйста опцию Image stack для аккаунта с ID … (укажите свой ID)».
Мы всё настроим и пришлём сообщение, что подключили Image stack. После этого вы сможете подключить опцию к своим CDN-ресурсам.
Важно. Вы можете настроить опцию как в основных настройках CDN-ресурса, так и с помощью специального правила. Мы рекомендуем пользоваться правилами, чтобы не нарушать работу других опций. Подробнее в разделе «Почему Rewrite не работает вместе с Image stack?».
Ниже рассказываем, как настроить опцию в правиле.
2. Перейдите на вкладку Правила в настройках нужного CDN-ресурса. Нажмите Создать правило и выберите шаблон Image optimization.
Откроется страница создания правила. Вам нужно настроить только блок Image stack.
3. Включите опцию Image stack и задайте параметры преобразования:
4. Качество изображений. Укажите, в каком качестве изображения будут доставляться вашим пользователям. Доступны четыре значения:
- Высокое — 95%
- Среднее — 80%
- Низкое — 65%
- Своё значение — любое значение от 0% до 100%
Качество отдельных изображений также настраивается с помощью параметра запроса. Например:
https://image.example.ru/image.jpg?quality=50
5. Кнопка Включить сжатие без потерь для PNG определяет, будет ли меняться качество изображений в формате PNG, или они будут доставляться без потерь.
Больше информации о Качестве изображений в статье «Image stack. Изменить качество изображений».
6. Сжатие. Подключите сжатие WebP и/или сжатие AVIF. Если вы подключили оба вида сжатия, и браузер конечного пользователя их поддерживает, он получит изображение в формате AVIF.
Настроить сжатие для конкретного изображения можно в параметре запроса:
https://image.example.ru/image.jpg?fmt=webp
https://image.example.ru/image.jpg?fmt=avif
Внимание. При AVIF-конвертации изображения формата PNG вы можете получить ошибку img-skip-reason - converted image bigger than origin, если вы включили Сжатие без потерь для PNG и/или выбрали высокое качество для оптимизации изображений.
Чтобы избежать ошибки:
- отключите сжатие AVIF, оставив только WebP;
- выключите сжатие без потерь;
- снизьте качество для оптимизации изображений.
Больше информации о Сжатии в статье «Image stack. Сжимать изображения в формат WebP и AVIF».
Обзор Image stack. Параметры преобразований Изменение размера и Обрезка регулируются только с помощью параметров запроса. Для этих операций невозможно задать стандартные настройки, потому что каждое изображение уникально и имеет разные характеристики (размер и область обрезки).
В поле «Обзор Image stack» мы рассказываем, как пользоваться параметрами запросов в каждой операции по преобразованию изображения.
7. Нажмите Создать правило, чтобы сохранить его.
Обратите внимание: как только вы добавите правило с включённой опцией Image stack, кеш ресурса автоматически очистится. CDN-серверы станут обращаться за контентом к источнику. Чтобы не перегружать источник, рекомендуем активировать опцию в то время, когда ваши пользователи наименее активны, или предварительно подключить Шилдинг источника.
Почему Rewrite не работает вместе с Image stack?
Некоторые браузеры (напр., Google Chrome) добавляют заголовок Accept: image/webp или Accept: image/avif не только к картинкам, но и к другим форматам файлов (напр., PHP и JS). При включении опции, все запросы с таким заголовком обрабатываются Image stack сервером. Если он не может сконвертировать файл, он отдаст оригинал файла.
Когда Image stack и Rewrite включены одновременно, запросы перенаправляются на источник контента. Источник ответит 3хх кодом, который Image stack не сможет вернуть. При запросе PHP и JS файлов, Image stack сначала получит 3хх код от источника и пойдёт по редиректу, пока не получит другой код ответа. Но так мы не получим желаемый файл — он будет недоступен.
Чтобы решить проблему, включите Image stack в правиле на ресурсе, а Rewrite добавьте в основные настройки.
Image stack. Сжимать изображения в формат WebP и AVIF
Об операции Сжатие
Что это? Сжатие — операция Image stack, которая сжимает и конвертирует исходное изображение в форматы WebP и/или AVIF при доставке через CDN. Вы сами определяете, какой формат сжатия использовать, какое изображение получат пользователи.
О форматах сжатия:
- WebP. Это формат изображений с продвинутым алгоритмом сжатия. Конвертировав картинку из PNG или JPG в WebP, вы уменьшите её вес в среднем на 25–35% без видимых потерь в качестве. Чтобы сжимать изображения, WebP использует контейнер RIFF. Формат основан на алгоритме сжатия неподвижных изображений (ключевых кадров) из видеокодека VP8.
- AVIF. Это формат, который сжимает изображения, сохраняя при этом их оригинальное качество (без потерь). AVIF используется для хранения изображений, сжатых с помощью AV1, в формате контейнера HEIF.
Зачем нужна? Настроив конвертацию изображений, вы уменьшите вес сайта, и страницы будут грузиться быстрее. Чем больше на них изображений, тем ощутимее будет разница в скорости загрузки.
Как работает? Включив операцию Сжатие в опции Image stack, вы разрешаете CDN преобразовывать ваши изображения в форматах JPG и PNG. CDN закеширует и создаст их копии, а затем сожмёт их в форматы WebP и/или AVIF и отдаст конечным пользователям. После смены формата изображение не меняет свой URL и расширение.
Опция также управляется через параметры запроса.
Обратите внимание:
- Пользователь получит сжатую версию изображения, если его браузер поддерживает форматы WebP и/или AVIF. Если эти форматы не поддерживаются, CDN доставит оригинальную версию изображения. Так как в кеше CDN хранятся и оригиналы, и сжатые копии, пользователь в любом случае получит файл из кеша.
- Image stack не может преобразовывать изображения размером более 32 МБ.
Сравните: одна и та же картинка в PNG, JPG и WebP
Особенности. Сжатие входит в платную опцию Image stack. Эта опция помогает оптимизировать изображения: конвертировать в формат WebP и AVIF, обрезать, изменять качество и размеры. Чтобы использовать Сжатие, нужно подключить Image stack.
Использовать Сжатие
1. Подключите опцию Image stack к CDN-ресурсу согласно инструкции «Как подключить опцию».
2. Выберите, какими форматами сжатия хотите пользоваться: WebP и/или AVIF.
Как работают настройки:
- Включить сжатие WebP. Конвертировать изображения в формат WebP.
- Включить сжатие AVIF. Конвертировать изображения в формат AVIF.
- Включить оба вида сжатия. Конвертировать изображения в WebP или AVIF в зависимости от того, какой формат поддерживает браузер конечного пользователя. Если браузер поддерживает оба формата, пользователь получит изображение в формате AVIF.
Внимание. При AVIF-конвертации изображения формата PNG вы можете получить ошибку img-skip-reason - converted image bigger than origin, если вы включили Сжатие без потерь для PNG и/или выбрали высокое качество для оптимизации изображений.
Чтобы избежать ошибки:
- отключите сжатие AVIF, оставив только WebP;
- выключите сжатие без потерь;
- снизьте качество для оптимизации изображений.
3. Сохраните настройки.
Теперь ваши пользователи начнут получать сжатые изображения.
Управлять через параметры запроса
После включения опции пользователи смогут изменять формат картинок самостоятельно с помощью параметров запроса. Если вы хотите задать их формат на источнике, следуйте инструкции ниже:
1. Откройте код сайта-источника.
2. Найдите строки с URL тех изображений, формат которых хотите изменить.
3. Добавьте в URL изображений параметр запроса с нужными значениями в формате:
image.jpg?fmt=value
Вместо value задайте одно из значений:
- webp — изображения будут сконвертированы в формат WebP
- avif — изображения будут сконвертированы в формат AVIF
- avif,webp — изображения могут быть сконвертированы в оба формата (в зависимости от браузера пользователя)
Например, https://image.example.ru/image.jpg?fmt=webp
4. Сохраните изменения в коде источника вебсайта. Теперь изображения будут отображаться на вебсайте в том качестве, которое вы задали.
Проверить работу операции
Определить, сжалось ли изображение помогут HTTP-заголовки ответа. Найдите заголовок Content-Type, он должен иметь одно из значений: image/webp или image/avif. А заголовок X-Img-Operations должен иметь значение compression.
Если такого значения нет, а CDN возвращает оригинальное изображение, проверьте HTTP заголовок Img-Skip-Reason. В его значении будет указана причина, почему изображение не конвертировалось_. Например, значение _compression: output image size is bigger than/equal to the original image size появляется_,_ когда изображение после своего преобразования становится большего размера или соответствует размеру оригинала.
Image stack. Обрезать области изображения
Об операции Обрезка
Что это? Обрезка — операция Image stack, которая обрезает исходное изображение перед тем, как доставить его через CDN. Параметры обрезки (какого размера фрагмент вырезать и из какой части изображения) вы или ваши пользователи задаёте сами для каждого изображения.
Пример. На сервере-источнике хранится картинка размером 500×500 пикселей, но вы с помощью Обрезки задали новый размер 200×200 и обрезку по центру. При доставке через CDN картинка автоматически уменьшилась — от неё было отрезано всё лишнее, кроме фрагмента 200×200 в центре. На источнике по-прежнему хранится изображение 500×500, но пользователи получают его уменьшенный вариант — 200×200.
Как работает? Чтобы использовать Обрезку, добавьте нужные параметры запросов в URL картинок. Если вы установили эти параметры на источнике, CDN отдаст пользователям обрезанную копию картинки. Если на источнике таких параметров нет, пользователи смогут задать их самостоятельно с помощью параметров запроса.
Внимание. Image stack не может преобразовывать изображения размером более 32 МБ.
Особенности. Обрезка входит в платную опцию Image stack. Эта опция помогает оптимизировать изображения: конвертировать в формат WebP и AVIF, обрезать, изменять качество и размеры. Чтобы использовать Обрезку, нужно подключить Image stack.
Использовать Обрезку
1. Подключите опцию Image stack к CDN-ресурсу согласно инструкции «Как подключить опцию».
После включения опции пользователи смогут обрезать картинки самостоятельно. Если вы хотите обрезать их на источнике, следуйте инструкции ниже:
2. Откройте код сайта-источника.
3. Найдите строки с URL тех изображений, которые хотите обрезать с помощью Обрезки.
4. Добавьте в URL изображений параметр запроса с нужными значениями в формате:
image.jpg?параметр=значения
где image.jpg — URL вашего изображения на сайте. Все доступные параметры описаны в разделе «Параметры Обрезки».
5. Сохраните изменения в коде сайта-источника.
Настройка закончена! Теперь, когда пользователь перейдёт на страницу сайта, она откроется с обрезанными картинками.
Параметры Обрезки
С помощью Обрезки можно вырезать фрагмент из исходной картинки — именно этот фрагмент получат конечные пользователи. Откуда вырезать фрагмент и какого он будет размера, можно указать в параметре запроса. Вариантов настройки три, ниже описан каждый из них.
Обрезать картинку с изменением пропорций
Параметр: ?crop=4:8
Где:
- 4 — отношение ширины вырезаемого фрагмента к его высоте
- 8 — отношение высоты вырезаемого фрагмента к его ширине
Как работает: операция равномерно обрежет картинку, чтобы соотношение сторон изменилось так, как указано в запросе.
Пример: на сервере-источнике хранится картинка 500×600. Её соотношение сторон — 5:6. Чтобы показать его, мы добавили сетку на картинку.
Вы задали новое соотношение сторон — 4:8, добавив к URL картинки параметр запроса:
img.jpg?crop=4:8
Операция выделит фрагмент с таким соотношением сторон по центру исходного изображения.
Затем она отрежет лишнее. Вот какую картинку увидят пользователи сайта:
Как Обрезка рассчитала, какой фрагмент вырезать:
1. Сравнила числа из пропорции (4 и 8) и выбрала большее (8). Так Обрезка определила, какую сторону исходной картинки уменьшать не нужно. 8 соответствует высоте, значит, высота останется прежней — 600 пикселей.
2. Определила новый размер ширины, который будет соответствовать пропорции. Для этого умножила исходную высоту на соотношение 4:8 — то есть 600 умножила на 4:8. Получила новый размер ширины — 300 пикселей.
3. Разместила фрагмент размером 300×600 в центре исходной картинки и вырезала его.
Вырезать фрагмент по центру исходного изображения
Параметр: ?crop=300,400
Где:
- 300 — ширина вырезаемого фрагмента
- 400 — высота вырезаемого фрагмента
Как работает: Обрезка обрежет всё лишнее, оставив только фрагмент в центре.
Пример: на сервере-источнике хранится изображение 500×600. Вы хотите оставить только фрагмент 300×400 в центре. Для этого вы добавляете к URL изображения нужный параметр:
img.jpg?crop=300,400
Обрезка вырежет из центра фрагмент 300×400. Именно этот фрагмент получат пользователи, загрузив страницу сайта.
Вырезать фрагмент из конкретной части исходного изображения
Чтобы вырезать фрагмент из конкретной части, в параметре запроса нужно указать сначала ширину и высоту фрагмента (например,?сrop=(ширина),(высота)), а затем место, откуда его вырезать. Место можно указать четырьмя способами, их мы описываем ниже.
• Указать место с помощью двух отступов, измеренных в пикселях
Параметр: ?сrop=300,350,x110,y30
Где:
- 300 — ширина вырезаемого фрагмента
- 350 — высота вырезаемого фрагмента
- 110 — сколько пикселей нужно отступить от левого края исходного изображения
- 30 — сколько пикселей нужно отступить от верхнего края исходного изображения
Как работает: операция приложит верхний левый угол фрагмента к координате, которую вы указали, и вырежет этот фрагмент из картинки.
Пример: на сервере-источнике хранится картинка 500×600; вы хотите вырезать из неё фрагмент размером 300×350, чтобы оставить только мордочку собаки.
Чтобы обрезать картинку, вы добавляете в ссылку параметр запроса:
img.jpg?crop=300,350,x110,y30
Вот какие действия произойдут с картинкой перед тем, как CDN доставит её пользователю:
1. В параметре запроса вы указали размер фрагмента 300×350 (crop=300,350,x110,y30), поэтому Обрезка выделит такой фрагмент на картинке.
2. Вы также указали, где начать обрезку — в точке с координатой 110 пикселей от левого края и 30 пикселей сверху (crop=300,350,x110,y30). Обрезка сместит обрезаемый фрагмент так, чтобы его левый угол совпал с этой точкой.
3. Операция вырежет фрагмент. Итоговая картинка получится такой:
• Указать место с помощью двух координат, измеренных в процентах от исходного изображения
Параметр: ?crop=300,350,x22p,y5p
Где:
- 300 — ширина вырезаемого фрагмента
- 350 — высота вырезаемого фрагмента
- 22 — сколько процентов от ширины исходного изображения нужно отступить от левого края
- 5 — сколько процентов от высоты исходного изображения нужно отмерить от верхнего края
Как работает: Обрезка приложит верхний левый угол фрагмента к координате, которую вы указали, и вырежет этот фрагмент из картинки.
Пример: на сервере-источнике хранится картинка 500×600; вы хотите вырезать из неё фрагмент размером 300×350, чтобы оставить только мордочку собаки.
Чтобы обрезать картинку, вы добавляете в ссылку параметр запроса:
img.jpg?crop=300,350,x22p,y5p
Вот какие действия произойдут с картинкой перед тем, как CDN доставит её пользователю:
1. В параметре запроса вы указали размер фрагмента 300×350 (?crop=300,350,x22p,y5p), поэтому Обрезка выделит такой фрагмент на картинке.
2. Вы также указали, где начать обрезку (?crop=300,350,x22p,y5p) — отступить 22% от исходной ширины, считая от левого края, и отступить 5% от исходной высоты, считая от верхнего края. Операция сместит обрезаемый фрагмент так, чтобы его верхний левый угол совпал с указанной точкой.
3. Обрезка вырежет фрагмент. Итоговая картинка получится такой:
• Указать место с помощью соотношений обрезаемых областей
Параметр: ?crop=220,100,offset-x40,offset-y58
Где:
- 220 — высота вырезаемого фрагмента
- 100 — ширина вырезаемого фрагмента
- 40 — сколько процентов от общей ширины обрезаемой области должно находиться слева от фрагмента
- 58 — сколько процентов от общей высоты обрезаемой области должно находиться сверху от фрагмента
Как работает: операция разместит фрагмент так, чтобы слева и сверху оказались области того размера, который вы задали. Затем вырежет фрагмент.
Пример: на сервере-источнике хранится картинка 500×600; вы хотите вырезать из неё фрагмент размером 220×100, чтобы оставить только ошейник собаки.
Чтобы обрезать картинку, вы добавляете в ссылку параметр запроса:
img.jpg?crop=220,100,offset-x40,offset-y58
Вот какие действия произойдут с картинкой перед тем, как CDN доставит её пользователю:
1. Вы указали размер фрагмента — 220×100 (crop=220,100,offset-x40,offset-y58). Обрезка выделит фрагмент такого размера на картинке.
2. Обрезка переместит фрагмент вправо так, чтобы слева осталось 40% от области, которую нужно отрезать по ширине (crop=220,100,offset-x40,offset-y58). Соответственно, справа останется 60% области для обрезки.
3. Переместит фрагмент вниз так, чтобы сверху осталось 58% от области, которую нужно отрезать (crop=220,100,offset-x40,offset-y58). Снизу, соответственно, останется 42% обрезаемого пространства.
4. Вырежет фрагмент. Итоговая картинка получится такой:
• Указать место с помощью одного отступа, измеренного в пикселях, и одной координаты, измеренной в процентах от исходного изображения
Вы можете комбинировать предыдущие способы для того, чтобы указать конкретное место на исходной картинке, из которого нужно вырезать фрагмент. Например, задать координату в пикселях по горизонтали и процент обрезки по вертикали.
Примеры комбинированных параметров запроса:
- ?crop=ширина,высота,x(значение по оси х),offset-y(процент обрезки сверху)
- ?crop=ширина,высота,offset-x(процент обрезки слева),у(значение по оси у)
- ?crop=ширина,высота,x(% обрезки по оси х),offset-у(процент обрезки сверху)
Обрезка сработает так, как описано выше.
Проверить работу операции
Проверить, применилась ли обрезка, можно по значению HTTP-заголовка изображения X-img-operations. В нём отображаются все выполненные преобразования. Если в строке стоит значение crop — изображение было обрезано.
Если значения crop в заголовке нет, и из кеша CDN отдаётся исходное изображение без обрезки, проверьте HTTP-заголовок Img-Skip-Reason. Там указывается причина, по которой операция не смогла быть выполнена.
Image stack. Изменить качество изображений
Об операции Качество изображений
Что это? Качество изображений — операция Image stack, которая изменяет качество изображения с 1% до 100%. Чем ниже значение, тем хуже качество изображения. Вы сами определяете, какое значение установить, какое изображение получат пользователи.
Например, если вы установите значение 30%, вы получите изображение низкого качества с грубой пикселизацией. Когда вы увеличите процентное значение, повысится и качество изображения. Значение 75% — достаточно высокое, но оно снизит резкость и контрастность изображения. Установив значение 95%, вы получите изображение, схожее с оригиналом.
Итоговый вид изображения зависит от его гранулярности и цветовой схемы. Так, если на изображении запечатлена монолитная фигура на контрастном фоне (например, коричневая птица на зелёном фоне), изменения в качестве будут более очевидны. На детализированном и неконтрастном изображении изменения будут менее заметны.
Как работает? Включив операцию Качество изображений в опции Image stack, вы разрешаете CDN преобразовывать ваши оригинальные изображения. CDN закеширует и создаст их копии, а затем изменит их качество и отдаст конечным пользователям. После выполнения операции изображение не меняет свой URL и расширение.
Опция также управляется через параметры запроса.
К примеру, на источнике хранится JPG-изображение и его оригинальное качество — 90%, но вы устанавливаете значение параметра Quality на 50%. CDN автоматически уменьшает качество изображения, когда оно попадает в кеш. Так, источник будет хранить изображение высокого качества, но конечные пользователи получат его сжатую версию.
Обратите внимание:
- Операция по изменению качества не может выполняться отдельно от других операций. Если вы хотите изменить качество изображения, нужно активировать ещё одну операцию. Например, включите операцию Сжатие или перейдите к разделу «Совместить с другими операциями».
- Image stack не может преобразовывать изображения размером более 32 МБ.
Для чего используется? Покажем на примерах, когда эта опция может быть полезной.
- Доставлять изображения быстрее. Представим, что вы владелец интернет-магазина. У каждого вашего продукта есть собственная страница с изображениями высокого качества. Так как такие изображения имеют большой размер, у пользователей они загружаются медленнее. Чтобы этого избежать, вы можете понизить качество изображений, тогда их размер уменьшится, а скорость загрузки увеличится.
- Сократить нежелательное использование. Вы владеете стоковыми фотографиями и продаёте их. Вы хотите, чтобы ваши пользователи могли бесплатно скачивать только 10 фотографий в высоком качестве. Чтобы это сделать, вы можете поставить лимит, по достижении которого фото будут скачиваться в сжатом виде.
Особенности. Качество изображений входит в платную опцию Image stack. Эта опция помогает оптимизировать изображения: конвертировать в форматы WebP и AVIF, обрезать, изменять качество и размеры. Чтобы использовать Качество изображений, нужно подключить Image stack.
Использовать Качество изображений
1. Подключите опцию Image stack к CDN-ресурсу согласно инструкции «Как подключить опцию».
2. Укажите, в каком качестве изображения будут доставляться вашим пользователям.
Доступны четыре значения:
- Высокое — 95%
- Среднее — 80%
- Низкое — 65%
- Своё значение — любое значение от 1% до 100%
Кнопка Включить сжатие без потерь для PNG определяет, будет ли меняться качество изображений в формате PNG, или они будут доставляться без потерь.
3. Сохраните настройки.
Теперь ваши пользователи начнут получать изменённые изображения, но не забудьте добавлять хотя бы ещё одну операцию!
Управлять через параметры запроса
После включения опции пользователи смогут изменять качество картинок самостоятельно с помощью параметров запроса. Если вы хотите задать их размеры на источнике, следуйте инструкции ниже:
1. Откройте код сайта-источника.
2. Найдите строки с URL тех изображений, качество которых хотите изменить.
3. Добавьте в URL изображений параметр запроса с нужными значениями в формате:
image.jpg?quality=value1&tool2=value2
где:
- value1 — число от 1 до 100
- tool2=value2 — параметры запроса для другой операции Image stack (обрезка, изменение размера, сжатие)
Например, чтобы снизить качество изображения, сжать его в формат AVIF и вырезать область 200х200 пкс. по центру, используйте такой параметр запроса:
image.jpg?quality=76&fmt=avif&crop=200,200
4. Сохраните изменения в коде источника вебсайта. Теперь изображения будут отображаться на вебсайте в том качестве, которое вы задали.
Давайте посмотрим, как при смене параметров «Качества изображений» изменится фото колеса обозрения.
Ссылка: example.com/img.jpg Размер: 186 КБ Качество: 100% Оригинал изображения до применения опции.  | Ссылка: cdn.example.com/img.jpg?quality=80&fmt=webp Размер: 106 КБ Качество: 80% Изображение с качеством, установленным по умолчанию.  |
Ссылка: example.com/img.jpg?quality=50&fmt=avif Размер: 55.4 КБ Качество: 50%  | Ссылка: cdn.example.com/img.jpg?quality=10&crop=300,800 Размер: 5.1 КБ Качество: 10%  |
Совместить с другими операциями
Вы можете совместить несколько операций: использовать Качество изображений, Обрезку, Изменение размера, Сжатие одновременно. Для этого укажите два и более параметра в формате:
image.jpg?tool#1=value&tool#2=value&…
К примеру, вы хотите вырезать сегмент 300×600 пикселей из центра исходного изображения и уменьшить качество на 50%. Тогда добавьте такой параметр запроса к URL изображения:
image.jpg?crop=300,900&quality=50
Вот что получат пользователи при загрузке изображения:
Проверить работу операции
Чтобы проверить, изменилось ли разрешение изображения, проверьте значение HTTP-заголовка. Заголовок X-Img-Operations отображает все произведённые преобразования. Если в значении указано convert, качество изображения изменилось.
Если в HTTP-заголовке нет значения convert, а CDN возвращает изображение в оригинальном качестве, проверьте HTTP-заголовок Img-Skip-Reason. Заголовок объясняет причину, почему операция не выполнилась. В частности, значение bad quality parameter появляется, когда значение качества, которое вы установили, больше 100%.
Image stack. Изменить размер изображений
Об операции Изменение размера
Что это? Изменение размера — операция Image stack, которая изменяет высоту и ширину исходного изображения при его доставке через CDN. Высоту, ширину и метод уменьшения вы или ваши пользователи задаёте сами для каждого изображения.
Пример. На сервере-источнике хранится картинка размером 1000x600 пикселей, но вы с помощью Изменения размера задали параметры height=500, width=300. В кеше CDN картинка автоматически уменьшилась. В результате на источнике по-прежнему хранится изображение 1000x600, но пользователи получают его уменьшенный вариант — 500х300.
Как работает? Чтобы задать новую высоту и ширину изображения, нужно добавить соответствующие параметры запросов в URL картинок. Эти параметры описаны в разделе Использовать Изменение размера. Если вы установили эти параметры на источнике, CDN отдаст пользователям изменённую копию картинки. Если на источнике таких параметров нет, пользователи смогут задать их самостоятельно с помощью параметров запроса.
Внимание. Image stack не может преобразовывать изображения размером более 32 МБ.
Особенности. Изменение размера входит в платную опцию Image stack. Эта опция помогает оптимизировать изображения: конвертировать в формат WebP и AVIF, обрезать, изменять качество и размеры. Чтобы использовать Изменение размера, нужно подключить Image stack.
Использовать Изменение размера
1. Подключите опцию Image stack к CDN-ресурсу согласно инструкции «Как подключить опцию».
После включения опции пользователи смогут изменять размер картинок самостоятельно. Если вы хотите задать их размеры на источнике, следуйте инструкции ниже:
2. Откройте код сайта-источника.
3. Найдите строки с URL изображений, размеры которых хотите уменьшить с помощью операции.
4. Добавьте параметры запроса в URL изображений.
Один параметр задаётся в формате:
image.jpg?параметр=значение
Два и более параметров задаются в формате:
image.jpg?параметр1=значение&параметр2=значение&…
где image.jpg — URL вашего изображения на сайте.
Параметр и как он работает | Пример |
Width Параметр width сжимает картинку с сохранением пропорций исходной картинки. Через параметр width вы указываете ширину новой картинки в пикселях. Высота будет автоматически рассчитана так, чтобы сохранить пропорции исходной картинки. Пример: на сервере-источнике картинка размером 500 (ширина) × 490 (высота). Вы указываете новое значение ширины width=300. Ширина и высота уменьшатся, и вы получите изображение размером 300х294. | До: image.jpg  500×490 После: image.jpg?width=300  300×294 |
Height Параметр height сжимает картинку с сохранением пропорций исходной картинки. Через параметр height вы указываете высоту новой картинки в пикселях. Ширина будет рассчитана автоматически так, чтобы сохранить пропорции исходной картинки. Пример: на сервере-источнике картинка размером 500 (ширина) × 490 (высота). Вы указываете новое значение высоты height=300. Высота и ширина уменьшатся, и вы получите изображение размером 306х300. | До: image.jpg  500×490 После: image.jpg?height=300  306×300 |
Fit Параметр fit настраивает, как именно будет уменьшена картинка: обрезана по краям, сжата пропорционально исходной картинке или сжата с игнорированием пропорций исходного изображения. Чтобы использовать fit, нужно указать в параметрах и ширину, и высоту будущего изображения, а уже после добавить параметр fit. Вот так: image.jpg?width=300&height=100&fit=… Если вы укажете только высоту и ширину и не укажете параметр fit, сработает значение по умолчанию — fit=fit. Fit может принимать четыре значения, о которых рассказываем ниже. | До: image.jpg  500×490 |
1\. fit=fit Картинка будет иметь ширину и высоту, которые вы указали в width и height. Лишние пиксели будут равномерно обрезаны по краям. Пример: размеры исходной картинки 500×490, а вы указали новую ширину 200, высоту 100 и fit=fit. Чтобы размер итоговой картинки был 200×100, сверху и снизу будет отрезано по 195 пикселей, а слева и справа — по 150. | 1\. После: image.jpg?width=200&height=100&fit=fit или image.jpg?width=200&height=100  200×100 |
2\. fit=bounds Картинка будет уменьшена пропорционально. Во время уменьшения из значений width и height Изменение размера выберет большее и будет ориентироваться на него, а второе проигнорирует. Так, размер большей стороны будет таким, как вы указали. А размер меньшей — изменится, чтобы сохранить соотношение сторон оригинальной картинки. Пример: на сервере-источнике картинка со сторонами 500×490 пикселей. Вы указали итоговую ширину 200, высоту 100 и fit=bounds. Как будет действовать операция: 1) Сравнит значения ширины и высоты и выберет наибольшее. В данном случае наибольшее — ширина (200). Значение высоты операция проигнорирует. 2) Рассчитает пропорции исходного изображения. В данном случае это 500×490, то есть высота в 1.02 раза меньше ширины. 3) Уменьшит картинку, взяв за основу данные: ширина 200, высота должна быть в 1.02 раза меньше ширины. Значит, высота должна быть 196. Операция уменьшит картинку до размера 200×196. | 2\. После: image.jpg?width=200&height=100&fit=bounds  200×196 |
3\. fit=cover Картинка будет уменьшена пропорционально. Во время уменьшения из значений width и height Изменение размера выберет меньшее и будет ориентироваться на него, а второе проигнорирует. Так, размер меньшей стороны будет таким, как вы указали. А размер большей — изменится, чтобы сохранить соотношение сторон оригинальной картинки. Пример: на сервере-источнике картинка со сторонами 500×490 пикселей. Вы указали итоговую ширину 200, высоту 100 и fit=cover. Как будет действовать Изменение размера: 1) Сравнит значения ширины и высоты и выберет наименьшее. В данном случае наименьшее — высота (100). Значение ширины операция проигнорирует. 2) Рассчитает пропорции исходного изображения. В данном случае это 500×490, то есть ширина в 1.02 раза больше высоты. 3) Уменьшит картинку, взяв за основу данные: высота 100, ширина должна быть в 1.02 раза больше высоты. Значит, ширина должна быть 102. Операция уменьшит картинку до размера 102×100. | 3\. После: image.jpg?width=200&height=100&fit=cover  102×100 |
4\. fit=force У итоговой картинки будут те ширина и высота, которые вы укажете в параметрах. Картинка сожмётся по ширине и высоте, даже если это нарушает пропорции исходного изображения. | 4\. После: image.jpg?width=200&height=50&fit=force  200х50 |
5. Сохраните изменения в коде сайта-источника.
Теперь изображения на сайте будут отображаться с теми размерами, которые вы задали.
Проверить работу операции
Проверить, применились ли изменения, можно по значению HTTP-заголовка изображения. В заголовке X-Img-Operations отображаются все выполненные преобразования. Если видите в строке значение resize — размер изображения изменился.
Если значения resize в заголовке нет, и из кеша CDN отдаётся изображение исходного размера, проверьте HTTP-заголовок Img-Skip-Reason. Там указывается причина, по которой операция не смогла быть выполнена.
Правила
Правила. Создать и настроить правило для CDN-ресурса
О вкладке Правила
В отличие от вкладки Опции, где устанавливаются основные настройки CDN-ресурса, на вкладке Правила вы можете задать настройки для определённых типов файлов или путей.
Например, на вкладке Опции вы включили опцию Кеширование на CDN и выбрали параметр «Задать настройки на CDN». Эта настройка применяется для всех ваших файлов. Но для некоторых файлов вы хотели бы использовать настройки источника. Чтобы это сделать, нужно создать правило, добавить опцию кеширования, установить для неё параметр «Использовать настройки источника» и указать, для каких файлов нужно применять эту настройку. Так, основные настройки будут применятся ко всем файлам, кроме указанных в правиле, а к файлам из правила применятся настройки источника.
Обратите внимание: на один CDN-ресурс можно добавить только пять правил. Количество созданных правил показано на вкладке Правила.
Как добавить правило
Создать правило вручную
1. Откройте настройки ресурса и перейдите на вкладку Правила. Нажмите на кнопку Создать правило и выберите Создать пустое правило в выпадающем списке.
Откроется новая страница. Следующие шаги выполняйте на ней.
2. В поле «Имя правила» введите название правила.
3. В поле «Шаблон правила» укажите путь до файла или папки, к которому будет применяться создаваемое правило. Задайте путь в формате регулярного выражения или URI, начинающегося с «^/» или «/». Домен или IP-адрес вашего источника прописывать не нужно.
Важно. Если для CDN-ресурса добавлены несколько правил, а их шаблоны пересекаются, тогда для путей до файлов, попадающих под эти шаблоны, применится верхнее из списка правило. К примеру, на ресурсе добавлены два правила с шаблонами /folder/.* (первое правило) и /folder/image.jpg (второе правило). Тогда на файл /folder/image.jpg распространится первое правило.
4. Выберите протокол взаимодействия с источником, по которому CDN будет обращаться за контентом. Если файлы доступны по тому же протоколу, который выбран в основных настройках CDN-ресурса, выберите параметр «Наследовать с ресурса». Если нужно использовать иной протокол, выберите «HTTP», «HTTPS» или оба протокола.
5. Выберите группу источников, из которой CDN будет забирать контент. Если файлы доступны в группе источников, выбранной в основных настройках CDN-ресурса, установите параметр «Наследовать из настроек ресурса». Если нужно использовать другую группу источников, выберите её из выпадающего списка. После создания правила оно также отобразится на странице групп источников.
6. Нажмите на кнопку Добавить опцию, чтобы переопределить значение опции для этого правила. Появится список опций. Добавьте желаемые опции и нажмите Закрыть.
7. Включите и настройте добавленные опции или оставьте их выключенными.
Есть три варианта взаимодействия опций в правилах и опций в основных настройках ресурса:
Вариант | Особенности | Пример |
Опция не добавлена в правило | Параметры опции наследуются из основных настроек ресурса и применяются на файлы, указанные в правиле | Вы включаете опцию Кеширование на CDN в основных настройках ресурса, затем создаёте правило, в которое не добавляете эту опцию. Так, настройки кеширования для файлов, указанных в правиле, будут наследоваться из основных настроек ресурса. |
Опция добавлена в правило, но отключена | Параметры опции из основных настроек ресурса не будут применяться на файлы, указанные в правиле | В основных настройках ресурса вы включаете опцию Политика доступа по странам со значениями «Блокирующая», «RU». Это значит, что доступ ко всему контенту будет заблокирован для всех стран, кроме России. Затем вы создаёте правило и добавляете выключенную опцию Политика доступа по странам. В этом случае параметры опции из основных настроек ресурса не будут применяться на файлы, указанные в правиле. Эти файлы будут доступны во всех странах, не только в России. |
8. Сохраните изменения.
Создать правило из шаблона
Используйте шаблоны для создания правил. Они полезны, если:
- У вас несколько ресурсов, и для них нужны одинаковые правила. Вы можете создать один шаблон и использовать его, чтобы добавлять правила на всех ресурсах.
- Вы хотите использовать стандартные правила для работы некоторых опций или операций: Image Stack, потокового вещания через CDN, выписки Let’s Encrypt через HTTP-01 challenge. Для этих целей воспользуйтесь нашими системными шаблонами.
Больше информации о работе с шаблонами в инструкции «Шаблоны. Создать свои или использовать системные».
Чтобы создать правило из шаблона:
1. Откройте настройки CDN-ресурса. На вкладке Правила нажмите на кнопку Создать правило и выберите шаблон из списка.
2. Откроется страница создания правила с предзаполненными полями из шаблона. Проверьте настройки опций и при необходимости отредактируйте их в соответствии с инструкцией в разделе «Создать правило вручную».
3. Нажмите Создать правило.
Создать правило через API
Вы можете создавать правила не только через интерфейс личного кабинета, но и с помощью API.
Примеры правил
Запретить кеширование изображений на CDN
Чтобы запретить кеширование изображений на CDN:
1. В поле «Шаблон правила» введите ^/.(jpg|jpeg|png)$.
2. Добавьте и включите опцию Кеширование на CDN с параметрами «Задать настройки на CDN» и «Не кешировать».
Включить Поддержку заголовка CORS для .ttf файлов
Чтобы добавить HTTP-заголовок Access-Control-Allow-Origin только для файлов с расширением .ttf:
1. В поле «Шаблон правила» введите /.ttf$.
2. Добавьте и настройте опцию Поддержка заголовка CORS.
Как включить или отключить правило
Возможно, вам потребуется отключить правило. Настройки отключённого правила перестанут действовать на указанные в нём файлы, но оно всё ещё будет включено в лимит правил ресурса.
Чтобы отключить или включить правило:
1. Перейдите на вкладку Правила и откройте желаемое правило.
2. Передвиньте переключатель в поле «Доступность правила».
3. Нажмите Сохранить изменения.
Отключённое правило имеет статус «Приостановлено», а включённое — «Активно».
Как изменить порядок правил
Чтобы изменить порядок правил:
1. Нажмите на иконку ::: напротив порядкового номера правила и потяните строку вверх или вниз.
2. Нажмите на кнопку Сохранить порядок правил.
Автоматическая и ручная остановка CDN-ресурса
Автоматическая остановка
В случае если созданный ресурс активен, но на нём нет трафика на протяжении 90 дней, он будет автоматически остановлен системой.
1. За 7 дней до остановки ресурсов все пользователи аккаунта с ролями Administrator и Engineer получат письмо со списком ресурсов, которые будут остановлены.
- В настройках ресурса будет отображаться время до его остановки.
- В списке ресурсов напротив ресурсов, которые подлежат остановке, будет отображён индикатор, напоминающий, что данный ресурс будет остановлен.
Важно! Если после получения первого письма на ресурсе появится трафик:
- Второе письмо об остановке ресурсов не будет отправлено.
- Ресурс не будет остановлен.
2. В момент остановки ресурса все пользователи аккаунта с ролями Administrator и Engineer получат письмо со списком остановленных ресурсов.
Если после ручного включения остановленного ресурса система продолжит фиксировать отсутствие трафика, через 7 дней ресурс будет приостановлен снова.
Если вы не хотите, чтобы CDN-ресурсы без трафика останавливались, обратитесь в техподдержку.
Самостоятельная остановка
При необходимости вы можете остановить работу CDN-ресурса самостоятельно.
1. Для этого перейдите в настройки CDN-ресурса и нажмите на переключатель в опции Доступность контента.
2. Нажмите Сохранить изменения.
Контент будет недоступен конечным пользователям.
Чтобы включить доступность контента, нажмите на переключатель снова и сохраните изменения.
WAF
Базовый WAF. Включить базовую веб-защиту
Что такое Базовый WAF
Базовый WAF — это файрвол, который защищает ваш ресурс от атак, связанных со следующими уязвимостями:
- Инъекционные атаки (Injections)
- Нарушенная аутентификация (Broken Authentication)
- Незащищённость критичных данных (Sensitive Data Exposure)
- Внешние объекты XML (XXE) (XML External Entities (XXE))
- Нарушение контроля доступа (Broken Access control)
- Небезопасная конфигурация (Security misconfiguration)
- Межсайтовый скриптинг (XSS) (Cross Site Scripting (XSS))
- Небезопасная десериализация (Insecure Deserialization)
- Использование компонентов с известными уязвимостями (Using Components with known vulnerabilities)
- Неэффективный мониторинг (Insufficient logging and monitoring)
- Уязвимость нулевого дня в Log4j (Log4shell vulnerability)
Опция бесплатная, но количество защищённых запросов для одного ресурса может быть ограничено.
Как включить Базовый WAF
Можно подключить файрвол для всего ресурса или для конкретных URL.
Включить защиту всего ресурса
Чтобы установить защиту для всего ресурса:
1. Перейдите в настройки желаемого ресурса.
2. Спуститесь к разделу WAF и включите опцию Базовый WAF.
3. Сохраните изменения.
Включить защиту конкретных URL
Чтобы подключить файрвол для конкретных URL:
1. Создайте правило, которое будет управлять этими URL.
2. В настройках правила добавьте опцию Базовый WAF и включите её.
3. Сохраните изменения.
Что делать, если Базовый WAF блокирует часть контента
Наша защита работает на базе модуля NGINX ModSecurity WAF. Этот модуль использует стандартный набор правил, который защищает от OWASP Top 10. Если запрос был заблокирован, значит, попал под одно из правил.
Если блокируются только определённые URL, рекомендуем не выключать файрвол полностью, а отключить его только для блокируемых URL. Для этого:
1. Создайте правило с location, который блокируется Базовым WAF.
2. Добавьте в правило опцию Базовый WAF и выключите её.
3. Сохраните изменения.
{width="602" height="512"}
Если вам нужны более гибкие настройки защиты, воспользуйтесь платным продуктом Защита веб-приложений. Вы сможете установить WAF, защитить ваше приложение от взлома, установить защиту от ботов и DDoS-атак, настроить чёрные и белые списки. Для консультации свяжитесь с технической поддержкой — с удовольствием расскажем о Защите веб-приложений подробнее.
Потоковое вещание через CDN
Настроить потоковое вещание через CDN по протоколу HLS
Условия для проведения трансляций через CDN
Если вы транслируете Live потоки или видео в формате HLS, CDN поможет ускорить их доставку конечным пользователям. Так как HLS основан на протоколе HTTP, ваши трансляции будут кешироваться и передаваться как обычные статичные файлы.
Чтобы вести трансляции через CDN, нужно:
- Транслировать Live поток или видео в формате HLS.
- Создать CDN-ресурс в личном кабинете.
- Внести настройки кеширования.
Настроить проведение трансляций через CDN
1. Создать CDN-ресурс
В личном кабинете создайте CDN-ресурс в соответствии с инструкцией «Создать и интегрировать CDN-ресурс. Для статических файлов».
2. Изменить настройки кеширования
Добавьте настройки кеширования для следующих файлов HLS:
- TS. Каждый такой файл содержит сегменты трансляции. Эти файлы называют «чанками».
- M3U8. Каждый такой файл содержит информацию о трансляции и список видео-сегментов (TS). Эти файлы называют «плейлистами».
Сначала браузер запрашивает плейлист (M3U8), затем воспроизводит чанки (TS) в порядке, заданном плейлистом.
Время кеширования чанков (TS) — 1 минута. Такое значение кеширования превышает продолжительность чанка и помогает справиться с проблемой медленного интернет-соединения пользователей. Пользователи могут получить устаревший плейлист со списком чанков от CDN, хотя на источнике, возможно, лежит новый плейлист с новыми чанками. Если мы установим время кеширования чанков — менее 1 минуты, браузер пользователя отправит запрос на устаревший плейлист и получит 404 код ответа, потому что на источнике такого файла уже нет.
Время кеширования плейлистов (M3U8) — 1-2 секунды. Если вы установите короткий период кеширования, пользователи не будут получать плейлисты со старыми чанками из кеша.
Задайте настройки кеширования на источнике с помощью HTTP-заголовка Cache-Control или в личном кабинете.
1) Перейдите в настройки CDN-ресурса и нажмите на кнопку Правила.
2) Нажмите на кнопку Создать правило.
3) Выберите правило Video segments template (.ts) и нажмите Создать правило на открывшейся вкладке. Повторите действия для правила Playlists template (.m3u8).
3. Включить пресет для кеширования через оперативную память
Если вы планируете передавать видео (VOD), включать пресет не нужно. Перейдите к следующему пункту инструкции.
Чтобы ускорить передачу файлов через CDN, включите пресет «LIVE STREAMING». Так файлы Live потока будут кешироваться не на жёстких дисках, а в оперативной памяти серверов.
Для этого перейдите в список CDN-ресурсов и нажмите на ··· напротив названия ресурса. Выберите Включить пресет «LIVE STREAMING».
Чтобы отключить пресет, выберите Выключить пресет «LIVE STREAMING».
4. Интегрировать поток с CDN
В ссылке на поток замените ваш домен на CDN-домен. Предварительно убедитесь, что CNAME запись настроена корректно.
Например, поток напрямую с источника: http://domain.com/playlist.m3u8
Поток через CDN: http://cdn.domain.com/playlist.m3u8
Проверить трансляцию можно через любой плеер, который работает с потоковым видео по протоколу HLS (например, VLC).
5. Обновить ссылку на трансляцию
Разместите обновлённую ссылку на плейлист на вашем сайте. Если трансляцию будут смотреть более 100 человек в разных локациях, рекомендуем подключить опцию Шилдинг источника (прекеш-сервер), чтобы снизить нагрузку с источника.