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.

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