Seite wählen

Serie High Performance Websites – Teil 4: Weniger ist Mehr !

von | Apr 21, 2009 | Serien

Ein weiterer wichtiger Punkt bei der Optimierung ist das Thema Kompression, hierbei werden sämtliche noch komprimierbaren Inhalte (HTML, CSS, JavaScript, …) geschrumpft und so in einer verkleinerten Version ausgeliefert.
Die durchschnittliche Einsparung durch Komprimierung beträgt bis zu 70% was bedeutet das nur 30% des ursprünglichen Dateiinhaltes übertragen werden müssen. In den meisten Setups wird „gzip“ für die Verkleinerung der ܜbertragungmenge verwendet, gzip bietet hier eine bessere Komprimierungsrate als „deflate“.
Um die Komprimierung in Apache zu aktivieren muss mod_deflate geladen werden, zusätzlich zum laden des Moduls muss in der VirtualHost (oder globalen) Konfiguration die Kompression aktiviert werden.

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript

Zusätzlich lässt sich mit dem Parameter DeflateCompressionLevel der Komprimierungsgrad festlegen, die Grundeinstellung ist hier meist ausreichend.
Einige ältere Browserversionen unterstützen leider keine Kompression, deswegen sollten zusätzlich folgende Einstellungen hinterlegt werden um auch diesen „Exoten“ Zugang zur Webpräsenz zu ermöglichen.

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

Durch die nun gesetzten Einstellungen werden sämtliche „textuellen“ Inhalten wie HTML/CSS oder JS ab jetzt komprimiert übertragen. Im nächsten Teil wird nun noch angeführt wie mittels DNS, Keepalive und der vermeidung von Redirects noch zusätzlich Ladezeit verkürzt werden kann.
Analog hierzu ist die Konfiguration unter Lighttpd, das „deflate“ Modul ist vollständig unter http://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_Deflate dokumentiert. Die Einrichtung ist hier denkbar einfach sofern Lighttpd mit Kompressionsunterstützung übersetzt wurde (sollte in allen Distributionspaketen Standard sein).

4 Kommentare

  1. Klaus

    Einziger Nachteil von mod_deflate: der Content wird bei jedem Request neu komprimiert, was zu einer erheblichen Last auf dem Server führen kann.
    Wenn die Anzahl der zu komprimierenden Dateien eher übersichtlich ist, kann es sich mehr lohnen, diese parallel als komprimierte Datei vorzuhalten, und dann mit mod_headers und mod_rewrite zu arbeiten:
    ForceType text/javascript
    Header set Content-Encoding: gzip
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} !“.*Safari.*“
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteCond %{REQUEST_FILENAME}.gz -f
    RewriteRule (.*)\.js$ $1\.js.gz [L]
    ForceType text/javascript

    Antworten
  2. Klaus

    Leider hat WordPress die spitzen Klammern zerschossen; hier nochmal ein Versuch:

    <FilesMatch „\.js.gz$“>
    ForceType text/javascript
    <IfModule mod_headers.c>
    Header set Content-Encoding: gzip
    </IfModule>
    </FilesMatch>
    <FilesMatch „\.js$“>
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} !“.*Safari.*“
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteCond %{REQUEST_FILENAME}.gz -f
    RewriteRule (.*)\.js$ $1\.js.gz [L]
    ForceType text/javascript
    </FilesMatch>

    Antworten
  3. Voku

    Als Lösung für diese Problem habe ich mir einen Nginx-Proxy gebastelt, der statische Daten (Bilder…) ausliefert und diese zusätzlich für 24 Stunden cacht, alle andern dynamischen Inhalte (php,cgi…) werden sofort an apache durch-gereicht. In meinem Beispiel laufen sowohl der Proxy als auch Apache auf einem Server.
    ->
    Zudem habe ich noch einen kleinen Blog-Eintag zum Thema „Webseiten beschleunigen“ geschrieben. (mod_expires, mod_deflate, yuicompressor…)
    ->

    Antworten
  4. Renate

    Sehr hilfreich! Vielen Dank hierfür!

    Antworten

Trackbacks/Pingbacks

  1. installation.de :: Apache Web-/Tipps&Tricks :: Apache Module DEFLATE zur gzip Ausgabe - [...] Genaue Infos zu den Einstellmöglichkeiten gibt es bei http://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_Deflate und bei https://www.netways.de/2009/04/21/serie-high-performance-websites-teil-4-komprimierung-der-seiten/ [...]

Einen Kommentar abschicken

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

Mehr Beiträge zum Thema Serien