Перейти к содержанию

HTTP кеширование

HTTP кеширование позволяет значительно ускорить загрузку статических объектов, таких как:

  • Изображения
  • Видео- и аудиофайлы
  • CSS и JavaScript файлы
  • Документы и другие файлы

Преимущества использования:

  1. Сокращение времени отклика сайта
  2. Повышение надежности доступа
  3. Быстрая загрузка даже "тяжелых" страниц

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


Создание ресурса кеширования

Внимание

В системе существует ограничение на ресурсы - до 100 шт. Если вам нужно больше ресурсов, то обратитесь к вашему персональному менеджеру или в саппорт.

Для начала работы с HTTP кешированием необходимо создать ресурс:

  1. В боковом меню слева выберите пункт "CDN"
  2. Перейдите на вкладку "HTTP кеширование"
  3. Нажмите кнопку "Добавить ресурс" в правом верхнем углу

Далее вам предстоит выбрать тип оптимизации раздачи.

Оптимизация раздачи контента

При создании ресурса необходимо выбрать один из вариантов оптимизации раздачи контента:

Статика

  • Оптимизирует раздачу картинок, видео-файлов, JavaScript-файлов, CSS-файлов и т.п.

  • Текстовые файлы сжимаются (gzip по умолчанию) перед отдачей пользователям.

Большие файлы

  • Оптимизирует раздачу больших файлов (размером больше 20 Мбайт)

  • Файлы с ориджина загружаются по частям (HTTP Range-запросы)

  • Сжатие на стороне CDN не производится

  • Можно указать размер части range-запроса (slice) целым числом от 1 до 1024 Мбайт

  • Значение slice по умолчанию: 16 Мбайт

Обратите внимание

Далее при редактировании ресурса после изменения размера slice рекомендуем очистить кэш ресурса.

Важно

Для разных типов оптимизаций раздачи существуют свои ограничения:

Источник данных

После выбора типа оптимизации раздачи необходимо указать корректный источник данных.

В качестве источника могут выступать:

 Домен, например: www.example.ru
 IP-адрес, например: 86.86.87.88

Пример: yourdomain.com:443

При использовании S3-домена в качестве источника данных необходимо дополнительно указать разрешенный бакет в соответствующем поле.

Примечание: Если у вас несколько источников контента (primary/backup), вы сможете сконфигурировать пул источников на следующем этапе настройки.

Нажмите кнопку "Создать" для инициации процесса создания ресурса кеширования. После этого система начнет применение настроек ресурса в сети CDN.

Важно

Применение настроек ресурса в нашей сети может занять до 15 минут.

Ресурс готов к использованию, когда его статус изменится на "Активен".


Инструкция по использованию

В правой части интерфейса находится блок "Инструкция", содержащий важную информацию:

  1. Ваш домен: Уникальный URL для доступа к вашему контенту через CDN.

  2. Замена ссылок: Инструкции по корректной замене ссылок на ресурсы для использования CDN.

  3. Пример пути до файла: Демонстрация правильного формата ссылок.

  4. Интеграция с CMS: Информация о плагинах для популярных CMS-систем.


Настройка HTTP ресурса

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

Важно

Помните, что каждое применение изменений конфигурации на сети CDN занимает до 15 минут. Во время применения изменений ресурс продолжает работать с предыдущей конфигурацией до полного обновления.

Рекомендации:

  • Тщательно проверьте все настройки перед применением изменений
  • Планируйте внесение изменений заранее, учитывая время на их применение
  • Если вы вносите несколько изменений, рассмотрите возможность внести их все за один раз, чтобы минимизировать общее время обновления

Конфигурация ресурса

Источник данных

Если у Вас несколько источников контента (primary/backup), то вы можете добавить их в Группу доменов и настроить приоритетность каждого. В случае, если источник с "первым приоритетом" будет недоступен, то сеть CDN автоматически переключится на следующий источник. Обратное переключение на приоритетный источник произойдёт автоматически, когда он будет снова работать в штатном режиме.

Каждому источнику можно настроить Вес и Max fails.

  • Вес (weight) это числовое значение, которое определяет, какую долю запросов должен получать конкретный сервер. Чем выше вес, тем больше запросов будет направлено на этот сервер. По умолчанию вес равен 1.

  • Max_fails - этот параметр определяет количество неудачных попыток соединения с сервером, после которых Nginx будет считать его недоступным на определенное время. По умолчанию max_fails равен 10.

Использовать HTTPS при запросе к источникам

По умолчанию запрос к источникам происходит по HTTPS. Здесь вы можете отключить использование HTTPS.

Так же вы можете включить проверку сертификата источника, выбрав соответствующую опцию.

Обратите внимание

Опция "Проверять сертификат источника" доступна только вместе с опцией "Использовать HTTPS при запросе к источникам".

Hostname при запросе к источнику

Если вы используете хостинг на таких сервисах, как Wix, Amazon S3, Selectel и т.д., обратите, пожалуйста, особое внимание на раздел Hostname.

У многих виртуальных хостингов (таких как Amazon S3) есть практика обслуживания нескольких сайтов с одного веб-сервера. Чтобы узлы сети CDN могли достучаться до вашего контента, вам нужно указать корректный Hostname.

Порядок действий, если вы не знаете свой Hostname:

  1. Зайдите на свой сайт и скопируйте ссылку на любую картинку, кликнув по ней правой кнопкой.
  2. Вставьте ссылку в новом окне браузера. Полученный домен и будет являться Источником контента для вашего сайта. Например, если у вас сайт размещён на Wix, источником контента будет выступать домен static.wixstatic.com
  3. Зайдите на ресурс https://check-host.net и укажите домен вашего сайта (не источника контента).
  4. На вкладке "Информация" посмотрите на "Имя ресурса" — это и есть ваш Hostname. Например, если у вас хостинг на Amazon, то Hostname может иметь вид: ec7-54-151-126-156.eu-west-1.compute.amazonaws.com
  5. Укажите полученный Hostname в личном кабинете

AWS авторизация

Вы можете использовать AWS авторизацию при запросе к источникам. Для этого необходимо выбрать соответствующую опцию и ввести два ключа: ключ доступа (access key) и секретный ключ (secret key).

Кеширование

Здесь вы можете указать время кэширования в зависимости от кода ответа (2xx, 3xx, 4xx, 5xx) и установить игнорирование заголовков управления кэшированием ("Expires" и "Cache-Control").

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

Обратите внимание

При вводе собственных значений времени кеширования контента, данные вводятся в секундах.

Игнорировать заголовки управления кешированием

Если в ответах источника контента (ориджина) уже содержатся заголовки Cache-Control и/или Expires, то кеширование производится на время, указанное в этих заголовках. Чтобы изменить это поведение необходимо включить Игнорировать заголовки управления кешированием. В этом случае кеширование будет производиться на время, заданное в этом разделе. Также заданное время кеширования будет использовано для ответов источника контента (ориджина), в которых не содержатся заголовки управления кешированием.

Обратите внимание

Некорректные значения заголовков (Expires с прошедшим временем, или Cache-control: private) отключают кеширование, что часто приводит к повышенной нагрузке на источник контента (ориджин).

Кешировать с учетом query string

При включении этой опции при кэшировании контента будут учитываться query string параметры.

Желаемый CNAME

CNAME-запись позволяет присваивать хосту псевдоним. Этот псевдоним обычно связывает с хостом определенную функцию или просто сокращает его имя.

По умолчанию ваш контент доступен по адресу: example.a.trbcdn.net/images/1.jpg

С CNAME вы можете настроить доступ по адресу: cdn.example.ru/images/1.jpg

  1. Создание CNAME-записи:

    • Откройте страницу управления DNS на сайте вашего DNS-хостинга
    • Создайте новую CNAME-запись со следующими параметрами:
      • Имя (Хост): "cdn" Примечание: В некоторых панелях управления может потребоваться указать полное имя поддомена, например, cdn.example.ru
      • Значение: example.a.trbcdn.net. (обратите внимание на точку в конце)
  2. Ожидание применения изменений:

    • Изменения в DNS могут вступить в силу в течение 72 часов
  3. Проверка настройки:

    • После истечения времени ожидания, проверьте доступность вашего контента по новому адресу
    • Используйте инструменты DNS-проверки для подтверждения корректности настройки

Раздача по HTTPS через CNAME (SSL-сертификат)

По умолчанию, после сохранения настроек, ваш контент будет доступен по HTTPS Стандартный URL будет иметь вид: https://example.a.trbcdn.net

Если вы планируете использовать SSL-сертификат, у вас есть два основных варианта:

a) Загрузить свой собственный сертификат:

  • Подготовьте свой SSL-сертификат заранее
  • Загрузите его до создания ресурса или после
  • Выберите загруженный сертификат из списка доступных при настройке ресурса

b) Выпустить сертификат Let's Encrypt:

  • Выберите опцию выпуска Let's Encrypt сертификата в настройках ресурса
  • Система автоматически сгенерирует и настроит сертификат для вашего ресурса

Оптимизация изображений $

Эта функция позволяет оптимизировать раздачу изображений и модифицировать их на лету.

Важно

В сервисе есть ограничение на размер файла - до 2 Мб. Файлы больше 2 Мб не обрабатываются и будут отдаваться в неизменном виде. Если вам нужно обрабатывать файлы тяжелее 2 Мб, обратитесь к вашему менеджеру или в саппорт.

Оптимизация раздачи изображений $

Данная услуга позволяет конвертировать изображения из форматов JPEG, GIF, PNG (.jpg, .jpeg, .png, .gif) в формат WEBP (.webp) на лету.
WebP — это формат, который использует продвинутый алгоритм сжатия, позволяющий уменьшить размер для некоторых изображений без видимых потерь в качестве (на 25-35%). Формат WebP поддерживает большинство современных браузеров.

Платформа анализирует HTTP-заголовок Accept из запроса пользователя к данным и определяет, поддерживает ли браузер пользователя формат WebP:

  • если поддерживает, то пользователь получает изображение в формате WebP;
  • если не поддерживает, то передается изображение в оригинальном формате.

Преобразование в формат WebP происходит автоматически в асинхронном режиме. Это означает, что:

  1. Вам не нужно предварительно менять код веб-ресурса и/или вид (формат) ссылок к изображениям.
  2. Сигналом к преобразованию изображения в формат WebP служит первый запрос со стороны конечного пользователя, который поддерживает формат WebP, к этому изображению. При этом в ответ на первый запрос может быть выдано изображение в исходном формате (во избежание задержки на преобразование), а после завершения преобразования на все последующие запросы к этому изображению будут отдаваться изображения в формате WebP (в случае его поддержки браузерами конечных пользователей).

Модификация изображений $

Позволяет изменять изображения на лету в момент запроса. Поддерживаются файлы с расширениями jpeg, jpg, gif, png и webp.

Модификации применяются через специальные URI вида /ioss(<параметр модификации>=<значение>)/

Доступные модификации:

Модификация Параметр модификации Возможные значения
Изменение качества quality 1-100
integer
Изменение размера resize=<width>x<height>,
resize=<width>,
resize=x<height>
1-4000
integer (pixels)
for <width>, <height>
Прогрессивный JPEG progressive y/n
Изменение качества (quality)
  • Параметр: quality
  • Значения: 1-100 (целое число)

Примеры запросов:

https://example.a.trbcdn.net/ioss(quality=70)/example.jpg

https://example.a.trbcdn.net/ioss(quality=1)/example.jpg

Изменение размера (resize)
  • Параметр: resize
  • Формат: <width>x<height>, <width>, или x<height>
  • Значения: 1-4000 (целое число, в пикселях)

Изменение размера без потерь возможно только в меньшую сторону.

Примеры запросов:

https://example.a.trbcdn.net/ioss(resize=400x300)/example.jpg

https://example.a.trbcdn.net/ioss(resize=x200)/example.jpg

Прогрессивный JPEG (progressive)

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

  • Параметр: progressive
  • Значения: y/n

Пример запроса: https://example.a.trbcdn.net/ioss(progressive=y)/example.jpg

Применение оптимизации и модификации
  1. Включите опцию "Оптимизация изображений" в настройках ресурса CDN
  2. Используйте специальные URI для применения нужных модификаций к изображениям
  3. Тестируйте различные параметры для достижения оптимального баланса между качеством и размером изображений

Конвертация видео

Эта услуга позволяет конвертировать MP4-файлы для раздачи по стриминговым протоколам HLS или MPEG-DASH.

Услуга может быть включена для всего ресурса, либо для определенного пути (правила).

Важно

Мы не поддерживаем контейнер Fragmented MP4 для данной услуги. Проверить контейнер файла вы можете с помощью команды MP4Box -info test.mp4

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


Ограничение доступа к контенту $

В этом разделе Вы можете установить ограничения раздачи контента в зависимости от страны и региона, IP адреса, referer, User-Agent или ограничения авторизации

Процесс конфигурации модуля
  1. Активируйте нужный Вам вид ограничения и выберите правило по умолчанию (запрещено или разрешено).
  2. Добавьте исключения из правила по умолчанию. Для гео ограничений также выберите правило для самого исключения. Таким образом Вы можете, например, запретить трафик для всей страны, при этом разрешить для отдельного региона.
  3. При необходимости задайте интервалы времени действия правила. Интервалы не должны пересекаться.
  4. Возможно добавить несколько различных правил каждого вида, при условии что их временные интервалы не пересекаются.

Авторизация по кодовому слову $

Описание логики работы:

Авторизация запросов пользователей выполняется исключительно в сети CDN, внешние ресурсы не используются. Решение о доступе к ресурсу принимается средствами нашей сети на основе критериев, обозначенных владельцем контента:

  1. Секретный ключ. Проверяется, что ссылка сформирована именно владельцем контента.
  2. URI запрашиваемого ресурса. Проверяется, что ссылка была сформирована именно для этого файла.
  3. IP-адрес пользователя (опционально). Проверяется, что ресурс запрошен именно с того IP-адреса, для которого была сформирована ссылка. Вы можете отключить проверку, выбрав опцию "Не учитывать IP адрес".
  4. Время окончания действия ссылки (опционально). Вы можете отключить проверку, выбрав опцию "Не ограничивать по времени".

В момент обращения пользователя к защищённому ресурсу владельцу контента необходимо сформировать специальную ссылку.

Пример ссылки с локальной авторизацией:

http://example.a.trbcdn.net/md5(kymJ2w55VH4LUMSKGb6ZqA,1704067200)/path/to/file

Ссылка содержит авторизационный параметр md5(<md5 hash>[,<expires>]) в пути:

  • <md5 hash> — хэш MD5 в формате Base64 for URL, сгенерированный на основе секретного ключа, URI запрошенного ресурса, IP-адреса пользователя (опционально) и времени жизни ссылки (опционально);
  • <expires> — время окончания действия ссылки в формате POSIX time (необязательный параметр).

При обращении к контенту с использованием сгенерированной ссылки, CDN вычисляет значение MD5 и сравнивает его с полученным. Если значение MD5 не совпадает, то пользователю возвращается ответ с кодом 403 Forbidden (запрет на получение).

Если текущее время превышает значение <expires>, то пользователю возвращается ответ с кодом 410 Gone (целевой ресурс больше недоступен).

Алгоритм генерации MD5-хэша (<md5_hash>) для подписи ссылок:

  • Формируем строку для подписи <secret_word><path_to_file><ip><expire_time>. Элементы <ip> и/или <expire_time> не добавляются в строку для подписи, если в настройках локальной авторизации указано Не учитывать IP адрес и/или Не ограничивать по времени.
  • Генерируем base64_url через base64_url(md5(<строка для подписи>)).
  • Формируем подпись <md5 hash>, выполняя следующие замены в base64_url:
    • символ = заменяем на пустую строку ''
    • символ + заменяем на -
    • символ / заменяем на _
  • Формируем ссылку, используя полученную подпись <md5 hash>.

Обратите внимание

  1. Доменная часть URI при вычислении хэша не используется
  2. Можно подписывать часть пути (например, для /path/to/file можно подписать сам файл, /path/to, /path)
  3. При генерации MD5 в URL не должно быть символов в формате urlencode, а должны быть исходные символы: кириллица, пробелы, проценты и т.д. Запрашивать с этим хешом необходимо кодированный вариант URL.
  4. Хэш MD5, вычисленный для HTTP, является базовым для данного ресурса, то есть один и тот же хэш будет использован для ссылок на файл по протоколам HTTP и HTTPS, несмотря на то что URI для разных протоколов может немного отличаться.

Пример генерации ссылки:

  1. Есть следующие входные данные:

    • Секретный ключ: zah5Mey9Quu8Ea1k
    • IP-адрес пользователя: 1.2.3.4
    • URI ресурса для HTTP: http://example.a.trbcdn.net/path/to/file
    • Время окончания действия ссылки: 1704067200
  2. Формируем строку для подписи <secret_word><path_to_file><ip><expire_time>. Допустим, что мы учитываем и IP адрес, и время окончания действия ссылки.

    Тогда строка для подписи выглядит так: zah5Mey9Quu8Ea1k/path/to/file1.2.3.41704067200

  3. Формируем подпись <md5 hash>:

    Пример на PHP:

    $ php -r 'print str_replace("=", "",strtr(base64_encode(md5("zah5Mey9Quu8Ea1k/path/to/file1.2.3.41704067200", TRUE)), "+/", "-_")) . "\n";'
    kymJ2w55VH4LUMSKGb6ZqA
    

    Пример на Python:

    #!/usr/bin/python3
    import base64
    import hashlib
    
    secret_word = 'zah5Mey9Quu8Ea1k'
    path = '/path/to/file'
    ip_address = '1.2.3.4'
    expiration_timestamp = 1704067200
    
    def generate_local_signature(secret_word, path, ip_address=None, timestamp=None):
        string_to_sign = f'{secret_word}{path}'
        if ip_address is not None:
            string_to_sign = f'{string_to_sign}{ip_address}'
        if timestamp is not None:
            string_to_sign = f'{string_to_sign}{timestamp}'
    
        hashed_string = hashlib.md5(string_to_sign.encode()).digest()
        decoded_base64_string = base64.b64encode(hashed_string).decode()
        local_signature = decoded_base64_string.replace('+', '-').replace('/', '_').replace('=', '')
        return local_signature
    
    print(generate_local_signature(secret_word, path, ip_address, expiration_timestamp))
    # kymJ2w55VH4LUMSKGb6ZqA
    

  4. Итоговая ссылка:

    http://example.a.trbcdn.net/md5(kymJ2w55VH4LUMSKGb6ZqA,1704067200)/path/to/file

Авторизация по внешнему скрипту $

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

Решение о доступе к контенту принимается на основе ответа вашего скрипта, ссылку на который Вы указываете в личном кабинете при создании/редактировании ресурса.

Если от скрипта авторизации пришел ответ со статусом 200, то доступ к контенту разрешен. В противном случае - доступ запрещен.

Авторизационному скрипту передаются следующие заголовки:

  • Host: содержит имя домена, для которого предназначен запрос;
  • X-Request-URI: содержит URI запрашиваемого ресурса;
  • X-Forwarded-For: содержит реальный IP-адрес пользователя, который запрашивает ресурс;
  • X-Remote-Addr: содержит IP-адрес пользователя, который запрашивает ресурс, или прокси-сервера.

Экспертные настройки

Внимание!

Этот раздел предназначен для продвинутых пользователей и позволяет тонко настроить работу CDN ресурса.

Использовать HTTP2

По умолчанию поддерживается протокол HTTP/2.0. Отключите эту опцию, если поддержка данного протокола не требуется.

Использовать только HTTPS

Если Вы хотите использовать только протокол HTTPS - активируйте данную опцию.

Обратите внимание

Если Вы включили доступ к контенту только по HTTPS, то на все запросы по HTTP будет возвращен ответ с кодом "403 Forbidden" (запрет доступа).

Автоматически перенаправлять HTTP на HTTPS

По умолчанию ваш контент будет доступен с узлов Global Cloud Network как по протоколу HTTP, так и по протоколу HTTPS. Но Вы можете настроить автоматическое перенаправление, используя данную опцию.

Обратите внимание

Если Вы настроили перенаправление HTTP на HTTPS, то на запросы по HTTP будет возвращён ответ с кодом "301 Redirected" (перенаправлено).

Использовать только современные версии TLS

По умолчанию используются все версии протокола TLS, но Вы можете подключить использование исключительно новых версий протокола TLS (v1.2, v1.3).

Использовать сильные SSL шифры

Вы можете подключить использование сильных SSL шифров.

Обратите внимание

Доступно только вместе с опцией "Использовать только современные версии TLS".

Следовать редиректам

По умолчанию кешируются только ответы с кодами "301 Moved Permanently"/"302 Found" при их получении от вашего ориджина. Активируйте эту опцию для возможности перехода по адресам редиректа и кэширования контента.

Поисковая индексация

Внимание!

По умолчанию мы исключаем из индексации CDN-ссылки, чтобы поисковые роботы не видели "зеркало" вашего сайта. Если робот поймает "зеркало" вашего сайта — это может привести к исключению сайта из индексации. Только опытным пользователям рекомендуется работать с этим разделом.

При помощи этой настройки Вы можете тонко настроить индексацию вашего контента поисковыми роботами. Можно настроить проксирование вашего файла robots.txt или загрузить его со своего устройства к нам на портал. Перед проксированием или загрузкой вашего robots.txt мы рекомендуем сперва проверить правильность его заполнения на специальном ресурсе.

Заголовки

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

Таймауты

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

Проверка CORS на стороне CDN

Описание

В определённых случаях обращение к контенту, размещённому в сети CDN, расценивается браузером как кросс-доменный запрос и блокируется. В первую очередь это касается шрифтов. Проблема решается выставлением заголовков CORS (Cross-Origin Resource Sharing) для кэшируемых объектов.

Вариантов два:

  1. Вы сами выставляете заголовки CORS на сервере-источнике и отключаете их проверку в нашей сети.
  2. Вы настраиваете проверку CORS через наш личный кабинет.
Настройка через личный кабинет

Механизм проверки CORS, предоставляемый для конфигурации, основывается на работе нашего собственного модуля. Его функциональность базируется на рекомендациях W3C.

Основные принципы работы модуля:

  1. При включенном CORS заголовки Access-Control-* от ориджина не учитываются ни при каких условиях и удаляются из ответа.

  2. Запрос без заголовка Origin не является кросс-ресурсным и заголовки Access-Control-* клиенту не передаются.

  3. Заголовки Access-Control-Request-* не добавляются нашим модулем ни при каких условиях, т.к. это входящие заголовки запроса, формируемые браузером, как и Origin.

  4. При наличии заголовка Origin его содержимое проверяется на соответствие с заданным пользователем. В случае отсутствия ограничений заголовок Access-Control-Allow-Origin ответа будет содержать "*", в случае наличия ограничений и попадания Origin в список разрешенных ACAO будет содержать http(s?)://${http_origin}, в любом другом случае ответ заголовков Access-Control-* содержать не будет.

  5. Заголовок Access-Control-Expose-Headers добавляется в том случае, если такие заголовки заданы пользователем. По умолчанию мы проставляем разрешение на доступ к Content-Range для работы range-запросов (для плееров на JS).

  6. Заголовок Access-Control-Allow-Credentials (ACAC) выставляется в соответствии с заданным пользователем.

  7. Заголовки Access-Control-Allow-Methods, Access-Control-Allow-Headers и Access-Control-Max-Age проставляются только в ответе на запрос с методом OPTIONS, который обрабатывается локально и на ориджин не передается.

  8. Заголовок Access-Control-Allow-Methods выставляется равным содержимому заголовка Access-Control-Request-Method в случае его наличия и попадания его содержимого в список простых запросов (GET, HEAD, POST), либо в список, заданный пользователем. Если метод не попадает в список разрешенных - ответ заголовков Access-Control-* содержать не будет. В случае отсутствия в запросе Access-Control-Request-Method Access-Control-Allow-Methods не выставляется.

  9. Access-Control-Allow-Headers выставляется равным содержимому заголовка Access-Control-Request-Headers в случае его наличия, наличия заголовка запроса Access-Control-Request-Method и попадания всех заголовков в список простых (Accept, Accept-Language, Content-Type, Content-Language) либо в список, заданный пользователем. Если хотя бы один заголовок не попадает в список разрешенных - ответ заголовков Access-Control-* содержать не будет. В случае отсутствия в запросе Access-Control-Request-Method и Access-Control-Request-Headers Access-Control-Allow-Headers не выставляется.

  10. Заголовок Access-Control-Max-Age выставляется в соответствии с заданным пользователем, по умолчанию не выставляется.

  11. Дополнительные заголовки ответа, определяемые клиентом, добавляются/переопределяются после отработки модуля CORS и, например, Access-Control-Alow-Origin: * в секции заголовков будет добавлен вне зависимости от результатов работы модуля CORS.

Процесс конфигурации модуля

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

Вы можете внести корректировки в работу модуля, задав следующие параметры:

Разрешенные домены (по умолчанию не проверяется, все домены разрешены)

Значение можно задавать одним из следующих способов:

  1. example.com - точное соответствие
  2. *.example.com - все поддомены example.com, не включая example.com
  3. .example.com - все домены 3го уровня, включая example.com
  4. ~a\d+\.example.com - регулярное выражение

Безопасные заголовки запроса

По умолчанию разрешены Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma. Вы можете дополнить этот список своими заголовками.

Заголовки, доступные API верхнего уровня (Expose Headers)

По умолчанию разрешены Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma. Вы можете дополнить этот список своими заголовками.

Безопасные методы

По умолчанию разрешены GET, HEAD, POST. Вы можете дополнить этот список своими методами.

Заголовок Access-Control-Allow-Credentials

Cookies, сессионность, авторизация несовместимы с кеширующими сервисами ввиду логики своей работы. Однако, если у Вас возникает необходимость выставить заголовок Access-Control-Allow-Credentials, Вы можете сделать это.

Время жизни ответа Preflight запроса

Время, в течение которого результат ответа Preflight запроса считается актуальным.

Внимание!

Вне зависимости от включения/выключения CORS авторизации и результатов ее работы Вы можете вручную переопределить любой из заголовков в ответе конечным пользователям. Для этого укажите его название и желаемое значение в секции "Заголовки". Значение авторизационных заголовков будет заменено на указанное вами после этапа проверки CORS.

Сжатие Brotli $

Данная опция позволяет включить сжатие brotli.

Brotli — это алгоритм сжатия данных без потерь с открытым исходным кодом, предложенный компанией Google в 2015 году. Он использует словарь с часто встречающимися последовательностями строк в текстовых файлах (напр. .css, .js), что позволяет достичь для них в среднем на 20% большей степени сжатия в сравнении с gzip. Может подключаться как для всего ресурса в целом, так и по правилам для конкретных путей через интерфейс ЛК. Возможна работа только по HTTPS.

Сжатие возможно для следующих типов файлов:

  • application/javascript
  • application/json
  • application/vnd.apple.mpegurl
  • application/vnd.ms-fontobject
  • application/x-font-opentype
  • application/x-font-truetype
  • application/x-font-ttf
  • application/x-javascript
  • application/xml
  • application/xml+rss
  • font/eot - font/opentype
  • font/otf - image/svg+xml
  • image/vnd.microsoft.icon
  • image/x-icon
  • text/compressible
  • text/css
  • text/javascript
  • text/xml

Для корректной работы сжатия браузер должен посылать заголовок Accept-Encoding: br (поддерживается в браузерах на базе Chrome 49+, Firefox 44+, Opera 36+).


Правила

Данный раздел предназначен для более тонкой настройки работы CDN-сети. Индивидуальные правила для какого-либо раздела/пути и позволяют управлять заголовками, кэшированием, CORS, авторизацией и другими параметрами.

Создание правила

Для создании правила укажите путь до директории или к конкретному файлу, к которому нужно применить данное правило.

Заголовки

Заголовки для определенного пути (правила) настраиваются аналогично опции для всего ресурса.

Кэширование

Кеширование для определенного пути (правила) настранивается аналогично опции для всего ресурса.

Оптимизация изображений

Оптимизация изображений для определенного пути (правила) настраивается аналогично опции для всего ресурса.

Конвертация видео

Конвертация видео для определенного пути (правила) настраивается аналогично опции для всего ресурса.

Ограничение доступа к контенту $

Ограничения для определенного пути (правила) настраиваются аналогично ограничениям для всего ресурса.

Сжатие Brotli $

Сжатие Brotli для определенного пути (правила) настраивается аналогично опции для всего ресурса.

Проверка CORS на стороне CDN

Проверка CORS на стороне CDN для определенного пути (правила) настраивается аналогично опции для всего ресурса.