Перейти к содержимому

Раздел Контент

HTTP-код ответа для размещённого в CDN контента

Заголовок раздела «HTTP-код ответа для размещённого в CDN контента»

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

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

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

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

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

Оптимизация доставки. Включение оптимизации доставки больших файлов

Заголовок раздела «Оптимизация доставки. Включение оптимизации доставки больших файлов»

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

Пример:

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

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

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

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

Настройка Rewrite для перенаправления запросов

Заголовок раздела «Настройка Rewrite для перенаправления запросов»

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

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

  • перейдите в дополнительные настройки
  • перейдите в раздел Контент
  • включите опцию Включить Rewrite
Примечание

Rewrite также доступен в разделе Правила.

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

Пример:

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

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

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

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

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

Примечание

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

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

Важно

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

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

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

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

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

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 – алгоритм сжатия данных, по степени сжатия в несколько раз превосходит 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
  • поддерживает ли браузер пользователя тот или иной тип сжатия

Если выбранные 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жатие на источнике позволяет сократить полосу между сервером-источником и CDN-серверами и увеличить скорость отдачи контента благодаря сокращению времени на сжатие файла на стороне CDN.

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

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

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

Важно

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

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

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

Если требуется, чтобы через 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-серверов будет храниться несжатая версия файла. Вне зависимости от того, запрашивает ли конечный пользователь сжатие или нет, из кэша будет отдаваться несжатый файл.