Cache-Inhalt verwalten
Da beim Caching eine Kopie der bereitgestellten Datei erstellt und gespeichert wird, müssen routinemäßig Pflegemaßnahmen ergriffen werden, damit der Cache ordnungsgemäß funktioniert.
Die Dateien im Cache müssen auf Aktualität geprüft und ungültig gemacht werden, wenn sie nicht mehr mit den Dateien auf dem Ursprungsserver konsistent sind. Ungültige und nicht mehr verwendete Dateien müssen aus dem Cache gelöscht werden, um Platz für neue Dateien zu machen.
Dateiverfall
Die Aufgabe, die Objekte im Cache mit den Originalobjekten auf dem Inhaltsserver konsistent zu halten, wird als Aufrechterhalten der Cacheaktualität bezeichnet. Für jedes Dokument oder andere Objekt, das es zwischenspeichert, berechnet Caching Proxy eine Zeit, zu der das Objekt abläuft.
Für HTTP-Seiten enthält der Header des Dokuments, der vom Inhaltsserver generiert wird, die Informationen zum Verfallszeitpunkt.
Da das FTP-Protokoll keine funktional entsprechenden Ablaufinformationen enthält, generiert Caching Proxy einen eigenen Last-Modified: -Header für FTP-Dateien, die auf den FTP-Verzeichnisinformationen für die einzelnen Dateien basieren, und verwendet diese Informationen zur Berechnung der Ablaufzeiten. Wenn der Proxy-Server keine Verzeichnisinformationen für die Datei vom FTP-Server abrufen kann, wird der Standardwert verwendet, der der FTP- URL entspricht. Da es kein Standarddatumsformat für FTP-Server gibt, ist Caching Proxy möglicherweise nicht in der Lage, das von einigen FTP-Servern gesendete Datum und die Uhrzeit zu verstehen. In diesem Fall wird die Standardablaufzeit des Proxy-Serversverwendet. Durch Verwendung dieser Prozedur
kann der Proxy-Server das Caching von HTTP-Seiten und FTP-Dateien auf ähnliche Weise durchführen.
- Der Inhaltsserver gibt den Header
Cache-control: s-maxage= nan. Damit wird dem Proxy-Server mitgeteilt, dass das Objekt für den Zeitraum von n Sekunden nach dem Empfang aktuell bleibt. - Der Inhaltsserver gibt den Header
Cache-control: max-age= nan. Damit wird dem Proxy-Server mitgeteilt, dass das Objekt für den Zeitraum von n Sekunden nach dem Empfang aktuell bleibt. - Der Inhaltsserver gibt den Header
Expires: nan. Damit wird dem Proxy-Server mitgeteilt, dass das Objekt für den mit n angegebenen Zeitraum aktuell bleibt. - Der Inhaltsserver gibt mit dem Header
Last-Modified: nden Zeitpunkt an, zu dem das Dokument zuletzt geändert wurde. Der Proxy-Server berechnet die Zeitspanne seit der letzten Änderung des Dokuments, multipliziert diese mit dem Faktor letzte Änderung für den Cache (Cache Last Modified), der in der Konfigurationsdatei des Proxy-Servers definiert ist, und geht dann davon aus, dass das Dokument für die errechnete Zeit gültig bleibt. Wenn der Inhaltsserver beispielsweise feststellt, dass das Dokument vor einer Woche (sieben Tage) zuletzt geändert wurde und der Faktor letzte Änderung für den Cache auf 0.14 gesetzt ist, geht der Proxy-Server davon aus, dass das Dokument ungefähr einen Tag lang gültig ist. Anweisungen zum Festlegen des Faktors 'Letzte Änderung im Cache' finden Sie im Abschnitt Cache-Aktualität konfigurieren . - Wenn keine der oben genannten Informationen vom Content-Server angegeben wird, sucht Caching Proxy nach der Einstellung "Cache Default Expiry", die mit der aktuellen URL übereinstimmt, und verwendet diese für die Ablaufzeit.
Nachdem die Ablaufzeit wie beschrieben berechnet wurde, prüft Caching Proxy , ob für diese URLein Mindestwert Hold gilt. Ist dies der Fall und ist die angegebene Zeit länger als die errechnete Verfallszeit, wird die angegebene Mindesthaltezeit (Hold) als Verfallszeit des Objekts verwendet. Dies gilt auch dann, wenn Caching Proxy eine Ablaufzeit von 0 Minuten für ein Dokument berechnet. Sie müssen deshalb bei der Einstellung der Mindesthaltezeit (Hold) sorgfältig vorgehen, um zu
verhindern, dass veraltete Inhalte bereitgestellt werden. (Verwenden Sie zum Festlegen des Mindestwerts für Hold die Anweisung CacheMinHold oder die Einstellung Cachekonfiguration -> Cacheablaufeinstellungen: URL Expiration .
Der endgültige Wert für die Verfallszeit wird mit der Zeit verglichen, die die Einstellung "Zeitlimit" angibt. Ist die Verfallszeit größer als der Wert für das Zeitlimit, wird das Dokument zwischengespeichert. Andernfalls wird es dem Cache nicht hinzugefügt.
Wenn das Dokument im Cache gefunden wird, aber abgelaufen ist, gibt Caching Proxy eine spezielle Anforderung aus, die als if-modified-since -Anforderung an den Content-Server bezeichnet wird. Diese Anforderung veranlasst den Inhaltsserver, das Dokument nur in dem Fall zu senden, wenn es seit dem letzten Empfang auf dem Proxy-Server geändert wurde. Wenn das Dokument nicht geändert wurde, sendet der Inhaltsserver nur eine entsprechende Nachricht und sendet die Seite nicht erneut. In diesem Fall ruft der Proxy-Server das Dokument aus dem Cache ab. Bei FTP-Dateien simuliert der Proxy-Server diesen Prozess, wenn er geändert wurde. Wenn festgestellt wird, dass die Datei auf dem FTP-Server nicht geändert wurde, wird die Datei aus dem Cache abgerufen. Andernfalls wird die neuere Version vom FTP-Server abgerufen.
Wenn eine FTP-Datei im Cache verfällt, simuliert der Proxy-Server die HTTP-Gültigkeitsüberprüfung "if modified since" für die FTP-Datei. Dazu wird der FTP-Befehl LIST für die angeforderte Datei erneut ausgegeben, das Dateidatum aus der Antwort, die vom FTP-Server zurückgegeben wird, syntaktisch analysiert und dieses Datum mit dem Datum verglichen, das der Proxy-Server für den Header "Last-Modified" generiert hat, als die Datei ursprünglich abgerufen wurde. Wenn das Dateidatum nicht geändert wurde, markiert der Proxy-Server die zwischengespeicherte FTP-Datei als erneut validiert, legt eine neue Verfallszeit für die Datei fest und stellt die Datei aus dem Cache bereit, anstatt sie erneut vom FTP-Server abzurufen. Weichen die beiden Dateidaten voneinander ab, ruft der Proxy-Server die Datei erneut vom FTP-Server ab und speichert die neue Kopie mit dem neuen Dateidatum im Cache.
Die Verzeichnisinformationen zu der Datei können nicht immer vom FTP-Server abgerufen werden. Falls
der Proxy-Server das Dateidatum für die FTP-Datei nicht bestimmen kann, generiert er für die Datei keinen
Header "Last-Modified". Stattdessen verwendet er den mit der Anweisung CacheDefaultExpiry angegebenen
Wert für den URL, um zu bestimmen, wie lange die Datei zwischengespeichert bleiben soll. Nach Ablauf dieser Zeit ruft der Proxy-Server die Datei erneut vom FTP-Server
ab. Wenn es den Anschein hat, dass die Anweisung CacheDefaultExpiry für bestimmte FTP-Dateien im Cache häufig verwendet wird
und diese Dateien häufig abgerufen werden (und auf diese
Weise einen hohen Datenverkehr im Netz verursachen), sollten Sie in Erwägung ziehen, für
diese speziellen Dateien eine differenziertere Angabe der Anweisung CacheDefaultExpiry zu
verwenden. Auf diese Weise werden diese Daten länger zwischengespeichert.
Verwenden Sie das Formular Cachekonfiguration -> Cacheablaufeinstellungen -> Zeitlimit für zwischengespeicherte Dateien , um Einstellungen für den Cacheablauf in den Formularen Konfiguration und Verwaltung anzugeben.
Zusätzliche Informationen zur Aktualität des Cache
- Fast alle statischen Webdokumente (im Gegensatz zu dynamisch
generierten Dokumenten) enthalten den Header
Last-Modified. Dieser Header ist die gängigste Methode, mit der Proxys Ablaufzeiten für Dokumente berechnen und die erste Methode, die Caching Proxy für FTP-Dateien versucht. Falls diese Methode fehlschlägt, greift der Proxy-Server auf die Werte für die Standardverfallszeit (Default Expiry) zurück. - Die Header Cache-control:
s-maxage, Cache-control:max-ageundExpires: werden in nur wenigen Dokumenten verwendet. - Dynamisch generierte Seiten, die häufig nicht zwischengespeichert werden können,
können einen Header
Expires: 0oderCache-control: no-cacheenthalten. Diese Header geben an, dass das Dokument sofort verfällt. - Beim Festlegen eines anderen Wertes als 0 Minuten für die Standardverfallszeit (Default Expiry) von URLs mit der Syntax HTTP: ist mit Vorsicht zu verfahren. Viele dynamisch generierte Seiten enthalten keine Header zur Verfallszeit. Für diese wird deshalb die Standardverfallszeit (Default Expiry) verwendet. Wenn Sie eine Standardverfallszeit (Default Expiry) von mehr als 0 Minuten festlegen, kann der Proxy-Server diese Objekte zwischenspeichern. Dies kann jedoch bedeuten, dass Benutzer veraltete Daten abrufen (oder unerwartete Ergebnisse von CGI-Programmen oder Servlets erhalten).
- Unter den folgenden Umständen überprüft der Proxy-Server Dokumente mit dem Server für jede Anforderung erneut, unabhängig davon, ob das zwischengespeicherte Dokument abgelaufen ist:
- Das Dokument enthält einen der folgenden Header:
- Cachesteuerung:
s-maxage - Cachesteuerung:
must-revalidate - Cachesteuerung:
proxy-revalidate
- Cachesteuerung:
- Das Dokument erfordert eine Benutzerberechtigung, darf aber vom Server im Cache gespeichert werden.
- Das Dokument enthält die Cachesteuerung
no-cache header, wird aber trotzdem zwischengespeichert (aufgrund von aggressivem Caching).
- Das Dokument enthält einen der folgenden Header:
Informationen zu Datumsangaben in FTP
Dies gilt nur für Forward-Proxy-Konfigurationen.
- Anders als das HTTP-Protokoll legt das FTP-Protokoll nicht fest, dass zurückgegebene Daten im GMT-Format (westeuropäische Zeit) angegeben werden müssen. Das vom FTP-Server zurückgegebene Datum hat voraussichtlich das lokale Zeitformat des FTP-Servers. Da der Proxy-Server die Zeitzone des FTP-Servers nicht bestimmen kann, interpretiert er die Zeit als Zeit seiner eigenen Zeitzone. Eine Ausnahme ist der Windows-FTP-Server, der Datumsangaben in GMT zurückgibt. Wenn der Proxy feststellt, dass der FTP-Server auf Windows-Systemen ausgeführt wird, wird davon ausgegangen, dass das Verzeichnisdatum in GMT angegeben ist.
- Einige FTP-Server verwenden für das Datum in den zurückgegebenen Verzeichnisinformationen lediglich das Format Monat Tag Jahr ohne Angabe von Stunden oder Minuten. Wenn der FTP-Server keine Angaben zu Stunden und Minuten für die Datei zurückgibt, geht der Proxy-Server davon aus, dass die Datei zuletzt zur spätest möglichen Uhrzeit des vom FTP-Server zurückgegebenen Datums geändert wurde. Wenn der FTP-Server beispielsweise Verzeichnisinformationen für eine Datei zurückgibt, die angibt, dass die Datei zuletzt am 13. Oktober 1998 geändert wurde, aber keine Informationen zu Stunden oder Minuten enthält, geht der Proxy davon aus, dass die Datei um 11:59:59 p.mgeändert wurde. am 13. Oktober 1998. Wenn der FTP-Server kein Windows-FTP-Server ist, konvertiert der Proxy dieses Datum aus seiner eigenen lokalen Zeitzone in die entsprechende GMT-Zeit.
Cache-Aktualität konfigurieren
Um die Verfallszeiten für zwischengespeicherte Dateien anzugeben, wählen Sie im Formular Konfiguration und Verwaltung die Optionen Cachekonfiguration -> Einstellungen für Cacheablaufaus. Die folgenden Formulare sind hilfreich.
Verfallszeit auf URL-Basis
Legen Sie in diesem Formular die Mindestzeit fest, für die Dateien basierend auf ihren URLs im Cache gespeichert bleiben. Sie können für verschiedene URL-Anforderungsschablonen ein unterschiedliches Cache-Verhalten festlegen.
Standardeinstellungen für Verfallszeiten
Im Formular Einstellungen für Verfallszeit des Cache können Sie die Standardeinstellungen für die Verfallszeiten von verwendeten oder nicht verwendeten Dateien definieren. Sie können unterschiedliche Werte für HTTP, FTP, and Gopher -Dateien und unterschiedliche Werte für verwendete oder nicht verwendete Dateien festlegen.
- Verfall zwischengespeicherter Datei überprüfen aktivieren: Dieses Kontrollkästchen ist standardmäßig ausgewählt. Im Allgemeinen empfiehlt es sich, diese Option auszuwählen, um zu verhindern, dass der Server veraltete Inhalte zurückgibt.
- Dateiabruf von fernen Servern inaktivieren: Wählen Sie diese Option aus, wenn der Server keine Dateien von fernen Servern abrufen soll.
- Keine Dateien im Cache speichern, die verfallen innerhalb: Legen Sie mit dieser Option eine Zeitperiode fest, um zu verhindern, dass Dateien zwischengespeichert werden, die bereits nach kurzer Zeit verfallen. Standardmäßig werden Dateien, die bereits nach 10 Minuten verfallen, nicht zwischengespeichert.
- CacheDefaultExpiry -- Standardverfallszeit für Dateien angeben
- CacheExpiryCheck -- Angeben, ob der Server verfallene Dateien zurückgeben soll
- CacheTimeMargin -- Mindestlebensdauer für das Caching einer Datei angeben
- CacheUnused -- Zeitlimit für ungenutzte Dateien im Cache angeben
- CacheNoConnect -- Eigenständigen Cache-Modus angeben
Einstellungen für Faktor letzte Änderung
Im Formular Faktor letzte Änderung wird der Wert festgelegt, mit dem der Proxy-Server das Verfallsdatum für Cache-Dateien berechnet, die keine Verfallsdaten im Header enthalten. Sie können für Dateien, die mit verschiedenen Anforderungsschablonen übereinstimmen, unterschiedliche Werte definieren. Die erste Schablone, mit der eine Übereinstimmung erzielt wird, wird zur Berechnung des Verfallsdatums verwendet.
Cache-Zeitlimit
Im Konfigurationsformular Zeitlimit für Dateien im Cache können Sie die maximale Verweildauer einer Datei im Cache definieren. Die Zeitlimits werden basierend auf den Anforderungsschablonen definiert. Sie können festlegen, dass Dateien nach Ablauf des Zeitlimits gelöscht oder neu überprüft werden sollen. Mit diesen Einstellungen können Dateien, deren Verfallsdaten ungültig sind, oder Dateien mit langen Verfallszeiten verwaltet werden.
Garbage-Collection
Als Teil des Bemühens, gängige URLs im Cache zu halten und die Nutzung von Systemressourcen zu minimieren, führt Caching Proxy den als Garbage-Collectionbezeichneten Bereinigungsprozess aus, bei dem alte oder nicht verwendete Dateien aus dem Cache entfernt werden, um Platz für aktuellere Dateien zu schaffen.
Bei der Garbage-Collection werden die Dateien im Cacheverzeichnis zunächst überprüft. Die verfallenen Dateien werden gelöscht, um den Cache zu verkleinern und Platz für neue Dateien zu schaffen. Die Garbage-Collection wird automatisch durchgeführt. Sie können jedoch einige Einstellungen konfigurieren, um den Prozess an Ihre Voraussetzungen anzupassen.
Garbage-Collection konfigurieren
Wählen Sie zum Konfigurieren der Garbage-Collection im Formular Konfiguration und Verwaltung Cachekonfiguration -> Garbage-Collection-Einstellungenaus. In diesem Formular können Sie den oberen Grenzwert und den unteren Grenzwert definieren. Diese Werte legen fest, wann die Garbage-Collection gestartet und gestoppt wird. Wenn der vom Cache belegte Speicherplatz den als oberen Grenzwert festgelegten Prozentsatz erreicht oder überschreitet, wird die Garbage-Collection gestartet. Die Garbage-Collection wird so lange fortgesetzt, bis der Prozentsatz des durch den Cache belegten Speicherplatzes kleiner-gleich dem unteren Grenzwert ist.
Sie können zwischen zwei Algorithmen für die Garbage-Collection wählen. Der
Algorithmus responsetime (Antwortzeit) optimiert die Antwortzeiten,
indem vorzugsweise große Dateien aus dem Cache entfernt werden. Der Algorithmus bandwith optimiert die Nutzung der Netzbandbreite, indem er bevorzugt kleinere Dateien aus dem Cache entfernt. Sie können einen der beiden
Algorithmen oder eine Kombination aus beiden auswählen.