frank
Goto Top

Apache Modul Deflate (mod-deflate, mod-gzip)

Durch die Module "Deflate" oder "mod_gzip" liefert der Apache 2 Server die Seiten komprimiert aus. In der Regel wird diese Kompression von allen modernen Browsern unterstütz (Internet Explorer 6 , Mozilla, Firefox, Opera usw.). Bei großen Webseiten mit hohen Zugriffszahlen zahlt sich die Installation durch die Reduzierung des Trafiks schnell aus. Positiver Nebeneffekt ? die Seiten werde auch schneller ausgeliefert, da sie kleiner sind.

Da das aktuelle Apache Modul "mod_gzip" unter dem Apache 2.0 von dem internen Modul "mod_deflate" abgelöst wurde, hier mal eine kleine Anleitung dazu.

Bei den meisten Binär-Paketen der großen Distributoren ist mod_deflate schon aktiviert bzw. mit kompiliert.
Diejenigen unter uns, die Ihren Apache aber lieber selbst kompilieren, sollten auf jeden Fall "--enable-deflate" beim Kompilieren mit angeben (wenn man schon gerade dabei ist auch gleich "--with-mpm=worker" mit angeben, das schaltet das Threading ein)
Nach dem Kompilieren und dem Starten des Apache sollte unter /server-info (was man extra in der httpd.conf aktivieren muss) das Modul: mod_deflate.c stehen.

Jetzt fehlen noch die httpd.conf Einträge:
<Location />
  # Insert filter
  SetOutputFilter DEFLATE

  # Netscape 4.x has some problems...
  BrowserMatch ^Mozilla/4 gzip-only-text/html

  # Netscape 4.06-4.08 have some more problems
  BrowserMatch ^Mozilla/4\.0[678] no-gzip

  # MSIE masquerades as Netscape, but it is fine
  # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

  # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
  # the above regex won't work. You can use the following 
  # workaround to get the desired effect:
  BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

  # Don't compress images 
    SetEnvIfNoCase Request_URI \    
      \.(?:gif|jpe?g|png)$ no-gzip dont-vary

  # Make sure proxies don't deliver the wrong content 
  # Header append Vary User-Agent env=!dont-vary
</Location> 

  DeflateFilterNote ratio
  DeflateCompressionLevel 6
Um die Kompressionsrate auch auslesen zu können, kann man das Logfile anpassen:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" (%{ratio}n)" combineddeflate

Jetzt sollte man noch der Logfile Datei das neue Format beibringen ("combineddeflate" anstatt "combined"):
CustomLog /usr/local/apache2/logs/access.log combineddeflate

So das war es. Ob die Seiten jetzt auch wirklich komprimiert ausgeliefert werden, kann man z.B. mit dem PHP Befehl phpinfo() unter "HTTP Headers Information" auslesen.

Weiter Informationen findet Ihr auf der Apache Seite oder hier. Ob die Seite auch wirklich komprimiert ausgeliefert wird, könnt Ihr hier testen.

Links:

Gruß
Frank

Content-Key: 2894

Url: https://administrator.de/contentid/2894

Printed on: April 26, 2024 at 18:04 o'clock