zstd: Módulo NGINX para compressão Zstandard
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-zstd
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-zstd
Ative o módulo adicionando o seguinte no topo de /etc/nginx/nginx.conf:
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Este documento descreve o nginx-module-zstd v0.1.1 lançado em 23 de outubro de 2023.
## especifique o dicionário
zstd_dict_file /path/to/dict;
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
# habilitar compressão zstd
zstd on;
zstd_min_length 256; # não menos que 256 bytes
zstd_comp_level 3; # definir o nível para 3
proxy_pass http://foo.com;
}
}
server {
listen 127.0.0.1:8081;
server_name localhost;
location / {
zstd_static on;
root html;
}
}
Diretivas
ngx_http_zstd_filter_module
O módulo ngx_http_zstd_filter_module é um filtro que comprime respostas usando o método "zstd". Isso geralmente ajuda a reduzir o tamanho dos dados transmitidos pela metade ou até mais.
zstd_dict_file
Sintaxe: zstd_dict_file /path/to/dict;
Padrão: -
Contexto: http
Especifica o dicionário externo.
AVISO: Cuidado! O registro de codificação de conteúdo apenas especifica um meio de sinalizar o uso do formato zstd e não especifica adicionalmente nenhum mecanismo para anunciar/negociar/sincronizar o uso de um dicionário específico entre cliente e servidor. Use o zstd_dict_file apenas se você puder garantir que ambas as extremidades (servidor e cliente) são capazes de usar o mesmo dicionário (por exemplo, anunciar com um cabeçalho HTTP). Veja https://github.com/tokers/zstd-nginx-module/issues/2 para mais detalhes.
zstd
Sintaxe: zstd on | off;
Padrão: zstd off;
Contexto: http, server, location, if in location
Habilita ou desabilita a compressão zstd para a resposta.
zstd_comp_level
Sintaxe: zstd_comp_level level;
Padrão: zstd_comp_level 1;
Contexto: http, server, location
Define um nível de compressão zstd para uma resposta. Os valores aceitáveis estão na faixa de 1 a ZSTD_maxCLevel().
zstd_min_length
Sintaxe: zstd_min_length length;
Padrão: zstd_min_length 20;
Contexto: http, server, location
Define o comprimento mínimo de uma resposta que será comprimida pelo zstd. O comprimento é determinado apenas pelo campo do cabeçalho de resposta "Content-Length".
zstd_types
Sintaxe: zstd_types mime-type ...;
Padrão: zstd_types text/html;
Contexto: http, server, location
Habilita zstd para respostas dos tipos MIME especificados além de "text/html". O valor especial "*" corresponde a qualquer tipo MIME.
zstd_buffers
Sintaxe: zstd_buffers number size;
Padrão: zstd_buffers 32 4k | 16 8k;
Contexto: http, server, location
Define o número e o tamanho dos buffers usados para comprimir uma resposta. Por padrão, o tamanho do buffer é igual a uma página de memória. Isso é 4K ou 8K, dependendo da plataforma.
ngx_http_zstd_static_module
O módulo ngx_http_zstd_static_module permite enviar arquivos pré-comprimidos com a extensão de nome de arquivo ".zst" em vez de arquivos regulares.
zstd_static
Sintaxe: zstd_static on | off | always;
Padrão: zstd_static off;
Contexto: http, server, location
Habilita ("on") ou desabilita ("off") a verificação da existência de arquivos pré-comprimidos. As seguintes diretivas também são levadas em conta: gzip_vary.
Com o valor "always", o arquivo "zstd" é usado em todos os casos, sem verificar se o cliente o suporta.
Variáveis
ngx_http_zstd_filter_module
$zstd_ratio
Razão de compressão alcançada, calculada como a razão entre os tamanhos da resposta original e comprimida.
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-zstd.