gunzip
Директива gunzip включает или отключает распаковку ответов, сжатых gzip, в NGINX.
Описание
Директива 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 для особенно маленьких файлов, так как затраты на декомпрессию могут нивелировать любую выгоду от экономии пропускной способности.