Zum Inhalt

brotli: NGINX Brotli dynamische Module

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-brotli
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-brotli

Aktivieren Sie das Modul, indem Sie Folgendes am Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Dieses Dokument beschreibt nginx-module-brotli v0.1.4 veröffentlicht am 01. Juli 2021.


Brotli ist ein generischer verlustfreier Kompressionsalgorithmus, der Daten mithilfe einer Kombination aus einer modernen Variante des LZ77-Algorithmus, Huffman-Codierung und 2. Ordnung Kontextmodellierung komprimiert, mit einem Kompressionsverhältnis, das mit den besten derzeit verfügbaren generischen Kompressionsmethoden vergleichbar ist. Es ist in der Geschwindigkeit ähnlich wie deflate, bietet jedoch eine dichtere Kompression.

ngx_brotli ist ein Satz von zwei NGINX-Modulen:

  • ngx_brotli Filtermodul - wird verwendet, um Antworten on-the-fly zu komprimieren,
  • ngx_brotli statisches Modul - wird verwendet, um vorab komprimierte Dateien bereitzustellen.

Konfigurationsdirektiven

brotli_static

  • Syntax: brotli_static on|off|always
  • Standard: off
  • Kontext: http, server, location

Aktiviert oder deaktiviert die Überprüfung der Existenz von vorab komprimierten Dateien mit der .br Erweiterung. Mit dem Wert always wird die vorab komprimierte Datei in allen Fällen verwendet, ohne zu überprüfen, ob der Client dies unterstützt.

brotli

  • Syntax: brotli on|off
  • Standard: off
  • Kontext: http, server, location, if

Aktiviert oder deaktiviert die On-the-Fly-Kompression von Antworten.

brotli_types

  • Syntax: brotli_types <mime_type> [..]
  • Standard: text/html
  • Kontext: http, server, location

Aktiviert die On-the-Fly-Kompression von Antworten für die angegebenen MIME-Typen neben text/html. Der spezielle Wert * entspricht jedem MIME-Typ. Antworten mit dem MIME-Typ text/html werden immer komprimiert.

brotli_buffers

  • Syntax: brotli_buffers <number> <size>
  • Standard: 32 4k|16 8k
  • Kontext: http, server, location

Veraltet, wird ignoriert.

brotli_comp_level

  • Syntax: brotli_comp_level <level>
  • Standard: 6
  • Kontext: http, server, location

Legt die On-the-Fly-Kompressionsqualität (Kompression) level für Brotli fest. Akzeptable Werte liegen im Bereich von 0 bis 11.

brotli_window

  • Syntax: brotli_window <size>
  • Standard: 512k
  • Kontext: http, server, location

Legt die Brotli-Fenstergröße size fest. Akzeptable Werte sind 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k, 256k, 512k, 1m, 2m, 4m, 8m und 16m.

brotli_min_length

  • Syntax: brotli_min_length <length>
  • Standard: 20
  • Kontext: http, server, location

Legt die minimale length einer Antwort fest, die komprimiert wird. Die Länge wird nur aus dem Content-Length-Antwortheaderfeld bestimmt.

Variablen

$brotli_ratio

Erreichtes Kompressionsverhältnis, berechnet als das Verhältnis zwischen der ursprünglichen und der komprimierten Antwortgröße.

Beispielkonfiguration

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
             application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
             application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
             font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
             image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

GitHub

Sie finden zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub Repository für nginx-module-brotli.