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).
Serie High Performance Websites – Teil 4: Weniger ist Mehr !
4 Kommentare
Trackbacks/Pingbacks
- 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
Mehr Beiträge zum Thema Serien
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
Leider hat WordPress die spitzen Klammern zerschossen; hier nochmal ein Versuch:
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…)
->
Sehr hilfreich! Vielen Dank hierfür!