Поделиться через


Управление сроком действия веб-содержимого в сети доставки содержимого Azure

Внимание

Azure CDN standard от Корпорации Майкрософт (классическая версия) будет прекращена 30 сентября 2027 г. Чтобы избежать нарушений работы службы, важно перенести профили Azure CDN уровня "Стандартный" от Майкрософт (классический) на уровень Azure Front Door standard или Premium к 30 сентября 2027 года. Дополнительные сведения см. в статье Azure CDN Standard от майкрософт (классическая версия).

Файлы с общедоступных веб-серверов источников можно кэшировать в Azure сеть доставки содержимого до тех пор, пока не истекает время жизни (TTL). TTL определяется заголовком Cache-Control в ответе HTTP от исходного сервера. В этой статье описано, как определить заголовки Cache-Control для функции веб-приложений службы приложений Microsoft Azure, облачных служб Azure, приложений ASP.NET и сайтов IIS. Все они настраиваются сходным образом. Определить заголовок Cache-Control можно с помощью файлов конфигурации или программным способом.

Вы также можете управлять параметрами кэша из портал Azure, задав правила кэширования сети доставки содержимого. Если создать одно или несколько правил кэширования и настроить их на переопределение или отключение кэша, предоставляемые системой параметры, описываемые в этой статье, будут игнорироваться. См. дополнительные сведения о функции кэширования.

Совет

Срок жизни для файла можно не указывать. В этом случае Azure сеть доставки содержимого автоматически применяет срок жизни по умолчанию в семь дней, если только вы не настроили правила кэширования в портал Azure. Этот срок жизни по умолчанию применяется только к оптимизациям общей веб-доставки. Для оптимизаций больших файлов срок жизни по умолчанию составляет один день, а для оптимизаций потоковой передачи срок жизни по умолчанию составляет один год.

Дополнительные сведения о том, как работает Azure сеть доставки содержимого для ускорения доступа к файлам и другим ресурсам, см. в статье "Обзор сеть доставки содержимого Azure".

Настройка заголовков кэша управления с помощью правил кэширования сети доставки содержимого

Предпочтительный способ установки заголовка Cache-Control веб-сервера — использовать правила кэширования на портале Azure. Дополнительные сведения о правилах кэширования сети доставки содержимого см. в разделе "Управление поведением кэширования Azure сеть доставки содержимого с помощью правил кэширования".

Примечание.

Правила кэширования доступны только для azure CDN уровня "Стандартный" из профилей Edgio . Для Azure CDN Premium из профилей Edgio необходимо использовать подсистему правил azure сеть доставки содержимого на портале "Управление" для аналогичных функций.

Чтобы перейти на страницу правил CDN для кэширования:

  1. В портал Azure выберите профиль сети доставки содержимого, а затем выберите конечную точку для веб-сервера.

  2. В области слева в разделе "Параметры" выберите Правила кэширования.

    Снимок экрана: кнопка

    Появится страница Правила кэширования.

    Снимок экрана: страница кэширования сети доставки содержимого.

Чтобы установить заголовки Cache-Control веб-сервера, используя глобальные правила кэширования, сделайте следующее:

  1. В разделе Глобальные правила кэширования задайте для параметра Режим кэширования строк запросов значение Пропускать строки запросов, а для параметра Поведение кэширования — значение Переопределить.

  2. Для параметра Срок действия кэша введите 3600 в поле Секунды или 1 в поле Часы.

    Снимок экрана: пример правил глобального кэширования сети доставки содержимого.

    Это глобальное правило кэширования задает значение длительности кэширования в один час и влияет на все запросы к конечной точке. Он переопределяет любые Cache-Control или Expires HTTP-заголовки, отправляемые сервером-источником, указанным конечной точкой.

  3. Выберите Сохранить.

Чтобы установить файлы заголовков Cache-Control веб-сервера, используя настраиваемые правила кэширования, сделайте следующее:

  1. В разделе Настраиваемые правила кэширования создайте два условия соответствия.

    1. В первом условии соответствия задайте для параметра Условие соответствия значение Путь и введите значение /webfolder1/* для параметра Значения соответствия. Задайте для параметра Поведение кэширования значение Переопределить и введите 4 в поле Дни.

    2. Во втором условии соответствия задайте параметру Условие соответствия значение Путь и введите значение /webfolder1/file1.txt для параметра Значения соответствия. Задайте для параметра Поведение кэширования значение Переопределить и введите 2 в поле Дни.

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

    Первое настраиваемое правило кэширования задает длительность кэширования, составляющую четыре дня, для всех файлов в папке /webfolder1 на сервере-источнике, указанном конечной точкой. Второе правило переопределяет первое правило только для файла file1.txt и задает для него длительность кэширования в два дня.

  2. Выберите Сохранить.

Определение заголовков Cache-Control с помощью файлов конфигурации

Вы можете управлять частотой обновления статического содержимого, такого как изображения и таблицы стилей, изменяя файлы конфигурации applicationHost.config или web.config своего веб-приложения. Чтобы задать заголовок Cache-Control для содержимого, используйте элемент <system.webServer>/<staticContent>/<clientCache> в обоих файлах.

Использование файла конфигурации applicationHost.config

Файл applicationHost.config — это корневой файл системы конфигурации IIS. Хотя параметры конфигурации в файле applicationHost.config влияют на все приложения на сайте, они переопределяются параметрами в любом из используемых для приложений файлов web.config.

Использование файлов web.config

С помощью файла web.config можно настроить поведение всего веб-приложения или определенного каталога в веб-приложении. Как правило, в корневой папке веб-приложения есть хотя бы один файл web.config. Для каждого файла конфигурации Web.config в определенной папке параметры конфигурации влияют на все параметры в этой папке и ее вложенных папках, если только они не переопределяются на уровне вложенных папок другим файлом web.config .

Например, в файле web.config в корневой папке веб-приложения можно определить элемент <clientCache>, чтобы кэшировать все статическое содержимое веб-приложения раз в три дня. Можно также включить файл web.config во вложенную папку с более динамическим содержимым (например, \frequent) и настроить его элемент <clientCache> для кэширования содержимого вложенной папки раз в шесть часов. В результате содержимое всего веб-сайта кэшируется каждые три дня, а содержимое каталога \frequent — каждые шесть часов.

В следующем примере файла конфигурации XML показано, как настроить элемент <clientCache> для определения максимального срока в три дня:

<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="3.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>

Чтобы использовать атрибут cacheControlMaxAge, присвойте атрибуту cacheControlMode значение UseMaxAge. Этот параметр добавляет HTTP-заголовок и директиву (Cache-Control: max-age=<nnn>) в ответ. У значения интервала времени для атрибута cacheControlMaxAge следующий формат: <days>.<hours>:<min>:<sec>. Это значение преобразуется в секунды и используется в качестве значения директивы max-age Cache-Control. Дополнительные сведения об элементе <clientCache> см. в описании клиентского кэша <clientCache>.

Определение заголовков Cache-Control программным способом

Для приложений ASP.NET вы управляете поведением кэширования сети доставки содержимого программным способом, задав свойство HttpResponse.Cache API .NET. Дополнительные сведения о свойстве HttpResponse.Cache, см. в описании свойства HttpResponse.Cache и класса HttpCachePolicy.

Чтобы программным способом кэшировать содержимое приложения в ASP.NET, выполните следующие действия.

  1. Убедитесь, что содержимое отмечено как кэшируемое, установив для параметра HttpCacheability значение Public.
  2. Задайте проверяющий элемент кэша, вызвав один из следующих HttpCachePolicy методов:
    • Вызовите SetLastModified, чтобы определить значение метки времени для заголовка Last-Modified.
    • Вызовите SetETag, чтобы определить значение для заголовка ETag.
  3. При необходимости укажите срок действия кэша, вызвав SetExpires, чтобы определить значения для заголовка Expires. В противном случае применяется эвристический метод кэширования по умолчанию, описанный выше в этом документе.

Например, чтобы кэшировать содержимое в течение одного часа, добавьте следующий код C#:

// Set the caching parameters.
Response.Cache.SetExpires(DateTime.Now.AddHours(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetLastModified(DateTime.Now);

Проверка заголовка Cache-Control

Вы легко можете проверить установленный для веб-содержимого срок жизни. С помощью средств разработчика браузера проверьте, содержит Cache-Control ли веб-содержимое заголовок ответа. Для просмотра заголовков ответа можно использовать и другие средства, например wget, Postman или Fiddler.

Next Steps