[Technik] mod_proxy und Caching (Hintergrund und Konfigurationsvorschlag)

Christof Thalhofer chrisml at deganius.de
Sun May 6 13:55:38 CEST 2007


Hallo Michael,

übrigens... freut mich sehr, dass Du Hostmaster wirst :-)
Mein Glückwunsch!

> Bekannte Probleme:
> 
> Der Einsatz mod_proxy bei Apache 1.3, wie er auch für laut HS-Doku für
> Tomcat empfohlen wird, hat noch immer das "Leerzeichen im URL"-Problem,
> d.h. mod_proxy setzt eingehende "%20" im URL auf " " um. Wir haben
> zumindest für Plone jedoch Workarounds gefunden, so dass wir mod_proxy
> zumindest als Option anbieten können. (Das Problem tritt mit mod_proxy
> unabhängig vom eingeschalteten Cache auf. Das Problem trat in Tests mit
> Apache 2.2 nicht mehr auf.)
> 
> Wir hatten vor längerer Zeit Caching via mod_proxy testweise im Einsatz.
> Damals war uns das vorgenannte Problem jedoch nicht bekannt,
> andererseits hatte ein Genosse Probleme mit beschädigten Grafiken, die
> mit langer Gültigkeitsdauer gecacht worden waren. Daher wurde das
> Caching damals wieder abgeschaltet. Evtl. könnte man daher in der
> Anfangsphase (oder dauerhaft) CacheMaxExpire auf einen kürzeren Zeitraum
> setzen, z.B. von einer oder wenigen Stunden*. Das könnte die Hostmaster
> von Serviceanfragen entlasten, wenn aufgrund einer Fehlkonfiguration
> irrtümlich Inhalte mit langer Gültigkeitsdauer im Cache gelandet wären.

es ist früher (vor Jahren) schon mal diskutiert worden...

Der letzte Stand meines Wissen ist, dass mod_proxy um einiges weniger
leistungsfähig ist im Vergleich zu squid.

Warum also nicht gleich einen squid vorschalten, der alle Zugriffe auf
Port 80 oder 443 entgegennimmt und an die apachen weiterleitet?

Das ist eine Standardtechnik für hochfrequentierte hosts zur
Lastminderung und squid ist auch in einem Maße Standard im Web, dass man
solche eigentlich lächerlichen Bugs wie oben beschrieben kaum antrifft.

Wir surfen hier seit Jahren über einen squid und ich muss den Proxy nie
umgehen. Das halbe web surft über die squids der Provider.

Aber der squid braucht, wie jeder Proxy, viel Ram. Wenn er ständig mit
den Platten rasseln muss, kann man es auch gleich bleiben lassen.

Es muss bei den Apachen nur mod_expires geladen werden, damit sich der
squid von den einzelnen Webseiten aus per .htaccess über die "Expires
HTTP header" steuern lässt (wahrscheinlich geht das mit dem mod-proxy
auch, keine Ahnung), eine Standardeinstellung läßt sich in der
Konfiguration des Apache vorgeben.

Beispiele für die Steuerung per .htaccess :

/home/pacs/xyz00/doms/xyz.de/subs/www/.htaccess
	ExpiresActive On
	ExpiresByType image/gif "access plus 1 days"
	ExpiresByType image/jpg "access plus 1 days"
	ExpiresByType image/png "access plus 1 days"

/home/pacs/xyz00/doms/xyz.de/subs/www/shop/.htaccess
	ExpiresActive On
        ExpiresDefault "access plus 20 minutes"

#Produktbilder
/home/pacs/xyz00/doms/xyz.de/subs/www/shop/images/.htaccess
	ExpiresActive On
        ExpiresDefault "access plus 10 days"

#Forum
/home/pacs/xyz00/doms/xyz.de/subs/www/forum(.htaccess
        ExpiresActive Off

Das einzige, was mir unklar, ist, wie die Umleitungen je nach IP an die
einzelnen (eigene httpd.conf) apachen erfolgen soll.

Alles Gute

Christof Thalhofer


More information about the Technik mailing list