Кеширование. Настроить и проверить параметры кеширования на CDN-серверах
Опубликовано Алексей Караульных on 26 February 2023 15:28
|
|
Вы можете задать время хранения контента в кеше CDN-серверов. После того как время хранения кеша истекает, CDN-серверы обращаются к файлу, находящемуся на источнике, чтобы сравнить HTTP-заголовок Etag.
Задать параметры кешированияОпция Кеширование на CDN задаёт время хранения контента в кеше CDN-серверов. У неё есть два варианта работы:
Задать настройки на CDNCDN-серверы запрашивают контент с источника и кешируют его на время, заданное в опции «Задать настройки на CDN». Настройка имеет два параметра:
Используйте параметр Время жизни кеша, чтобы задать время хранения кеша для запросов с кодами ответа 200, 206, 301, 302. 4xx и 5xx коды ответа кешироваться не будут. Используйте параметр Расширенные правила кеширования, чтобы задать время хранения кеша для запросов с другими кодами ответа или, чтобы переопределить некоторые из кодов параметра Время жизни кеша. Значения параметра Расширенные правила кеширования имеют больший приоритет, чем значения параметра Время жизни кеша. Например: В настройках опции вы выбрали «Задать настройки на CDN» и указали Время жизни кеша равное «4 дням». В расширенных правилах добавили 2 правила:
В результате настроек запросы будут кешироваться так:
Обратите внимание! Независимо от настроек опции контент удаляется из кеша CDN-серверов через 36 часов, если он не запрашивается конечными пользователями.
Использовать настройки источникаCDN-серверы при запросе контента с сервера-источника ориентируются на заголовок Cache-Control, настроенный на источнике, и кешируют контент на время, заданное в качестве его значения. Если на сервере-источнике отсутствует заголовок Cache-Control, то CDN использует время хранения, заданное в параметре «Время жизни кеша по умолчанию». Эта настройка применяется только для кодов ответов 200, 201, 204, 206, 301, 302, 303, 304, 307, 308, остальные коды не кешируются. Обратите внимание! Независимо от настроек опции контент удаляется из кеша CDN-серверов через 36 часов, если он не запрашивается конечными пользователями. Настройка кеширования на источникеПо умолчанию мы наследуем все заголовки, заданные на источнике. Время хранения кеша на CDN-серверах определяется HTTP-заголовком Cache-Control. Добавьте заголовок Cache-Control на ваш сервер в файл .htacess или nginx.conf. Заголовок должен содержать директивы public, max-age. Пример конфигурации Apache: <ifModule mod_headers.c>
server { #... Проверка настроек кешированияПроверьте, какие заголовки кеширования присутствуют при запросе файла, интегрированного с CDN. Для расшифровки используйте описание заголовков ниже.
Проверка с помощью команды cURL в терминале (terminal для MacOS; cmd для WindowsOS)1. В терминале пропишите: curl -I http://cdn.example.ru/js/intlTelInput/css/intlTelInput.css Где http://cdn.example.ru/js/intlTelInput/css/intlTelInput.css — ссылка на файл, интегрированный с CDN. 2. Вы получите такой вывод. Обратите внимание на заголовки Cache-Control, Cache, X-Cached-Since, X-ID: HTTP/1.1 200 OK Server: nginx/1.13.1 Date: Fri, 09 Jun 2017 12:54:24 GMT Content-Type: image/jpeg Content-Length: 124024 Connection: keep-alive X-Image-Generated: 29 X-Image-Meta: 1024x768 X-Image-Read: 71 Expires: Wed, 06 Dec 2017 12:51:43 GMT Access-Control-Allow-Origin: * Last-Modified: Sun, 01 Jan 2017 12:00:00 GMT Cache-Control: max-age=315360000, public — время, на которое файл будет закеширован на сервере в секундах. Cache: HIT — файл отдался из кеша CDN. X-Cached-Since: 2017-06-09T12:51:43+00:00 — время, с которого файл находится в кеше сервера CDN. X-ID: m9-up-e245 — сервер CDN, с которого был отдан файл. 3. Если у вас возникли подозрения, что контент не кешируется, проверьте настройки на источнике или обратитесь в техническую поддержку.
Проверка с помощью инструментов разработчика в браузере1. Откройте любой интернет-браузер (например, Google Chrome). 2. Откройте ваш сайт. 3. Нажмите кнопку F12 (откроется панель разработчика). 4. Выберите вкладку Сеть (Network). 5. Обновите страницу (клавиши CTRL + F5). 6. Вы получите список всех файлов, которые были загружены с вашего сайта. 7. Найдите статический файл (например, jpeg, png, img), интегрированный с CDN и нажмите на него. Для более удобного поиска можете воспользоваться фильтром в левом углу панели. 8. На вкладке Заголовки (Headers) справа вы увидите заголовки, которые настроены на вашем сервере. 9. Проанализируйте их, используя описание важных заголовков ниже.
Важные заголовки1. Проверить, откуда (с вашего сервера или с CDN-сервера) был отправлен контент, можно по значению HTTP-заголовка Cache:
2. Проверить, с какого сервера CDN был отправлен контент, можно по значению заголовка X-ID:
3. Время, когда контент был закеширован на CDN-сервере, можно узнать по значению заголовка X-Cached-Since:
Поддержка заголовковДля проверки кеширования важно понимать, какие значения заголовков кеширования поддерживаются CDN-серверами, а какие — нет. Совместимые с CDN параметры HTTP-заголовка Cache-Control:
Несовместимые с CDN параметры HTTP-заголовка Cache-Control:
| |
|