Page tree
Skip to end of metadata
Go to start of metadata

Данная опция позволяет настроить отдачу выбранного HTTP-кода для контента, размещенного в CDN. Она полезна, если необходимо, чтобы пользователям при запросе определенного файла отдавался, например, код 403. Или для настройки редиректа на другой URL.

Функция доступна в дополнительных настройках СDN-ресурса и разделе Правила.

Чтобы активировать данную опцию:

  • перейдите в дополнительные настройки
  • перейдите в раздел Контент
  • включите опцию "Задать код ответа"

  • в поле Код ответа введите код
  • укажите URL для редиректа или текст для кода ответа, если это необходимо
В поле можно ввести только один код.
При активации опции «Код ответа» в дополнительных настройках ресурса, опция будет применена ко всему контенту.

Данная функция необходима для ускорения кеширования файлов больших размеров. Файл будет запрашиваться и храниться в кеше частями по 10 МБ. Источник должен поддерживать HTTP Range request.

Пример

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

Если запрос был "Range: bytes=123537047-123545047", то с источника CDN заберет в диапазоне bytes 115343360-125829119 и закеширует эту часть файла. При этом пользователю отдастся запрашиваемый им диапазон 123537047-123545047.

Особенности опции:

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

  • если для ресурса используется группа источников, файлы на каждом из используемых источников должны содержать одинаковые заголовки Content-Length и Etag

Настройка Rewrite используется для изменения и перенаправления пути запроса. Опция работает в соответствии с конфигурацией nginx.

Для активации опции:

  • перейдите в дополнительные настройки
  • перейдите в раздел Контент
  • включите опцию "Включить Rewrite"
Rewrite также доступен в разделе Правила.
  • в поле Rewrite body после активации опции отображаются значения, заданные по умолчанию
  • очистите поле и введите через пробел две директивы:
    • путь, к которому будет применяться Rewrite
    • на что должен меняться указанный путь; используйте регулярные выражения

Настройка Rewrite

Пример

Есть необходимость применить Rewrite ко всему ресурсу, чтобы CDN обращался за контентом в определенную папку на вашем источнике. 

Предположим, ваш источник example.com. Необходимо забирать контент из директории example.com/media/.

В таком случае пропишите в поле Rewrite следующие параметры: /(.*) /media/$1, где:

  • /(.*) — к чему применяется Rewrite; группа переменных (.*) позволяет применить Rewrite ко всем возможным вариантам того, что будет идти после / в example.com/
  • /media/ — директория, в которую будут уходить запросы
  • $1 — порядковый номер группы переменных; если групп больше одной, то следующие номера будут $2, $3 и так далее

Флаг break применяется к опции по умолчанию и не отображается в поле. Применить к опции другие флаги можно через API.

Для получения подробной информации об API-документации обратитесь в службу технической поддержки #CloudMTS по адресу support@cloud.mts.ru.

Если требуется, чтобы конечные пользователи получали контент в сжатом виде, возможно настроить сжатие на источнике или воспользоваться предложенными ниже опциями сжатия на CDN. 

Если в запросе к CDN браузер пользователя не отправляет заголовков с перечислением поддерживаемых форматов сжатия, например «Accept-Encoding: gzipdeflatebr», контент отдается без сжатия.

Сжатие на CDN: GZip и Brotli

CDN-серверы поддерживают Сжатие GZip и Сжатие BrotliС источника всегда будет запрашиваться несжатая версия файла.

По умолчанию эти опции выключены. Для включения:

  • перейдите дополнительные настройки
  • перейдите в раздел Контент
  • выберите один из вариантов сжатия файлов

  • включите нужную опцию
  • сохраните изменения

Сжатие GZip

Gzip — метод сжатия данных. Степень сжатия при использовании GZip обычно 70%, но может достигать и 90%. 

Расширения файлов, поддерживающих GZip-сжатие:

  • application/javascript
  • application/json
  • application/x-javascript
  • application/xml
  • application/xml+rss
  • text/css
  • text/html
  • text/javascript
  • text/plain
  • text/xml
  • image/svg+xml

Форматы файлов изображений (jpeg, jpg, png), а также видеоролики, PDF-файлы и другие двоичные форматы уже сжаты. Использование GZip на них не предоставляет дополнительных преимуществ, а наоборот увеличивает размер файлов - растет нагрузка на их распаковку.

Опция «Сжатие GZip» не работает совместно с опцией «Запрашивать сжатие на источнике».

Сжатие Brotli

Brotli – алгоритм сжатия данных, по степени сжатия в несколько раз превосходит GZip метод. Минимальный размер сжимаемого файла - 128 байт.

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

Для активации опции «Шилдинг» обратитесь в поддержку.

В поле Типы данных возможно самостоятельно задать типы сжимаемого контента. Некоторые расширения уже выбраны по умолчанию:

  • application/javascript
  • application/json
  • application/x-javascript
  • application/xml
  • application/xml+rss
  • text/css
  • text/html
  • text/javascript
  • text/plain
  • text/xml

Также доступны:

  • application/vnd.ms-fontobject
  • application/x-font-ttf
  • image/x-icon
  • image/svg+xml

Возможно добавлять и удалять все указанные выше типы. Исключением является «text/html», данный тип выбран всегда, его удаление невозможно.

Опция «Сжатие Brotli» не работает совместно с опцией «Запрашивать сжатие на источнике».

Сжатие Brotli + Сжатие GZip

Возможна активация обоих вариантов сжатия контента одновременно.

Метод сжатия данных будет зависеть от:

  • типа обрабатываемого файла
  • настроек опции «Сжатие Brotli»
  • поддерживает ли браузер пользователя тот или иной тип сжатия

Если выбранные MIME-типы в опции «Сжатие Brotli» совпадают с расширениями файлов по умолчанию для опции «Сжатие GZip», указанными выше, алгоритм сжатия Brotli будет иметь больший приоритет, но только в том случае, если браузер пользователя поддерживает такой тип сжатия.

Если в настройках опции «Сжатие Brotli» будет отсутствовать MIME-тип, который поддерживается методом сжатия Gzip, файлы данного расширения будут сжиматься по методу GZip.

Пример

Активированы обе опции. В Типах Данных опции «Сжатие Brotli» указали text/html и application/json.

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

Если браузер пользователя поддерживает сжатие по алгоритму Brotli, контент будет сжат на шилдинге источника, так как несмотря на поддержку этих MIME-типов методом сжатия GZip, алгоритм сжатия Brotli имеет больший приоритет.

Если браузер не поддерживает сжатие Brotli, файлы будут сжаты по методу GZip.

При запросе пользователем файла с расширением application/x-javascript данные будут сжаты на CDN по методу GZip, так как в параметрах опции «Сжатие Brotli» в данном случае такое расширение отсутствует.

Описанный вариант взаимодействия опций «Сжатие Brotli» и «Сжатие GZip» осуществим только при наличии включенной опции «Шилдинг».

Для активации опции «Шилдинг» обратитесь в поддержку.

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

При активной опции «Запрашивать сжатие на источнике» в основных настройках ресурса активировать опции «Сжатие Gzip»«Сжатие Brotli» или обе опции в правилах ресурса невозможно.

  • чтобы сжатие всех файлов на CDN происходило по выбранному методу сжатия и для попадающих под правила файлов запрашивалось сжатие на источнике, необходимо:
    • в основных настройках ресурса включить опции «Сжатие Gzip», «Сжатие Brotli» или обе опции
    • в правилах ресурса установить включить опцию «Запрашивать сжатие на источнике»
  • чтобы настроить сжатие всех файлов на источнике и установить сжатие по одному из методов для попадающих под правила файлов, необходимо:
    • в основных настройках ресурса включить опцию «Запрашивать сжатие на источнике»
    • в настройках правила:
      • добавить опцию «Запрашивать сжатие на источнике», оставить ее выключенной
      • добавить и включить необходимый метод сжатия: «Сжатие Gzip», «Сжатие Brotli» или обе опции

Cжатие на источнике

Опция «Cжатие на источнике» позволяет сократить полосу между сервером-источником и CDN-серверами и увеличить скорость отдачи контента благодаря сокращению времени на сжатие файла на стороне CDN.

Активация опции «Запрашивать сжатие на источнике» доступна в настройках ресурса раздела Контент.

Если данная опция активна, CDN-серверы забирают сжатый контент с сервера-источника.

Cжатие на серверe-источнике должно происходить по методу GZip.

Если на сервере-источнике сжатие происходит по методу Brotli, CDN забирает несжатый контент, если не настроено иного.

Если на сервере-источнике настроено сжатие Brotli, но требуется, чтобы CDN забирал сжатый контент, необходимо настроить источник таким образом, чтобы при запросе файла Gzip он отправлял файл Brotli.

Особенности опции

  • CDN-серверы не будут разжимать контент при доставке пользователю даже при условии, если браузер клиента не поддерживает сжатие; такие случаи маловероятны
  • опция не работает совместно с опцией «Сжатие GZip», так как они являются взаимоисключающими

Сжатие без настроек на CDN

Источник поддерживает сжатие

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

На источнике должны быть настроены два HTTP-заголовка: VaryAccept-Encoding и Content-Encoding.

При обработке запроса от конечных пользователей CDN-серверы проверяют HTTP-заголовок Accept-Encoding. Если в заголовке содержится gzip и/или deflate, brозначающие возможность браузера обрабатывать сжатый контент, то CDN запросит с источника сжатую версию файла. Если таких директив нет, сервер отдаст несжатый файл.

Если на сервере не настроен заголовок Vary: Accept-Encoding, в CDN закешируется файл, который был запрошен первым (сжатый или нет). Это может вызывать сложности с отображением контента у конечного пользователя. 

Пример

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

Если заголовок Vary: Accept-Encoding настроен, в кеше CDN-серверов хранятся две версии файла. 

Источник не поддерживает сжатие

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

  • No labels