Traffic sparen mit mod_deflate unter apache2 (SE > 0.98)

tbc233
Freundlicherweise wird mit der neuen Standardumgebung der Apache2 mit fertig kompiliertem mod_deflate (der quasi Nachfolger von mod_gzip) ausgeliefert. Man muss ihn nur noch in die conf aufnehmen.

Dafür macht man in der /usr/local/pd-admin2/conf/httpd.conf-template entsprechende Einträge:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
 <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 (respektive alle Endungen anfuehren, die nicht komprimiert werden sollen)
SetEnvIfNoCase Request_URI \
\.(?:gif|zip|exe|flv|swf|png|pdf)$ no-gzip dont-vary

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


Anschließend /opt/pdadmin/bin/httpd_vhosts.pl ausführen - fertig.

Wer übrigens den Erfolg (also die Ersparnis durch die Komprimierung) messen möchte, kann in etwa folgendene Einträge in die httpd.conf-template hinzufügen (Pfad zur Logdatei bitte nach eigenem Belieben einstellen und dafür sorgen, dass sie rotiert wird):

code:
1:
2:
3:
4:
5:
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /var/log/apache_deflate.log deflate


Damit erhält man in etwa folgenden Log:

code:
1:
2:
3:
GET /seite1.php HTTP/1.0" 3071/11617 (26%)
GET /seite2.php HTTP/1.0" 2914/12486 (23%)
GET /verzeichnis/index.htm HTTP/1.0" 685/1501 (45%)


Das heißt soviel wie (am Beispiel der ersten Zeile): Datei hatte ursprünglich 11617 Bytes, konnte durch komprimierung mit 3071 Bytes ausgeliefert werden - das sind 26% der Originalgröße.

Freue mich über eure Ergänzungen, Anregungen oder Bedenken.
tbc233
Falls jemand von den Apache Experten noch eine Idee hat - ich such noch eine Möglichkeit, die Komprimierung mittels .htaccess Datei für einzelne Verzeichnise abzuschalten.

Manchmal kommt es nämlich vor (besonders in Zeiten von AJAX Geschichten), dass die Kompirimierung im Weg steht, weil eine Seite Daten nachlädt zum Beispiel. Dann wärs fein, wenn man dem Kunden sagen kann, er möge doch einfach ein .htaccess File mit diesem und jenem Inhalt reinlegen.
snufy99
Ich hab mal ne Frage, sind diese Addons eigentlich noch aktuell? und wie kann man dieses wieder deinstallieren wollte es mal ausprobieren, jetzt habe ich einen ziemlichen ärger mit den ressorcen
Twilo
Zitat:
Original von snufy99
Ich hab mal ne Frage, sind diese Addons eigentlich noch aktuell? und wie kann man dieses wieder deinstallieren wollte es mal ausprobieren, jetzt habe ich einen ziemlichen ärger mit den ressorcen

kurze Antwort...
mache alle Änderungen rückgängig Augenzwinkern

ps. evtl. ist folgendes AddOn etwas für Dich: Addon: addon_deflate bzw. addon_deflate

mfg
Twilo
snufy99
Hab schon in der /usr/local/pd-admin2/conf/httpd.conf-template nach den einträgen geguckt finde aber nicht das was ich nach der Anleitung eingetragen habe.

Ich finde die Tools bzw addons ne super sache. Aber irgendwie mag dies meine CPU nicht. Das andere hatte ich auch schon installiert hatte auch geklappt nur da war das gleiche Problem.


Schade
tbc233
Also ich hab diese Konfiguration auf einigen Servern seit Jahren laufen, ohne Probleme und ohne auffallende CPU Last.

Die Tatsache, dass Du die Einträge ohnehin nicht in der betreffenden Datei findest, deutet IMHO eher auf ein anderes Problem hin.
snufy99
Ich beobachte es erst mal weiter sein heute Nacht war nichts mehr auffälliges zu sehen was die CPU last betrifft.

und ansonsten Probiere ich es nochmals.

Vielen Dank