tocdepth

2

Настройка и проверка параметров кеширования на CDN-серверах

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

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

  • Если значения заголовка совпадают, CDN продолжает отдавать пользователям имеющийся в кеше файл в течение еще одного периода времени, заданного для хранения контента в кеше CDN.

Валидация источника гарантирует, что CDN-серверы выполняют проверку подлинности SSL-сертификата на сервере-источнике и проверку ответившего сервера на принадлежность клиенту при установке соединения.

Настройка кеширования на CDN-сервере

Опция кеширования задает время хранения контента в кеше CDN-серверов. Можно задать настройки на CDN или использовать настройки источника.

При выборе опции Задать настройки на CDN CDN-серверы запрашивают контент с источника и кешируют его на указанное время:

  • В настройках можно указать время жизни кеша для запросов с кодами ответа 200, 206, 301 и 302.

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

При выборе опции Использовать настройки источника CDN-серверы ориентируются на заголовок Cache-Control и кешируют контент на указанное время. Опция применяется для запросов с кодами ответа 200, 201, 204, 206, 301, 302, 303, 304, 307 и 308.

Чтобы настроить кеширование на CDN-сервере:

  1. В личном кабинете CDN перейдите в раздел CDN → CDN-ресурсы и нажмите на нужный CDN-ресурс.

  2. В разделе Общие нажмите Кеширование на CDN.

  3. В разделе Кеширование на CDN укажите нужные настройки.

Настройка кеширования на источнике

По умолчанию CDN наследует заголовки от источника. Заголовок должен содержать директивы public и max-age.

Добавьте заголовок Cache-Control в файл .htacess или nginx.conf на сервере.

Пример конфигурации Apache:

<ifModule mod_headers.c>   <FilesMatch "\.(gif|ico)$">       Header set Cache-Control "max-age=31536000, public"   </FilesMatch>     <FilesMatch "\.(js)$">       Header set Cache-Control "max-age=31536000,               public"   </FilesMatch>   </ifModule>

Пример конфигурации Nginx:

server {     #...     location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {       add_header Cache-Control "max-age=88000,  public";     }     #...  }

Проверка настроек кеширования

С помощью команды curl в terminal для MacOS или cmd для ОС Windows проверьте, какие заголовки кеширования используются при запросе файла, интегрированного с CDN.

  1. Выполните команду curl -I http://cdn.cloud.ru/js/intlTelInput/css/intlTelInput.css.

    Используйте ссылку на файл, интегрированный с CDN.

  2. В выводе команды обратите внимание на заголовки Cache-Control, Cache, X-Cached-Since и X-Node.

    Описание заголовков приводится ниже.

  3. Если контент не кешируется, проверьте настройки на источнике или обратитесь в техническую поддержку.

Заголовки

Ниже приводится список заголовков кеширования, которые поддерживаются CDN-серверами для проверки кеширования.

Cache-Control

Совместимые с CDN параметры HTTP-заголовка Cache-Control:

  • Cache-Control: Max-Age — задает время жизни файла в кеше в секундах.

  • Cache-Control: Public — кешировать файл сможет не только конечный клиент пользователя, но и прокси-серверы, и CDN-серверы.

Не совместимые с CDN параметры HTTP-заголовка Cache-Control:

  • Cache-Control: Private — директива, противоположная public. Файл не кешируется промежуточными прокси.

  • Cache-Control: No-cache — клиент должен делать запрос на сервер каждый раз при обращении к файлу.

Cache

Проверить источник отправки контента по значению заголовка Cache:

  • Cache: HIT — файл отдан из кеша CDN.

  • Cache: MISS — файл запрошен с источника.

X-Node

Проверить сервер CDN отправки контента по значению заголовка X-Node:

  • X-Node: [m9-up-e245] — файл отдан с сервера m9-up-e245.

X-Cached-Since

Узнать время кеширования контента на CDN-сервере по значению заголовка X-Cached-Since:

  • X-Cached-Since: 2017-06-09T12:51:43+00:00 — время, с которого файл находится в кеше узла CDN.

Запустили Evolution free tier
для Dev & Test
Получить