Ich verwende einen Apache als Frontend-Webserver, der die Benutzerlast zwischen 3 Knoten von Tomcat-Webservern verteilt. Dazu verwende ich mod_jk.
Ich möchte wissen, wie ich Apache auf diesem Präsentationsserver so konfigurieren kann, dass alle Dateien mit bestimmten Erweiterungen (wie .js, .png, .jpg) zwischengespeichert werden? mod_cache?
Vielen Dank.
edit: Ich kann an den Tomcat-Webservern nichts ändern. Die ganze Magie muss also auf dem Apache Presentation Load Balancer-Server passieren ...
Antwort1
mod_cache
ist hier tatsächlich die übliche Lösung, wenn Sie möchten, dass der Apache-Server Inhalte für Sie zwischenspeichert.
Soweit mir bekannt ist, ist eine Zwischenspeicherung nach Dateityp oder Dateierweiterung nicht möglich mod_cache
– die Zwischenspeicherung wird durch URL- und Header-Informationen gesteuert (wenn Sie also alle Ihre Bilder zwischenspeichern möchten, geht dies am einfachsten, indem Sie sie aus einem /images
Verzeichnis bereitstellen, die mod_cache
aus diesem Verzeichnis kommenden Inhalte zwischenspeichern und es seine Magie wirken lassen).
mod_file_cache
ist eine Alternative, die Sie in Betracht ziehen können, wenn die Liste der Dinge, die Sie zwischenspeichern möchten, statisch ist (eine bestimmte Liste von JS, Bildern, CSS usw.) – hier gibt es einige zusätzliche Einschränkungen, insbesondere wenn Sie MMapFile
die Dateien im Speicher heiß halten möchten, aber die Leistungsverbesserung im Vergleich zu „herkömmlichen“ Caches wie kann erheblich sein mod_cache
.
Weitere gute Informationen zu den Caching-Funktionen von Apache finden Sieim Caching-Abschnitt der Apache-Dokumentation, aber ich denke, die beiden oben genannten Optionen sind Ihre besten. Wenn Sie etwas Besseres als diese brauchenein CDN ist wahrscheinlich eher Ihre Geschwindigkeit.