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:

Quellcode

  1. 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:

Quellcode

  1. <IfModule mod_deflate.c>
  2. </ifModule>
Damit diese Regeln wirklich nur greifen, wenn mod_deflate aktiviert ist. Dann benötigt man noch die gewohnten Location-Klammern:

Quellcode

  1. <IfModule mod_deflate.c>
  2. <Location />
  3. </Location>
  4. </IfModule>
Nun kann man sich an die eigentliche Konfigurierung machen. Aktivieren lässt sich die Komprimierung allgemein mit dieser Zeile:

Quellcode

  1. SetOutputFilter DEFLATE
Steht das so, funktioniert die Komprimierung bereits.

Nun kann man aber noch weiter konfigurieren.

Außnahmen:

Quellcode

  1. SetEnvIfNoCase Request_URI \
  2. \.(?:gif|jpe?g|png)$ no-gzip dont-vary
  3. SetEnvIfNoCase Request_URI \
  4. \.(?: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 ja schon komprimiert.

Bestimmte Dateitypen:

Quellcode

  1. AddOutputFilterByType DEFLATE text/html text/plain text/xml
In diesem Falle werden nur HTML-, Plain- und XML-Texte komprimiert. Folgende Einzeltypen sind möglich:

Quellcode

  1. AddOutputFilterByType DEFLATE text/html
  2. AddOutputFilterByType DEFLATE text/plain
  3. AddOutputFilterByType DEFLATE text/xml
  4. AddOutputFilterByType DEFLATE text/css
  5. AddOutputFilterByType DEFLATE text/javascript
  6. AddOutputFilterByType DEFLATE application/javascript
  7. AddOutputFilterByType DEFLATE application/xhtml+xml
  8. AddOutputFilterByType DEFLATE application/xml
  9. AddOutputFilterByType DEFLATE application/rss+xml
  10. AddOutputFilterByType DEFLATE application/atom_xml
  11. AddOutputFilterByType DEFLATE application/x-javascript
  12. AddOutputFilterByType DEFLATE application/x-httpd-php
  13. AddOutputFilterByType DEFLATE application/x-httpd-fastphp
  14. AddOutputFilterByType DEFLATE application/x-httpd-eruby
  15. AddOutputFilterByType DEFLATE image/svg+xml
Alles anzeigen
Mehrere kann man wie im Beispiel oben hintereinander anfügen.

Log:

Quellcode

  1. DeflateFilterNote Input instream
  2. DeflateFilterNote Output outstream
  3. DeflateFilterNote Ratio ratio
  4. LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
  5. 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:

Quellcode

  1. “GET /index.php HTTP/1.1″ 8888/77777 (11%)
D.h. also, dass die index.php empfangen wurde, die Originalgröße 77777 Bytes und die komprimierte Größe nur noch 8888 Bytes war. Es wurde auf 11% komprimiert. Das LogFormat kann man beliebig ändern.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

532 mal gelesen

Kommentare 0

Es wurden keine Einträge gefunden.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen