GZIP-Komprimierung mit mod_deflate

Die GZIP-Komprimierung packt die Daten, die der Server an den User versendet, und komprimiert sie dadurch. Der Vorteil dabei ist, dass der Traffic extrem sinkt (Komprimierungen von 70 % sind keine Seltenheit) und somit die Seite schneller geladen wird, da alle Dateien schneller geladen werden konnten.

Um die Komprimierung im Apache 2.x zu aktivieren, benötigt man einige Arbeitsschritte in der httpd.conf.
Diese öffnet man mit einem Texteditor und sucht folgende Zeile:

LoadModule deflate_module modules/mod_deflate.so

Steht vor dieser Zeile noch ein #, so sollte dieses entfernt werden. Damit wird grundsätzlich die Komprimierung aktiviert.

Nun kann man sich die Komprimierung konfigurieren. Standardmäßig wird das immer zwischen den beiden Klammern gemacht:

<IfModule mod_deflate.c> </ifModule>

Damit diese Regeln wirklich nur greifen, wenn mod_deflate aktiviert ist. Dann benötigt man noch die gewohnten Location-Klammern:

<IfModule mod_deflate.c> <Location /> </Location> </IfModule>

Nun kann man sich an die eigentliche Konfigurierung machen. Aktivieren lässt sich die Komprimierung allgemein mit dieser Zeile:

SetOutputFilter DEFLATE

Steht das so, funktioniert die Komprimierung bereits.

Nun kann man aber noch weiter konfigurieren.

Ausnahmen

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

Diese Ausnahmen besagen, dass *.gif, *.jpg, *.jpeg, *.png, *.exe, *.tgz, *.gz, *.zip, *.gz2, *.sit und *.rar nicht komprimiert werden. Warum auch? Sie sind bereits komprimiert.

Bestimmte Dateitypen

AddOutputFilterByType DEFLATE text/html text/plain text/xml

In diesem Falle werden nur HTML-, Plain- und XML-Texte komprimiert. Es sind sämtliche Dateitypen möglich, die dem System als MIME-Type bekannt sind. Beispiele:

AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE application/x-httpd-fastphp AddOutputFilterByType DEFLATE application/x-httpd-eruby AddOutputFilterByType DEFLATE image/svg+xml

Mehrere kann man wie im Beispiel oben hintereinander anfügen.

Log

DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate CustomLog logs/deflate.log deflate

Hierbei wird im Apache-Logverzeichnis eine zusätzliche Log-Datei speziell für die Komprimierung erstellt. In diesem Falle würde sie so aussehen:

“GET /index.php HTTP/1.1″ 8888/77777 (11%)

In diesem Fall wurde die index.php empfangen, die Originalgröße war 77777 Byte und die komprimierte Größe nur noch 8888 Byte. Sie wurde auf 11 % komprimiert. Das LogFormat kann man beliebig ändern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.