Standardeinstellungen für den integrierten Cache

Die integrierte Cachefunktion von Citrix ADC bietet integrierte Richtlinien mit Standardeinstellungen sowie Anfangseinstellungen für die Standardinhaltsgruppe. Die Informationen in diesem Abschnitt definieren die Parameter für die integrierten Richtlinien und die Standardinhaltsgruppe.

Standard-Caching-Richtlinien

Der integrierte Cache verfügt über integrierte Richtlinien. Die Citrix ADC Appliance wertet die Richtlinien in einer bestimmten Reihenfolge aus, wie in den folgenden Abschnitten erläutert.

Sie können diese integrierten Richtlinien mit einer benutzerdefinierten Richtlinie überschreiben, die an eine Richtlinienbank für Anforderungszeitüberschreibung oder Antwortzeitüberschreibung gebunden ist.

Hinweis: Wenn Sie Richtlinien vor Version 9.0 konfiguriert und beim Binden der Richtlinien den Parameter -precedeDefRules angegeben haben, werden diese während der Migration automatisch den Überschreibungszeit-Bindungspunkten zugewiesen.

Standardrichtlinien anzeigen

Die integrierten Richtliniennamen beginnen mit einem Unterstrich (_). Sie können die integrierten Richtlinien über die Befehlszeile und die Verwaltungskonsole mit dem Befehl show cache policy anzeigen.

Standardanforderungsrichtlinien

Sie können die folgenden integrierten Anforderungszeitrichtlinien überschreiben, indem Sie neue Richtlinien konfigurieren und sie an den Verarbeitungspunkt für die Anforderungszeitüberschreibung binden. Beachten Sie in den folgenden Richtlinien, dass die MAY_NOCACHE-Aktion vorschreibt, dass die Transaktion nur zwischengespeichert wird, wenn eine vom Benutzer konfigurierte oder integrierte CACHE-Direktive zur Antwortzeit vorhanden ist.

Die folgenden Richtlinien sind an die Richtlinienbeschriftung _reqBuiltinDefaults gebunden. Sie werden in der Prioritätsreihenfolge aufgeführt.

Cache keine Antwort für eine Anforderung, die eine andere Methode als GET verwendet.

Der Richtlinienname ist _nonGetReq. Die folgende Richtlinienregel ist:

!HTTP.REQ.METHOD.eq(GET)

Legen Sie eine NOCACHE-Aktion für eine Anforderung mit einem Header-Wert fest, der If-Match oder If-Unmodified-Since enthält.

Der Richtlinienname ist _advancedConditionalReq. Die folgende Richtlinienregel ist:

HTTP.REQ.HEADER("If-Match").EXISTS || HTTP.REQ.HEADER("If-Unmodified-Since").EXISTS

Legen Sie eine MAY_NOCACHE Aktion für eine Anforderung mit den folgenden Header-Werten fest: Cookie, Autorisierung, Proxy-Authorization oder eine Anforderung, die den NTLM- oder Negotiate-Header enthält.

Der Richtlinienname ist _personalizedReq. Die folgende Richtlinienregel ist:

HTTP.REQ.HEADER("Cookie").EXISTS || HTTP.REQ.HEADER("Authorization").EXISTS || HTTP.REQ.HEADER("Proxy-Authorization").EXISTS || HTTP.REQ.IS_NTLM_OR_NEGOTIATE

Standardantwortrichtlinien

Sie können die folgenden Standardrichtlinien für die Antwortzeit außer Kraft setzen, indem Sie neue Richtlinien konfigurieren und sie an den Verarbeitungspunkt für die Antwortzeitüberschreibung binden.

Die folgenden Richtlinien sind an das Richtlinienlabel _resBuiltinDefaults gebunden und werden in der Reihenfolge ausgewertet, in der sie aufgeführt sind:

  1. Cache HTTP-Antworten nur, wenn sie vom Typ 200, 304, 307, 203 sind oder wenn die Typen zwischen 400 und 499 oder zwischen 300 und 302 liegen.

    Der Richtlinienname ist _uncacheableStatusRes. Die folgende Richtlinienregel ist:

    !((HTTP.RES.STATUS.EQ(200)) || (HTTP.RES.STATUS.EQ(304)) || (HTTP.RES.STATUS.BETWEEN(400,499)) || (HTTP.RES.STATUS.BETWEEN(300, 302)) || (HTTP.RES.STATUS.EQ(307))|| (HTTP.RES.STATUS.EQ(203)))

  2. Cache eine HTTP-Antwort nicht, wenn sie einen Variy-Header mit einem Wert von etwas anderem als Accept-Encoding hat.

    Das Komprimierungsmodul fügt den Header Vary: Accept_Encoding ein. Der Name dieses Ausdrucks ist _uncacheableVaryRes. Die folgende Richtlinienregel ist:

    ((HTTP.RES.HEADER("Vary").EXISTS) && ((HTTP.RES.HEADER("Vary").INSTANCE(1).LENGTH > 0) || (!HTTP.RES.HEADER("Vary").STRIP_END\_WS.SET_TEXT_MODE(IGNORECASE).eq("Accept-Encoding"))))

  3. Cache-Control-Header-Wert No-Cache, No-Store oder Privat lautet oder wenn der Cache-Control-Header ungültig ist.

    Der Richtlinienname ist _uncacheableCacheControlRes. Die folgende Richtlinienregel ist:

    ((HTTP.RES.CACHE\_CONTROL.IS\_PRIVATE) || (HTTP.RES.CACHE\_CONTROL.IS\_NO\_CACHE) || (HTTP.RES.CACHE\_CONTROL.IS\_NO\_STORE) || (HTTP.RES.CACHE\_CONTROL.IS\_INVALID))

  4. Cache-Control-Header hat einen der folgenden Werte: Public, Must-Revalidate, Proxy-Revalidate, Max-Age, S-Maxage.

    Der Richtlinienname ist _cacheableCacheControlRes. Die folgende Richtlinienregel ist:

    ((HTTP.RES.CACHE_CONTROL.IS_PUBLIC) || (HTTP.RES.CACHE_CONTROL.IS_MAX_AGE) || (HTTP.RES.CACHE_CONTROL.IS_MUST_REVALIDATE) || (HTTP.RES.CACHE_CONTROL.IS_PROXY_REVALIDATE) || (HTTP.RES.CACHE_CONTROL.IS_S_MAXAGE))

  5. Cache keine Antworten, die einen Pragma-Header enthalten.

    Der Name der Richtlinie lautet _uncacheablePragmaRes. Die folgende Richtlinienregel ist:

    HTTP.RES.HEADER("Pragma").EXISTS

  6. Cache-Antworten, die einen Expires-Header enthalten.

    Der Name der Richtlinie lautet _cacheableExpiryRes. Die folgende Richtlinienregel ist:

    HTTP.RES.HEADER("Expires").EXISTS

  7. Wenn die Antwort einen Content-Type-Header mit dem Wert Image enthält, entfernen Sie alle Cookies im Header und speichern Sie sie.

    Der Name der Richtlinie lautet _imageRes. Die folgende Richtlinienregel ist:

    HTTP.RES.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).STARTSWITH("image/")

    Sie können die folgende Inhaltsgruppe für die Arbeit mit dieser Richtlinie konfigurieren:

    add cache contentgroup nocookie -group -removeCookies YES

  8. Cache keine Antwort, die einen Set-Cookie-Header enthält.

    Der Name der Richtlinie lautet _ personalizedRes. Die folgende Richtlinienregel ist:

    HTTP.RES.HEADER(“Set-Cookie”).EXISTS   HTTP.RES.HEADER(“Set-Cookie2”).EXISTS

Einschränkungen für Standardrichtlinien

Sie können die folgenden integrierten Anforderungszeitrichtlinien nicht mit benutzerdefinierten Richtlinien überschreiben.

Diese Richtlinien werden in der Prioritätsreihenfolge aufgeführt.

  1. Zwischenspeichern Sie keine Antworten, wenn die entsprechende HTTP-Anforderung keine GET- oder POST-Methode enthält.
  2. Zwischenspeichern Sie keine Antworten für eine Anforderung, wenn die URL-Länge der HTTP-Anforderung plus Hostname 1744 Byes überschreitet.
  3. Zwischenspeichern Sie keine Antwort für eine Anforderung, die einen If-Match-Header enthält.
  4. Zwischenspeichern Sie keine Anforderung, die einen If-Unmodified-Since Header enthält.

Hinweis Dies unterscheidet sich von der If-Modified-Since Header.

  1. Keine Antwort zwischenspeichern, wenn der Server keinen Ablauf-Header festlegt.

Sie können die folgenden integrierten Richtlinien für die Antwortzeit nicht überschreiben. Diese Richtlinien werden in der Reihenfolge ausgewertet, in der sie aufgeführt sind:

  1. Cache keine Antworten, die einen HTTP-Antwortstatuscode 201, 202, 204, 205 oder 206 haben.
  2. Zwischenspeichern Sie keine Antworten mit einem HTTP-Antwortstatuscode 4xx, mit Ausnahme der Statuscodes 403, 404 und 410.
  3. Cache keine Antworten, wenn der Antworttyp FIN beendet ist oder die Antwort kein der folgenden Attribute aufweist: Content-Length oder Transfer-Encoding: Chunked.
  4. Cache die Antwort nicht, wenn das Cache-Control-Header nicht analysieren kann.

Anfangseinstellungen für die Standard-Content-Gruppe

Wenn Sie das integrierte Caching zum ersten Mal aktivieren, stellt die Citrix ADC Appliance eine vordefinierte Inhaltsgruppe mit der Bezeichnung Standardinhaltsgruppe zur Verfügung. Ausführliche Informationen finden Sie in der Tabelle Standardeinstellungen für Inhaltsgruppen.