gunzip
Директива gunzip включает или отключает распаковку ответов, сжатых gzip, в NGINX. — NGINX HTTP Core
Описание
Директива `gunzip` используется в NGINX для управления тем, должен ли сервер автоматически распаковывать тела HTTP-ответов, сжатых gzip, перед отправкой их клиенту. Когда она включена, NGINX будет распаковывать содержимое, позволяя клиентам, которые не поддерживают сжатие gzip, корректно интерпретировать ответ без дополнительной обработки на их стороне. Эта директива важна для обеспечения совместимости с различными клиентами, которые могут не уметь правильно обрабатывать кодирование gzip.\n\nДиректива `gunzip` принимает флаг в качестве аргумента, где `on` включает распаковку, а `off` отключает её. Эту директиву можно использовать в контекстах `http`, `server` и `location`, что позволяет тонко настроить, когда ответы должны распаковываться в зависимости от конфигурации. Важно использовать эту директиву осмотрительно: например, включение её для некоторых `location`, которые обслуживают ресурсы, которые могут быть сжаты, может сократить трафик и улучшить время загрузки, но при этом привести к дополнительным накладным расходам для очень маленьких файлов.\n\nПоскольку NGINX использует заголовок `Content-Encoding` для определения того, сжат ли ответ, директива `gunzip` работает в связке с директивами, связанными с gzip, которые контролируют процесс сжатия. Если ответ не сжат (то есть он не содержит заголовка `Content-Encoding: gzip`), установка `gunzip` не окажет никакого эффекта, и исходное содержимое будет отправлено как есть, независимо от состояния директивы. Пользователям следует убедиться, что при включении `gunzip` upstream‑сервер или приложение корректно устанавливают заголовки, чтобы сжатие могло полноценно применяться.
Пример конфига
server {
listen 80;
server_name example.com;
location / {
gunzip on;
proxy_pass http://backend;
}
}Убедитесь, что upstream-сервер отправляет правильный заголовок `Content-Encoding`; в противном случае `gunzip` не окажет никакого эффекта.
Не используйте `gunzip` при слабых сетевых соединениях, поскольку декомпрессия может увеличить нагрузку на CPU и привести к проблемам с производительностью.
Избегайте включения `gunzip` для особенно маленьких файлов, так как затраты на декомпрессию могут нивелировать любую выгоду от экономии пропускной способности.