Webserver · 4 min read · Sep 25, 2025

Wie man den Datenverkehr mit mod_deflate von Apache2 spart

In diesem Tutorial werde ich beschreiben, wie man mod_deflate auf einem Apache2-Webserver installiert und konfiguriert. mod_deflate ermöglicht es Apache2, Dateien zu komprimieren und sie an Clients (z. B. Browser) zu liefern, die komprimierte Inhalte verarbeiten können, was die meisten modernen Browser tun. Mit mod_deflate können Sie HTML-, Text- oder XML-Dateien auf ca. 20 - 30 % ihrer ursprünglichen Größe komprimieren, wodurch Sie den Datenverkehr auf dem Server sparen und Ihre Modembenutzer glücklicher machen.

Das Komprimieren von Dateien verursacht eine leicht höhere Last auf dem Server, aber meiner Erfahrung nach wird dies dadurch ausgeglichen, dass die Verbindungszeiten der Clients zu Ihrem Server erheblich sinken. Zum Beispiel könnte ein Modembenutzer, der sieben Sekunden benötigt, um eine unkomprimierte HTML-Datei herunterzuladen, jetzt nur noch zwei Sekunden für dieselbe, aber komprimierte Datei benötigen.

Durch die Verwendung von mod_deflate müssen Sie keine Angst haben, dass Sie Benutzer mit älteren Browsern ausschließen, die keine komprimierten Inhalte verarbeiten können. Der Browser verhandelt mit dem Server, bevor eine Datei übertragen wird, und wenn der Browser keine komprimierten Inhalte verarbeiten kann, liefert der Server die Dateien unkomprimiert.

mod_deflate hat mod_gzip von Apache 1.3 in Apache2 ersetzt. Wenn Sie komprimierte Dateien mit Apache 1.3 bereitstellen möchten, werfen Sie einen Blick auf dieses Tutorial: mod_gzip - Bereitstellung komprimierter Inhalte durch den Apache-Webserver

Ich möchte zuerst sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!

1 mod_deflate aktivieren

Wenn Sie Apache2 installiert haben, sollte mod_deflate bereits auf Ihrem System installiert sein. Jetzt müssen wir es aktivieren. Auf Debian können wir es so machen:

a2enmod deflate

Dann starten Sie Apache2 neu:

service apache2 restart

Auf anderen Distributionen müssen Sie möglicherweise die Konfiguration von Apache2 manuell bearbeiten, um mod_deflate zu aktivieren. Möglicherweise müssen Sie eine Zeile wie diese zum LoadModule-Bereich hinzufügen:

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so

Stellen Sie sicher, dass Sie den Pfad zu mod_deflate.so anpassen und starten Sie danach Apache2 neu.

2 mod_deflate konfigurieren

Die Komprimierung von Dateien kann auf eine von zwei Arten konfiguriert werden: entweder durch explizite Ausschluss von Dateien nach Erweiterung oder durch explizite Einbeziehung von Dateien nach MIME-Typ. Sie können mod_deflate für Ihren gesamten Apache2-Server oder nur für bestimmte virtuelle Seiten aktivieren. Je nachdem, öffnen Sie jetzt entweder den globalen Serverkonfigurationsbereich von Apache2 oder nur den vhost-Konfigurationsbereich, in dem Sie mod_deflate aktivieren möchten.

2.1 Explizite Einbeziehung von Dateien nach MIME-Typ

Wenn Sie nur HTML-, Text- und XML-Dateien komprimieren möchten, fügen Sie diese Zeile zu Ihrer Konfiguration hinzu:

AddOutputFilterByType DEFLATE text/html text/plain text/xml

Dies ist die Konfiguration, die ich verwende, da ich keine Bilder oder PDF-Dateien oder bereits komprimierte Dateien wie Zip-Dateien komprimieren möchte.

2.2 Explizite Ausschluss von Dateien nach Erweiterung

Wenn Sie alle Dateitypen komprimieren und nur einige wenige ausschließen möchten, würden Sie etwas wie dies zu Ihrer Konfiguration hinzufügen (anstatt der Zeile aus Abschnitt 2.1):

SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ \\ no-gzip dont-vary SetEnvIfNoCase Request_URI \\ \\.(?:exe|t?gz|zip|bz2|sit|rar)$ \\ no-gzip dont-vary SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

Dies würde alle Dateien komprimieren, außer Bilder (gif, jpg und png), bereits komprimierte Dateien (wie zip und tar.gz) und PDF-Dateien, was sinnvoll ist, da Sie durch das Komprimieren dieser Dateitypen nicht viel gewinnen.

2.3 Weitere Konfigurationsanweisungen

Unabhängig davon, ob Sie die Konfiguration aus Abschnitt 2.1 oder 2.2 verwenden, sollten Sie diese Zeilen zu Ihrer Konfiguration hinzufügen:

BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Diese Zeilen sind für einige ältere Browser, die keine Komprimierung von Dateien außer HTML-Dokumenten unterstützen.

Die Konfiguration ist jetzt abgeschlossen, und Sie müssen jetzt Apache2 neu starten. Auf Debian machen Sie es so:

service apache2 restart

Um mehr über weitere Konfigurationsanweisungen zu erfahren, werfen Sie einen Blick auf das Apache-Modul mod_deflate.

3 Testen

Um unsere Komprimierung zu testen, fügen wir einige Anweisungen zu unserer mod_deflate-Konfiguration hinzu, die das Kompressionsverhältnis der gelieferten Dateien protokollieren. Öffnen Sie Ihre mod_deflate-Konfiguration und fügen Sie die folgenden Zeilen hinzu:

DeflateFilterNote Input input_info DeflateFilterNote Output output_info DeflateFilterNote Ratio ratio_info LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate CustomLog /var/log/apache2/deflate_log deflate

Stellen Sie sicher, dass Sie /var/log/apache2 durch das Verzeichnis Ihrer Apache2-Protokolle ersetzen. Dies könnte /var/log/httpd, /var/log/httpd2 usw. sein.

Dann starten Sie Apache2 neu. Auf Debian machen Sie es so:

service apache2 restart

Jetzt wird jedes Mal, wenn eine Datei angefordert wird, dies in /var/log/apache2/deflate_log (oder in die Datei, die Sie geändert haben) protokolliert. Eine typische Protokollzeile sieht so aus:

"GET /info.php HTTP/1.1" 7621/45430 (16%)

Sie sehen, dass die Datei info.php angefordert und geliefert wurde. Ihre ursprüngliche Größe betrug 45430 Bytes, und sie wurde auf 7621 Bytes oder 16 % ihrer ursprünglichen Größe komprimiert! Dies ist ein großartiges Ergebnis, und wenn Ihre Website hauptsächlich aus HTML-, Text- und XML-Dateien besteht, wird mod_deflate Ihnen viel Datenverkehr sparen, und für Benutzer mit einer Verbindung mit niedriger Bandbreite wird Ihre Seite viel schneller geladen.

Wenn Sie das Protokollieren nach Ihren Tests nicht mehr benötigen, können Sie die Änderungen aus Abschnitt 3 rückgängig machen und Apache2 neu starten.

4 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.