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