zstd: NGINX-Modul für die Zstandard-Kompression
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und 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
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Dieses Dokument beschreibt nginx-module-zstd v0.1.1, veröffentlicht am 23. Oktober 2023.
## das Wörterbuch angeben
zstd_dict_file /path/to/dict;
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
# zstd-Kompression aktivieren
zstd on;
zstd_min_length 256; # nicht weniger als 256 Bytes
zstd_comp_level 3; # auf Stufe 3 setzen
proxy_pass http://foo.com;
}
}
server {
listen 127.0.0.1:8081;
server_name localhost;
location / {
zstd_static on;
root html;
}
}
Direktiven
ngx_http_zstd_filter_module
Das ngx_http_zstd_filter_module Modul ist ein Filter, der Antworten mit der "zstd"-Methode komprimiert. Dies hilft oft, die Größe der übertragenen Daten um die Hälfte oder sogar mehr zu reduzieren.
zstd_dict_file
Syntax: zstd_dict_file /path/to/dict;
Standard: -
Kontext: http
Spezifiziert das externe Wörterbuch.
WARNUNG: Seien Sie vorsichtig! Die Registrierung der Inhaltskodierung gibt nur ein Mittel an, um die Verwendung des zstd-Formats zu signalisieren, und spezifiziert nicht zusätzlich einen Mechanismus zur Werbung/Verhandlung/Synchronisation der Verwendung eines bestimmten Wörterbuchs zwischen Client und Server. Verwenden Sie zstd_dict_file nur, wenn Sie sicherstellen können, dass beide Enden (Server und Client) in der Lage sind, dasselbe Wörterbuch zu verwenden (z. B. durch Werbung mit einem HTTP-Header). Siehe https://github.com/tokers/zstd-nginx-module/issues/2 für die Details.
zstd
Syntax: zstd on | off;
Standard: zstd off;
Kontext: http, server, location, if in location
Aktiviert oder deaktiviert die zstd-Kompression für die Antwort.
zstd_comp_level
Syntax: zstd_comp_level level;
Standard: zstd_comp_level 1;
Kontext: http, server, location
Setzt ein zstd-Kompressionsniveau für eine Antwort. Akzeptable Werte liegen im Bereich von 1 bis ZSTD_maxCLevel().
zstd_min_length
Syntax: zstd_min_length length;
Standard: zstd_min_length 20;
Kontext: http, server, location
Setzt die minimale Länge einer Antwort, die von zstd komprimiert wird. Die Länge wird nur aus dem "Content-Length"-Antwortheaderfeld bestimmt.
zstd_types
Syntax: zstd_types mime-type ...;
Standard: zstd_types text/html;
Kontext: http, server, location
Aktiviert zstd für die Antworten der angegebenen MIME-Typen zusätzlich zu "text/html". Der spezielle Wert "*" entspricht jedem MIME-Typ.
zstd_buffers
Syntax: zstd_buffers number size;
Standard: zstd_buffers 32 4k | 16 8k;
Kontext: http, server, location
Setzt die Anzahl und Größe der Puffer, die zur Komprimierung einer Antwort verwendet werden. Standardmäßig entspricht die Puffergröße einer Speicherseite. Dies sind entweder 4K oder 8K, abhängig von der Plattform.
ngx_http_zstd_static_module
Das ngx_http_zstd_static_module Modul ermöglicht das Senden von vorab komprimierten Dateien mit der Dateiendung ".zst" anstelle von regulären Dateien.
zstd_static
Syntax: zstd_static on | off | always;
Standard: zstd_static off;
Kontext: http, server, location
Aktiviert ("on") oder deaktiviert ("off") die Überprüfung der Existenz vorab komprimierter Dateien. Die folgenden Direktiven werden ebenfalls berücksichtigt: gzip_vary.
Mit dem Wert "always" wird die "zstd"-Datei in allen Fällen verwendet, ohne zu überprüfen, ob der Client dies unterstützt.
Variablen
ngx_http_zstd_filter_module
$zstd_ratio
Erzieltes Kompressionsverhältnis, berechnet als das Verhältnis zwischen der ursprünglichen und der komprimierten Antwortgröße.
GitHub
Sie finden zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-zstd.