srcache_ignore_content_encoding

Директива `srcache_ignore_content_encoding` управляет тем, должен ли NGINX игнорировать заголовки Content-Encoding при получении кэшированных ответов.

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

Описание

Директива srcache_ignore_content_encoding — это флаг, который используется в контексте блоков HTTP, server и location. Если значение установлено в 'on', NGINX будет игнорировать любые заголовки Content-Encoding, присутствующие в ответах, которые он получает от upstream servers, позволяя ресурсу обслуживаться из кэша в некодированном виде. Это особенно полезно в ситуациях, когда клиенты могут неправильно обрабатывать кодировки или когда разные клиенты ожидают различные форматы ответов.

В обычных условиях, если upstream server отвечает с разными кодировками (например, gzip, deflate и т.д.), NGINX может кэшировать ответы вместе с этими кодировками. Когда директива srcache_ignore_content_encoding включена, кэшируемое содержимое всегда будет сохраняться и отдаваться без какой-либо кодировки, независимо от того, что отправляет upstream server. Таким образом, это может упростить унифицированную обработку ответов, особенно в конфигурациях с множеством клиентов или микросервисов, которые могут взаимодействовать с одним и тем же кэшированным содержимым, но требовать, чтобы оно оставалось неизменным.

Когда эта директива включена, фактическое содержимое, полученное от upstream, преобразуется в необработанный ответ, отбрасывая любые указания на его исходную кодировку. Это означает, что при правильной настройке она помогает обеспечить согласованное поведение для разных клиентских запросов, одновременно оптимизируя использование ресурсов в механизме кэширования NGINX.

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

location /example {
    srcache_fetch my_cache;
    srcache_ignore_content_encoding on;
}

Убедитесь, что все клиенты могут обрабатывать unencoded content, так как это не будет возвращать gzipped или encoded responses.

Помните, что включение этого может увеличить размер ответа, поскольку compressed content будет возвращаться uncompressed.

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