Freigeben über


IIS-Komprimierung Übersicht

Von Yanbing Shi

Dieser Artikel enthält eine Übersicht über die IIS-Komprimierung.

Was ist IIS-Komprimierung?

IIS Compression ist ein Bündel von zwei Kompriemierungsverfahrensanbietern für IIS, iisbrotli.dll und iiszlib.dll, die die Fähigkeit von IIS zur Komprimierung von HTTP-Antworten erweitern. iisbrotli.dll unterstützt Brotli-Komprimierung, während iiszlib.dll sowohl Gzip- als auch Deflate-Komprimierung unterstützt.

Was ist ein Komprimierungsverfahrensanbieter?

Ein IIS-Komprimierungsverfahrensanbieter:

  • Ist eine austauschbare Erweiterung von IIS StaticCompressionModule und DynamicCompressionModule.
  • Stellt eine Implementierung für ein oder mehrere HTTP-Komprimierungsverfahren bereit.

IIS StaticCompressionModule und DynamicCompressionModule:

  • Laden Sie die registrierten Anbieter von Komprimierungsverfahren zur Laufzeit in Arbeitsprozesse.
  • Nutzen Sie sie, um Komprimierung für statische Dateien und dynamisch generierte Inhalte durchzuführen.

Gründe für die Verwendung der IIS-Komprimierung

IIS enthält einen Standardkomprimierungsverfahrensanbieter gzip.dll:

  • Das unterstützt sowohl Gzip- als auch Deflate- Komprimierung.
  • Wird standardmäßig als gzip-Verfahren in applicationHost.config registriert.

Die Box-gzip.dll basiert auf einer internen Implementierung der Gzip- und Deflate-Codierung und funktioniert ordnungsgemäß. Warum also neue Komprimierungsverfahrensanbieter in IIS Compression einführen?

Höheres Komprimierungsverhältnis mit Brotli-Komprimierung

Brotli-Komprimierung:

  • Ist eine relativ neue Ergänzung zur HTTP-Komprimierung.
  • Der Codierungsalgorithmus und das Format von Brotli werden in der RFC-Spezifikation (Requests For Comment) 7932 angegeben.
  • Mit Brotli komprimierte Antwortdatenströme weisen den Inhaltscodierungstyp „br“ auf.
  • Ist in der Lage, ein höheres Komprimierungsverhältnis als Gzip und Deflate mit geringerer Komprimierungsgeschwindigkeit zu bieten.

Brotli-Dekomprimierung auf der Clientseite (Browser) ist im Allgemeinen schneller. Die Aktivierung der Brotli-Komprimierung kann die Leistung potenziell verbessern, insbesondere für die Bereitstellung statischer Inhalte.

Besserer Gzip-Komprimierungsverfahrensanbieter

Während iiszlib.dll in IIS Compression enthalten ist, bietet Gzip- und Deflate-Komprimierung als Standardanbieter gzip.dll, iiszlib.dll:

  • Ist aktueller.
  • Hat eine bessere Leistung in Bezug auf die CPU-Auslastung.
  • Hat eine bessere dynamische Komprimierungsunterstützung aufgrund der zlib-Bibliothek.

Open Source

IIS Compression:

  • Ist ein unterstütztes Open-Source-Produkt.
  • Quellcode finden Sie im IIS.Compression-Github-Repository.
  • Verwendet die Open-Source Brotli- und zlib-Komprimierungsbibliotheken als Kern-Encoder
  • Überbrückt die brotli- und zlib-Bibliotheken mit IIS-Komprimierungsmodulen, indem die IIS-HTTP-Komprimierungs-API implementiert wird.

Die Offenlegung von IIS Compression als Open Source bietet der Community Transparenz und ermöglicht eine flexible und agile Weiterentwicklung, Fehlerbehebung und Anpassung. Das Projekt dient auch einer allgemeinen Referenz für die Entwicklung eines IIS-Komprimierungsverfahrensanbieters für die Community.

Installieren der IIS-Komprimierung

Vor der Installation

Die iiszlib.dll- und iisbrotli.dll- Komprimierungsverfahrensanbieter sind keine IIS-Module, sie sind Erweiterungen von IIS-StaticCompressionModule und -DynamicCompressionModule. Zur Laufzeit laden StaticCompressionModule und DynamicCompressionModule die Anbieter von Komprimierungsverfahren und übergeben ihnen die Antwortinhaltsdaten zur Komprimierung.

Daher müssen eines oder beide Komprimierungsmodule als Voraussetzung auf dem IIS-Server installiert sein. Informationen zum Installieren der Features finden Sie unter HTTP-Komprimierung. Stellen Sie nach der Installation der Module sicher, dass statische und/oder dynamische Komprimierung für einen gewünschten URL-Namespace aktiviert ist. Informationen zum Aktivieren des entsprechenden Komprimierungstyps finden Sie unter URL-Komprimierung.

Installation

  1. Laden Sie das Release von Microsoft IIS Compression von den folgenden Orten herunter:

    • Microsoft IIS-Komprimierung (x86) hier.

    • Microsoft IIS-Komprimierung (x64) hier.

  2. Öffnen Sie eine Eingabeaufforderung mit Administratorrechten.

  3. Beenden Sie die WAS- und W3SVC-Dienste, indem Sie Folgendes eingeben:

    net stop was /y
    
  4. Führen Sie iiscompression_<architecture>.exe aus. Beispiel:

    msiexec /I iiscompression_x86.msi
    
    msiexec /I iiscompression_amd64.msi
    
  5. Stimmen Sie der Endbenutzer-Lizenzvereinbarung (EULA) zu.

  6. Schließen Sie die Installation ab.

  7. Starten Sie die WAS- und W3SVC-Dienste, indem Sie Folgendes eingeben:

    net start w3svc
    

Das IIS-Komprimierungs-Installationsprogramm legt iisbrotli.dll ab und iiszlib.dll auf %ProgramFiles%\IIS\IIS Compression. Das Installationsprogramm registriert iisbrotli.dll als br (Brotli)-Komprimierungsverfahrensanbieter in applicationHost.config. Außerdem wird der standardmäßige gzip- Komprimierungsverfahrensanbieter gzip.dll durch iiszlib.dllersetzt. Nachfolgend sehen Sie ein Beispiel <httpCompression>-Element in applicationHost.config:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
    <scheme name="gzip" dll="%ProgramFiles%\IIS\IIS Compression\iiszlib.dll" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/atom+xml" enabled="true" />
        <add mimeType="application/xaml+xml" enabled="true" />
        <add mimeType="image/svg+xml" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>