unbrotli
Директива `unbrotli` включает распаковку ответов, сжатых Brotli, для клиентов, которые не поддерживают Brotli.
Описание
Директива unbrotli является частью модуля NGINX ngx_unbrotli, который предназначен для обработки ответов, сжатых Brotli (обозначаемых заголовком 'Content-Encoding: br'). При включённой этой директиве NGINX анализирует заголовок Accept-Encoding в запросе клиента, чтобы определить его возможности по сжатию. Если клиент не поддерживает сжатие Brotli, сервер распаковывает содержимое, закодированное Brotli, перед отправкой клиенту, обеспечивая совместимость и бесшовную работу независимо от возможностей клиента.
Директиву можно указывать в контекстах http, server или location; она работает как простой флаг (on или off). По умолчанию она установлена в off, то есть ответы Brotli не будут распаковываться, если это явно не включено. Кроме того, пользователи могут воспользоваться директивой unbrotli_force, которая принудительно включает распаковку для всех ответов Brotli независимо от заявленных предпочтений клиента. Параметр unbrotli_buffers позволяет настроить количество и размер буферов памяти, выделяемых для процесса распаковки — это можно регулировать для оптимизации производительности при обработке больших ответов, но это может увеличить использование памяти.
В целом директива unbrotli играет важную роль в обеспечении доступа к контенту для пользователей со старыми или не поддерживающими Brotli клиентами, одновременно позволяя операторам серверов воспользоваться эффективным сжатием Brotli для экономии места и пропускной способности.
Пример конфига
location /assets/ {
unbrotli on;
unbrotli_buffers 32 4k;
...
}Отсутствие включения unbrotli при использовании ответов Brotli может привести к проблемам для клиентов, которые не поддерживают Brotli.
Неправильная настройка размеров буферов может привести к избыточному использованию памяти или снижению производительности при декомпрессии.
Игнорирование эффекта unbrotli_force может привести к непредвиденному поведению, при котором все клиенты получают декомпрессированные ответы независимо от их возможностей.