Раздел Контент
HTTP-код ответа для размещённого в CDN контента
Данная опция позволяет настроить отдачу выбранного 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 для перенаправления запросов
Настройка 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-документации обратитесь в службу технической поддержки MWS по адресу support@cloud.mts.ru.
Настройка сжатия на CDN (GZip, Brotli)
Если требуется, чтобы конечные пользователи получали контент в сжатом виде, возможно настроить сжатие на источнике или воспользоваться предложенными ниже опциями сжатия на CDN.
Важно
Если в запросе к CDN браузер пользователя не отправляет заголовков с перечислением поддерживаемых форматов сжатия, например «Accept-Encoding: gzip, deflate, br», контент отдается без сжатия.
Сжатие на 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жатие на сервере-источнике должно происходить по методу GZip.
Важно
Если на сервере-источнике сжатие происходит по методу Brotli, CDN забирает несжатый контент, если не настроено иного.
Если на сервере-источнике настроено сжатие Brotli, но требуется, чтобы CDN забирал сжатый контент, необходимо настроить источник таким образом, чтобы при запросе файла Gzip он отправлял файл Brotli.
Особенности опции
- CDN-серверы не будут разжимать контент при доставке пользователю даже при условии, если браузер клиента не поддерживает сжатие; такие случаи маловероятны
- опция не работает совместно с опцией Сжатие GZip, так как они являются взаимоисключающими
Сжатие без настроек на 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-серверов будет храниться несжатая версия файла. Вне зависимости от того, запрашивает ли конечный пользователь сжатие или нет, из кэша будет отдаваться несжатый файл.