gzip_vary
Директива `gzip_vary` управляет тем, включается ли заголовок ответа `Vary: Accept-Encoding` для контента, сжатого с помощью gzip. — NGINX HTTP Core
Описание
Директива `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 может ввести в заблуждение, так как заголовок будет отправляться без какого-либо эффекта.