Pular para conteúdo

unzstd: Descomprime respostas codificadas em Zstd para clientes que não a suportam

Instalação

Você pode instalar este módulo em qualquer distribuição baseada em RHEL, incluindo, mas não se limitando a:

  • RedHat Enterprise Linux 7, 8, 9 e 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 e Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-unzstd
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-unzstd

Habilite o módulo adicionando o seguinte no topo do /etc/nginx/nginx.conf:

load_module modules/ngx_http_unzstd_filter_module.so;

Este documento descreve o nginx-module-unzstd v0.2.0 lançado em 02 de setembro de 2026.


server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        # habilita a descompressão zstd para clientes que não suportam compressão zstd
        unzstd on;

        proxy_pass http://foo.com;
    }
}

Diretivas

unzstd

Sintaxe: unzstd on | off;

Padrão: unzstd off;

Contexto: http, server, location, when

Habilita ou desabilita a descompressão de respostas comprimidas em zstd para clientes que não possuem suporte a zstd. Quando compilado com ngx_condition_module, esta diretiva também pode ser configurada dentro de um bloco when.

unzstd_force

Sintaxe: unzstd_force on | off;

Padrão: unzstd_force off;

Contexto: http, server, location, when

Quando habilitado, descomprime respostas zstd sem verificar se o cliente aceita zstd. Respostas sem Content-Encoding: zstd não são afetadas. Quando compilado com ngx_condition_module, esta diretiva também pode ser configurada dentro de um bloco when.

unzstd_buffers

Sintaxe: unzstd_buffers número tamanho;

Padrão: unzstd_buffers 32 4k | 16 8k;

Contexto: http, server, location

Define o número e o tamanho dos buffers usados para descomprimir uma resposta. Por padrão, o tamanho do buffer é igual a uma página de memória. Isso é 4K ou 8K, dependendo da plataforma.

Testes

A suíte rápida compila um módulo dinâmico real e o executa com o harness oficial nginx-tests do nginx.org:

make tests

O portão de lançamento também inclui execução estática ASan/UBSan, cppcheck exaustivo, CodeQL, carregamento de módulo renomeado, nginx -t e nginx -T, sondas de clientes hostis, verificações de recarga e substituição de workers, contabilidade de descritores de arquivo estabilizada e evidências do Torture Lab schema-v1:

make lint
make tests-asan
make runtime

GitHub

Você pode encontrar dicas de configuração adicionais e documentação para este módulo no repositório GitHub do nginx-module-unzstd.