gzip_vary

Директива `gzip_vary` управляет тем, включается ли заголовок ответа `Vary: Accept-Encoding` для контента, сжатого с помощью gzip.

Синтаксисgzip_vary on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива gzip_vary в NGINX используется для включения или отключения добавления HTTP-заголовка Vary: Accept-Encoding в ответах, где применяется сжатие gzip. Этот заголовок важен для поведения кэширования у прокси и CDN, так как он указывает, что ответ может различаться в зависимости от заголовка запроса Accept-Encoding, отправляемого клиентом. Когда gzip_vary установлен в on, это гарантирует, что агенты пользователей, поддерживающие разные кодировки контента, будут получать корректно закэшированные версии ресурсов в зависимости от поддерживаемой ими кодировки.

При использовании gzip_vary, если gzip включён и эта директива активирована, NGINX добавит заголовок Vary: Accept-Encoding в ответ. Это позволяет промежуточным системам кэширования понимать, что содержимое ответа может отличаться в зависимости от того, принимает ли клиент данные, сжатые gzip. Если установлено в off, этот заголовок добавляться не будет, что может привести к нежелательным эффектам кэширования, особенно для пользователей, которые не запрашивают сжатие gzip.

Эту директиву можно определить в различных контекстах, включая http, server и location, что делает её гибкой для разных конфигураций. Это особенно полезно, когда разные типы клиентов могут требовать разных представлений одного и того же ресурса в зависимости от их возможностей по поддержке кодировок.

Пример конфига

http {
    gzip on;
    gzip_vary on;
}

Убедитесь, что ваш механизм кэширования (например, proxy или CDN) распознаёт заголовок Vary.

Установка gzip_vary в положение on без включения gzip может ввести в заблуждение, так как заголовок будет отправляться без какого-либо эффекта.

← Ко всем директивам