Zum Inhalt

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.