Beispiel zum Aktivieren des Brotli-Komprimierungsalgorithmus für Nginx

Beispiel zum Aktivieren des Brotli-Komprimierungsalgorithmus für Nginx

Brotli ist ein neues Datenformat, das eine um 20 – 26 % höhere Komprimierungsrate als Zopfli bieten kann.

Was ist der Brotli-Komprimierungsalgorithmus?

Brotli wurde ursprünglich 2015 zur Offline-Komprimierung von Webfonts veröffentlicht. Die Softwareentwickler von Google haben im September 2015 eine erweiterte Version von Brotli veröffentlicht, die eine allgemeine verlustfreie Datenkomprimierung umfasst und insbesondere auf die HTTP-Komprimierung ausgerichtet ist. Der Encoder wurde teilweise neu geschrieben, um die Komprimierungsraten zu verbessern, sowohl Encoder als auch Decoder wurden schneller gemacht und die Streaming-API wurde verbessert, um weitere Komprimierungsqualitätsstufen hinzuzufügen. Die neue Version weist außerdem plattformübergreifende Leistungsverbesserungen auf und reduziert den für die Dekodierung erforderlichen Speicher.

Im Gegensatz zu herkömmlichen Komprimierungsalgorithmen für allgemeine Zwecke verwendet Brotli ein vordefiniertes 120-Kilobyte-Wörterbuch. Das Wörterbuch enthält über 13.000 gebräuchliche Wörter, Ausdrücke und andere Teilzeichenfolgen aus einem großen Korpus an Text- und HTML-Dokumenten. Vordefinierte Algorithmen können die Komprimierungsdichte für kleinere Dateien verbessern.

Die Verwendung von Brotli anstelle von Deflate zum Komprimieren von Textdateien kann die Komprimierungsdichte normalerweise um 20 % erhöhen, während die Komprimierungs- und Dekomprimierungsgeschwindigkeit ungefähr gleich bleibt. Für die Streaming-Komprimierung mit Brotli wurde ein Inhaltscodierungstyp von „br“ vorgeschlagen.

Installieren

1. Brotli herunterladen

Git-Klon https://github.com/google/ngx_brotli
cd ngx_brotli und git-Submodul-Update --init

2. Kompilieren

Fügen Sie –add-module=/opt/nginx/ngx_brotli nach der ursprünglichen Kompilierungskonfiguration hinzu

Zum Beispiel

Kopieren Sie den Code wie folgt:
./Konfigurieren --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/opt/nginx/pcre-8.41 --with-http_ssl_module --with-zlib=/opt/nginx/zlib-1.2.11 --with-openssl=/opt/nginx/openssl-1.0.2n --add-module=/opt/nginx/ngx_brotli --with-http_v2_module

Konfiguration, im http-Abschnitt hinzufügen

http {
  mime.types einschließen;
  Standardtyp Anwendung/Oktett-Stream;
  sendfile an;
  tcp_nopush ein;

  KeepAlive-Timeout 65;
  #Brotli-Komprimierung
  Brotli an;
  brotli_comp_level 6;
  brotli_types Text/Klartext/CSS-Anwendung/JSON-Anwendung/X-Javascript-Text/XML-Anwendung/Xml-Anwendung/Xml+RSS-Text/Javascript-Anwendung/Javascript-Bild/SVG+XML;
  …

Starten Sie neu, aktualisieren Sie die Seite, um den Header anzuzeigen, und stellen Sie fest, dass es

Akzeptieren Sie die Kodierung: gzip, deflate, br

Wie in der Abbildung gezeigt

Dies bedeutet, dass die Brotli-Komprimierung aktiviert ist.

Konfigurationsanweisungen

Anleitung Einführung

ngx_brotli definiert die folgenden Anweisungen:

brotli, ob eine dynamische Komprimierung von Antwortdaten zugelassen werden soll, optionale Werte sind „on“ und „off“, und der Standardwert ist „off“. Ein Beispiel dafür ist wie folgt:

Brotli an;

brotli_types, wenn die dynamische Komprimierung aktiviert ist, die MIME-Typen, die komprimiert werden dürfen, der Standardwert ist text/html. Ein Beispiel dafür ist wie folgt:

brotli_types Text/Klartext/CSS-Text/XML-Anwendung/XML-Anwendung/JSON-Text/Javascript-Anwendung/Javascript-Anwendung/X-Javascript;

brotli_static: ob die Suche nach vorverarbeiteten komprimierten Dateien mit der Endung .br erlaubt ist. Die optionalen Werte sind on, off und always. Der Standardwert ist off. Ein Beispiel dafür ist wie folgt:

brotli_static aus;

brotli_comp_level, Komprimierungsstufe, der optionale Wertebereich ist 0~11, der Standardwert ist 6. Ein Beispiel dafür ist wie folgt:

brotli_comp_level 11;

brotli_buffers, die Anzahl und Größe der beim Komprimieren von Antwortdaten zu verwendenden Puffer. Ein Beispiel dafür ist wie folgt:

brotli_puffer 16 8k;

brotli_window, der von Brotli verwendete Fensterwert, der Standardwert ist 512k. Ein Beispiel dafür ist wie folgt:

brotli_fenster 512k;

brotli_min_length, die Mindestlänge der Antwortdaten. Wenn die Länge unter diesem Wert liegt, wird der Brotli-Algorithmus nicht zum Ausführen von Komprimierungsvorgängen verwendet. Der Brotli-Algorithmus verwendet Content-Length, um die Länge der Antwortdaten zu bestimmen. Ein Beispiel dafür ist wie folgt:

brotli_min_länge 20;

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Beispiel für die Aktivierung der Brotli-Algorithmus-Komprimierung in Nginx
  • Nginx verwendet den Gzip-Algorithmus zum Komprimieren von Nachrichten
  • Detaillierte Erläuterung der zugrunde liegenden Implementierungsmethode des Nginx-Polling-Algorithmus
  • Ein kurzes Verständnis mehrerer Planungsalgorithmen für den siebenschichtigen Lastenausgleich von Nginx
  • Nginx-Lastausgleichsalgorithmus und Failover-Analyse
  • C# implementiert den glatten, gewichteten Polling-Algorithmus von Nginx
  • Detaillierte Analyse der vier Planungsalgorithmen von nginx und erweiterte
  • Detaillierte Erläuterung des Implementierungsprozesses von Nginx zur Aktivierung des Brotli-Komprimierungsalgorithmus

<<:  Einfache Implementierung der Handheld-Sperrfeuerfunktion + Textschüttel-Spezialeffektcode basierend auf JS

>>:  So installieren und implementieren Sie MySQL schnell im Windows-System (grüne, kostenlose Installationsversion)

Artikel empfehlen

Detaillierte Zusammenfassung des JavaScript-Arrays

Inhaltsverzeichnis 1. Array-Induktion 1. Teilen S...

Implementierung der MySQL-Konfiguration SSL-Zertifikat-Login

Inhaltsverzeichnis Vorwort 1. MySQL ermöglicht SS...

Die Grundprinzipien und die detaillierte Verwendung des Ansichtsfensters

1. Übersicht über das Ansichtsfenster Mobile Brow...

Der Unterschied zwischen MySQL-Datenbankhost 127.0.0.1 und localhost

Viele meiner Freunde haben möglicherweise ein Pro...

Lösen Sie das MySQL 5.7.9 Version sql_mode=only_full_group_by Problem

MySQL 5.7.9 Version sql_mode=only_full_group_by P...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...

Wie MySQL Milliarden von Datenverkehr unterstützt

Inhaltsverzeichnis 1 Master-Slave-Lese-/Schreibtr...

Weitergabe von Techniken für Farbkontrast und -harmonie im Web

Farbkontrast und Harmonie Unter kontrastierenden ...