---
title: 'Настроить кэширование контента'
sidebar_label: 'Настроить кэширование'
description: 'Как настроить время кэширования, как отдавать контент при ошибках источника и другие инструкции'
sidebar_position: 2
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import PlusIcon from 'docs-kit/icons/plus'

# Настроить кэширование контента

По умолчанию настройки кэширования контента выключены. Вы можете включить их и настроить:

* [время кэширования](#set-caching-time);
* [отдачу контента из кэша при ошибках источника](#return-content-from-cache-on-source-errors);
* [кэширование контента с учетом параметров запроса](#cache-content-with-query-string);
* [кэширование контента с учетом cookies](#cache-content-with-cookies).

## Настроить время кэширования \{#set-caching-time}

Время кэширования — время, в течение которого CDN-серверы хранят копию ответа от источника до повторного запроса контента.
Время кэширования можно настроить для каждого HTTP-ответа.

1. В [панели управления](https://my.selectel.ru/cdn-v3) в верхнем меню нажмите **Продукты** и выберите **CDN**.

2. В разделе **CDN-ресурсы** откройте страницу CDN-ресурса → вкладка **Кэширование**.

3. Отметьте чекбокс **Включить настройки кэширования**.

4. В блоке **Время кэширования контента** настройте время кэширования для каждого типа ответа:

   * для `2xx` — время хранения успешных ответов;
   * `3xx` — время хранения редиректов;
   * `4xx` — время хранения ошибок клиента;
   * `5xx` — время хранения ошибок сервера;
   * в браузере — время, на которое браузер может кэшировать ответ после его получения от CDN.

5. Если хотите переопределить настройки источника контента на свои, отметьте чекбокс **Игнорировать заголовки управления кэшированием**. CDN будет игнорировать заголовки `Cache-Control` и `Expires`, которые содержат информацию о кэшировании и которые источник контента может включать в ответ.

6. Нажмите **Применить**. Во время применения настроек CDN-ресурс будет находиться в статусе `PROCESSING`. В это время применение других настроек недоступно. Настройки применятся, когда CDN-ресурс перейдет в статус `ACTIVE`.

## Отдавать контент из кэша при ошибках источника \{#return-content-from-cache-on-source-errors}

Если источник контента отвечает ошибкой, пользователь может получать последнюю сохраненную в кэш версию контента (Use Stale). Пока источник недоступен, страницы сайта могут отображаться не полностью: например, могут работать не все изображения, видео или таблицы стилей. При этом CDN-серверы будут проверять доступность источника с каждым новым запросом:

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

Чтобы отдавать контент из кэша при ошибках источника:

1. В [панели управления](https://my.selectel.ru/cdn-v3) в верхнем меню нажмите **Продукты** и выберите **CDN**.

2. В разделе **CDN-ресурсы** откройте страницу CDN-ресурса → вкладка **Кэширование**.

3. Отметьте чекбокс **Включить настройки кэширования**.

4. В блоке **Последняя версия закэшированного контента (Use Stale)** отметьте чекбокс **Отдавать последнюю версию закэшированного контента, если источник недоступен**.

5. В поле **В каких случаях отдавать последнюю версию закэшированного контента:** выберите ошибки, при которых нужно отдавать последний кэшированный контент:

   * `error` — ошибка соединения с сервером;
   * `timeout` — превышение времени во время соединения с сервером;
   * `invalid_header` — сервер вернул пустой или неверный ответ;
   * `updating` — использование устаревшего закэшированного ответа, пока файлы в кэше обновляются;
   * `http_500` — внутренняя ошибка сервера;
   * `http_502` — сбой при передаче данных между сервером и пользователем;
   * `http_503` — сервер не может обработать запрос;
   * `http_504` — превышение времени во время соединения с сервером;
   * `http_403` — ошибка доступа;
   * `http_404` — CDN-ресурс не найден;
   * `http_429` — слишком много запросов.

6. Нажмите **Применить**. Во время применения настроек CDN-ресурс будет находиться в статусе `PROCESSING`. В это время применение других настроек недоступно. Настройки применятся, когда CDN-ресурс перейдет в статус `ACTIVE`.

## Кэшировать контент с учетом параметров запроса \{#cache-content-with-query-string}

По умолчанию CDN игнорирует параметры запроса (query string).

Вы можете включить кэширование контента с учетом параметров запроса.

Если в запросах к одному файлу присутствуют разные параметры (часть после знака вопроса в URL файла), то каждый запрос с новым параметром перенаправляется на источник.

1. В [панели управления](https://my.selectel.ru/cdn-v3) в верхнем меню нажмите **Продукты** и выберите **CDN**.

2. В разделе **CDN-ресурсы** откройте страницу CDN-ресурса → вкладка **Кэширование**.

3. Отметьте чекбокс **Включить настройки кэширования**.

4. В блоке **Кэшировать с учетом query string** отметьте чекбокс **Кэшировать с учетом query string**. По умолчанию будут учитываться все параметры запроса.

5. Если вы хотите учитывать определенные параметры в запросе, снимите чекбокс **Учитывать все параметры**.

6. Введите параметр запроса. Можно ввести разрешенный или запрещенный параметр:

   * чтобы указать разрешенный параметр, включите **White List**, добавьте параметр и нажмите <PlusIcon />. При обработке запроса будут учитываться только параметры, которые включены в этот список.

   * чтобы указать запрещенный параметр, включите **Black List**, добавьте параметр и нажмите <PlusIcon />. При обработке запроса будут учитываться все параметры, которые не включены в этот список.

7. Чтобы добавить еще один параметр запроса, повторите шаг 6.

8. Нажмите **Применить**. Во время применения настроек CDN-ресурс будет находиться в статусе `PROCESSING`. В это время применение других настроек недоступно. Настройки применятся, когда CDN-ресурс перейдет в статус `ACTIVE`.

## Кэшировать контент с учетом cookies \{#cache-content-with-cookies}

По умолчанию CDN игнорирует cookies.

Вы можете включить кэширование контента с учетом параметров cookies.

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

1. В [панели управления](https://my.selectel.ru/cdn-v3) в верхнем меню нажмите **Продукты** и выберите **CDN**.

2. В разделе **CDN-ресурсы** откройте страницу CDN-ресурса → вкладка **Кэширование**.

3. Отметьте чекбокс **Включить настройки кэширования**.

4. В блоке **Кэшировать с учетом cookies** отметьте чекбокс **Кэшировать с учетом cookies**. По умолчанию будут учитываться все cookies.

5. Если вы хотите учитывать определенные cookies в запросе, снимите чекбокс **Учитывать все параметры**.

6. Введите параметр cookies. Можно ввести разрешенный или запрещенный параметр:

   * чтобы ввести разрешенный параметр cookies, включите **White List**, добавьте разрешенный параметр и нажмите <PlusIcon />. При обработке запроса будут учитываться только параметры cookies, которые включены в этот список;

   * чтобы ввести запрещенный параметр cookies, включите **Black List**, добавьте запрещенный параметр и нажмите <PlusIcon />. При обработке запроса будут учитываться все параметры, которые не включены в этот список.

7. Чтобы добавить еще один параметр cookies, повторите шаг 6.

8. Нажмите **Применить**. Во время применения настроек CDN-ресурс будет находиться в статусе `PROCESSING`. В это время применение других настроек недоступно. Настройки применятся, когда CDN-ресурс перейдет в статус `ACTIVE`.

<Formbricks />
