Ihr kennt das Problem: Ihr habt umfangreiche HTML-Seiten und fetten Traffic nur mit HTML? Muss net sein, denn HTTP/1.1 unterstützt auch gepackte Übertragung. Das heisst, wenn der Browser seine Bereitschaft signalisiert, gepackte Inhalte zu empfangen (und das tun alle modernen Browser), darf der Server auch gepackt übertragen. Zum Zuge kommt bei mod_gzip das altehrwürdige gzip, dieses Encoding wird sogar vom InternetExplorer verstanden. Was ist zu tun? (Anmerkung: für Apache 2.0.x gibt's mod_deflate, das ist Teil der Distribution)
So, jetzt hat der Apache ein gzip-Modul, jetzt noch konfigurieren:
<IfModule mod_gzip>
mod_gzip_on Yes
mod_gzip_can_negotiate Yes
mod_gzip_static_suffix .gz
AddEncoding gzip .gz
mod_gzip_minimum_file_size 500
mod_gzip_maximum_file_size 500000
mod_gzip_maximum_inmem_size 60000
mod_gzip_handle_methods GET POST
mod_gzip_item_include file \.html$
mod_gzip_item_exclude file \.js$
mod_gzip_item_exclude file \.css$
mod_gzip_item_include file \.pl$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/html$
mod_gzip_item_include mime ^text/plain$
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_exclude mime ^image/
mod_gzip_dechunk Yes
LogFormat "%h %l %u %t "%V %r" \
%<s %b mod_gzip: %{mod_gzip_result}n \
In:%{mod_gzip_input_size}n \
-< out:%{mod_gzip_output_size}n = %{mod_gzip_compression_ratio}n Prozent."\
common_with_mod_gzip_info2
CustomLog logs/mod_gzip.log common_with_mod_gzip_info2
mod_gzip_add_header_count Yes
</IfModule>
Jetzt komprimiert der Apache. Jetzt noch ein Schmankerl: Wenn zu einer vorhandenen html-Datei eine Datei html.gz mit neuerm Datum existiert, dann komprimiert mod_gzip die Datei nicht on-the-fly, sondern liefert gleich die komprimierte Datei aus! Und das gibt richtig Performance: Apache muss weniger von der Platte lesen, nicht komprimieren und weniger über Netz schicken! Feine Sache, das.
Links:
| hampft! | -> |