Кэширование¶
Распределенное кэширование данных является одной из технологий Платформы и во многом определяет ее эффективность в части повышения доступности и скорости загрузки данных. Чем больше данных размещено в кэше серверов доставки, тем быстрее они загружаются на устройства пользователей и тем меньше нагрузка на сервер оригинации.
Кэширование является базовой функциональной возможностью сервиса Edge Content Delivery.
На Платформе доступно две схемы кэширования данных:
- Без промежуточного кэширования данных: данные кэшируются только на серверах доставки.
- С промежуточным кэшированием данных: данные кэшируется на серверах доставки и серверах промежуточного кэширования.
Схема с промежуточным кэшированием данных позволяет сократить количество запросов к серверам оригинации со стороны распределенных серверов доставки, так как эта нагрузка обслуживается серверами промежуточного кэширования:
- Серверы промежуточного кэширования размещены между серверами доставки и серверами оригинации на пути следования запроса от источника запроса к источнику данных.
- Количество серверов промежуточного кэширования меньше, чем серверов доставки. При этом серверы промежуточного кэширования обладают большей в сравнении с серверами доставки областью кэширования данных.
Для реализации схемы кэширования с промежуточным кэшированием данных в составе вашего Аккаунта должен быть включен сервис Origin Shield.
Добавление дополнительного слоя кэширования увеличивает задержку для данных, запрашиваемых первый раз и еще не находящихся в кэш памяти, и уменьшает задержку для ранее закэшированных данных.
В обеих схемах кэширования данные попадают в кэш серверов доставки при первом запросе пользователя к объекту:
- Пользователь обращается к данным.
- Сервер доставки проверяет наличие объекта в кэше и его актуальность.
- Если объект находится в кэше и актуален, то он отдается пользователю.
- Если объекта нет в кэше или он не актуален, он загружается с сервера оригинации в кэш сервера доставки и отдается пользователю.
- Пользователь обращается к данным.
- Сервер доставки проверяет наличие объекта в кэше и его актуальность.
- Если объект находится в кэше сервера доставки и актуален, то он отдается пользователю.
- Если объекта нет в кэше сервера доставки или он не актуален, то сервер доставки обращается к серверу промежуточного кэширования.
- Сервер промежуточного кэширования проверяет наличие объекта в кэше и его актуальность.
- Если объект находится в кэше сервера промежуточного кэширования и актуален, то он отдается пользователю через сервер доставки, который обратился за этим объектом.
- Если объекта нет в кэше сервера промежуточного кэширования или он не актуален, то он загружается с сервера оригинации в кэш сервера промежуточного кэширования и далее в кэш сервера доставки и, в конечном итоге, отдается пользователю.
Управление кэшированием на Платформе определяется комбинацией настроек, задаваемых:
- инженерами NGENIX в внутренних системах управления Платформы;
- заказчиками в клиентском портале NGENIX Multidesk и/или в HTTP-заголовках на сервере оригинации.
Управление кэшированием на Платформе
Базовые принципы кэширования¶
- Серверы доставки и серверы промежуточного кэширования имеют независимый кэш, таким образом объект может находиться в кэше одних серверов и отсутствовать на других.
- Для каждой Сервисной конфигурации используется отдельная область кэширования на серверах доставки и серверах промежуточного кэширования данных.
- Кэшируются только ответы, которые были инициированы запросами с HTTP-методами GET или HEAD.
- Серверы доставки при кэшировании данных учитывают регистр букв в URL, поэтому имя файлов на сервере оригинации должно совпадать с именем запрашиваемого файла через URL с учетом регистра.
- Если к сохраненным в кэше данным в течении 3 суток не было ни одного запроса, данные удаляются из кэша, несмотря на значение директивы
max-ageHTTP-заголовкаCache-Controlили HTTP-заголовкаExpires. - Если в NGENIX Multidesk в настройках ключа кэширования включен ключ кэширования Аргументы, то кэширование объекта происходит с учетом аргументов запроса, то есть, URL вида
https://www.example.com/css/style.css?version=1иhttps://www.example.com/css/style.css?version=2будут разными объектами с точки зрения кэша. - Содержимое HTTP-заголовка
Varyне учитывается при кэшировании. - Серверы доставки могут отдать пользователю неактуальные данные из кэша, если по каким-то причинам не могут получить новые данные с сервера оригинации (таймаут соединения и т.п.).
На Платформе доступны следующие способы управления правилами кэширования:
- Выставление HTTP-заголовков на сервере оригинации.
- Изменение настроек кэширования в клиентском портале NGENIX Multidesk.
Если вы обновили данные на сервере оригинации и необходимо оперативно применить изменения в кэше серверов доставки, а также если в кэше серверов доставки находится объект, распространение которого необходимо немедленно прекратить, то вы можете удалить конкретные объекты или полностью очистить кэш серверов доставки и серверов промежуточного кэширования.
Как удалить закэшированные данные
Вы можете управлять правилами кэшированием на Платформе только для Сервисных конфигураций с типом архитектуры Проксирование/кэширование содержимого веб-ресурса. В остальных случаях правила кэширования определяются инженерами NGENIX и не могут быть изменены.