Verwalten des Ablaufs von Webinhalt im Azure Content Delivery Network

Dateien von öffentlich zugänglichen Ursprungswebservern können bis zum Ende ihrer Gültigkeitsdauer (TTL) im Azure Content Delivery Network zwischengespeichert werden. Die Gültigkeitsdauer wird durch den Cache-Control-Header in der HTTP-Antwort vom Ursprungsserver bestimmt. In diesem Artikel erfahren Sie, wie Sie Cache-Control-Header für das Web-Apps-Feature von Microsoft Azure App Service, Azure Cloud Services, ASP.NET-Anwendungen und Internetinformationsdienste-Websites (Internet Information Services, IIS) festlegen. Die Konfiguration ist dabei jeweils ähnlich. Sie können den Cache-Control-Header entweder mithilfe von Konfigurationsdateien oder programmgesteuert festlegen.

Sie können die Cacheeinstellungen auch über das Azure-Portal steuern, indem Sie Content Delivery Network-Cacheregeln festlegen. Wenn Sie Cacheregeln erstellen und das Zwischenspeicherverhalten auf Außerkraftsetzung oder Cache umgehen festlegen, werden die in diesem Artikel erörterten vom Ursprung angegebenen Cacheeinstellungen ignoriert. Weitere Informationen zu allgemeinen Cachekonzepten finden Sie unter How caching works (Funktionsweise von Caching).

Tipp

Sie haben auch die Möglichkeit, für eine Datei keine Gültigkeitsdauer festzulegen. In diesem Fall wendet Azure Content Delivery Network automatisch eine Standardgültigkeitsdauer (TTL) von sieben Tagen an, es sei denn, Sie haben Cacheregeln im Azure-Portal eingerichtet. Diese Standardgültigkeitsdauer gilt nur für die Optimierung allgemeiner Webbereitstellungen. Bei der Optimierung großer Dateien beträgt die Standardgültigkeitsdauer einen Tag, bei der Optimierung für das Medienstreaming beträgt die Standardgültigkeitsdauer ein Jahr.

Weitere Informationen dazu, wie Azure Content Delivery Network den Zugriff auf Dateien und andere Ressourcen beschleunigen kann, finden Sie in der Übersicht über Azure Content Delivery Network.

Festlegen von Cache-Control-Headern mithilfe von Content Delivery Network-Cacheregeln

Die bevorzugte Methode zum Einrichten des Cache-Control-Headers für einen Webserver ist die Verwendung von Cacheregeln im Azure-Portal. Weitere Informationen zu Regeln für die Zwischenspeicherung des Inhaltsübermittlungs-Netzwerks finden Sie unter Steuern des Zwischenspeicherungsverhaltens des Azure Content Delivery Network mit Zwischenspeicherungsregeln.

Hinweis

Zwischenspeicherungsregeln sind nur für Azure CDN Standard aus Edgio-Profilen verfügbar. Für Profile vom Typ Azure CDN Premium von Edgio müssen Sie die Azure Content Delivery Network-Regel-Engine im Verwaltungsportal verwenden, um von einer ähnlichen Funktionalität zu profitieren.

So navigieren Sie zur Seite mit den CDN-Cacheregeln

  1. Wählen Sie im Azure-Portal ein Content Delivery Network-Profil und anschließend den Endpunkt für den Webserver aus.

  2. Wählen Sie im linken Bereich unter „Einstellungen“ die Option Cacheregeln aus.

    Screenshot der Schaltfläche „Regeln für die Zwischenspeicherung des Inhaltsübermittlungs-Netzwerks“.

    Die Seite Cacheregeln wird geöffnet.

    Screenshot der Seite zum Zwischenspeichern des Inhaltsübermittlungs-Netzwerks.

So legen Sie mit globalen Cacheregeln Cache-Control-Header für einen Webserver fest

  1. Legen Sie unter Globale Cacheregeln die Option Verhalten für das Zwischenspeichern von Abfragezeichenfolgen auf Abfragezeichenfolgen ignorieren fest. Legen Sie dann das Verhalten beim Zwischenspeichern auf Außerkraftsetzung fest.

  2. Geben Sie für Dauer bis Cacheablauf einen Wert von 3600 im Feld Sekunden ein, oder geben Sie im Feld Stunden den Wert 1 an.

    Screenshot des Beispiels für die globale Zwischenspeicherung des Inhaltsübermittlungs-Netzwerks.

    Mit diesen globalen Cacheregeln wird eine Cachedauer von 1 Stunde festgelegt, die sich auf alle Anforderungen an den Endpunkt auswirkt. Sie überschreibt alle Cache-Control- oder Expires-HTTP-Header, die durch den vom Endpunkt festgelegten Ursprungsserver gesendet werden.

  3. Wählen Sie Speichern aus.

So legen Sie mit benutzerdefinierten Cacheregeln Cache-Control-Header für einen Webserver fest

  1. Erstellen Sie unter Benutzerdefinierte Cacheregeln zwei Übereinstimmungsbedingungen:

    1. Legen Sie die erste Übereinstimmungsbedingung auf Pfad fest, und geben Sie für den Übereinstimmungswert/webfolder1/* ein. Legen Sie Verhalten beim Zwischenspeichern auf Überschreiben fest, und geben Sie „4“ in das Feld Tage ein.

    2. Legen Sie die erste Übereinstimmungsbedingung auf Pfad fest, und geben Sie für den Übereinstimmungswert/webfolder1/file1.txt ein. Legen Sie Verhalten beim Zwischenspeichern auf Überschreiben fest, und geben Sie „2“ in das Feld Tage ein.

    Screenshot des Beispiels für benutzerdefinierte Zwischenspeicherungsregeln für das Inhaltsübermittlungs-Netzwerk.

    Die erste benutzerdefinierte Cacheregel legt eine Cachedauer von vier Tagen für alle Dateien im Ordner /webfolder1 auf dem Ursprungsserver fest, der durch Ihren Endpunkt angegeben wird. Die zweite Regel setzt für die Datei file1.txt die erste Regel außer Kraft und legt eine Cachedauer von zwei Tagen fest.

  2. Wählen Sie Speichern aus.

Festlegen von Cache-Control-Headern mithilfe von Konfigurationsdateien

Bei statischen Inhalten wie Bildern und Stylesheets können Sie die Aktualisierungshäufigkeit durch Ändern der Konfigurationsdateien ApplicationHost.config oder Web.config für Ihre Webanwendung steuern. Um den Cache-Control-Header für Ihren Inhalt festzulegen, verwenden Sie das <system.webServer>/<staticContent>/<clientCache>-Element in einer der beiden Dateien.

Verwenden der „ApplicationHost.config“-Datei

Die Datei ApplicationHost.config ist die Stammdatei des Konfigurationssystems für die Internetinformationsdienste. Die Konfigurationseinstellungen in einer ApplicationHost.config-Datei wirken sich auf alle Anwendungen in der Website aus, werden aber durch die Einstellungen aller für eine Webanwendung vorhandenen Web.config-Dateien außer Kraft gesetzt.

Verwenden von Web.config-Dateien

Mit einer Web.config-Datei können Sie das Verhalten Ihrer gesamten Webanwendung oder eines bestimmten Verzeichnisses in Ihrer Webanwendung anpassen. In der Regel befindet sich im Stammordner Ihrer Webanwendung mindestens eine Web.config-Datei. Für jede Web.config-Datei in einem bestimmten Ordner gilt: Die Konfigurationseinstellungen wirken sich auf alle Inhalte dieses Ordners sowie aller Unterordner aus, solange diese nicht auf Unterordnerebene von einer anderen Web.config-Datei außer Kraft gesetzt werden.

Sie können z.B. ein <clientCache>-Element in einer Web.config-Datei im Stammordner Ihrer Webanwendung festlegen, um alle statischen Inhalte Ihrer Webanwendung drei Tage lang zwischenzuspeichern. Sie können auch eine Web.config-Datei in einem Unterordner mit variableren Inhalten hinzufügen (z.B. \frequent) und das <clientCache>-Element dieser Datei so festlegen, dass der Inhalt des Unterordners sechs Stunden lang zwischengespeichert wird. Dies führt zu folgendem Ergebnis: Der Inhalt der gesamten Website wird drei Tage lang zwischengespeichert, mit Ausnahme aller Inhalte im Verzeichnis \frequent, die nur sechs Stunden lang zwischengespeichert werden.

Das folgende Beispiel einer XML-Konfigurationsdatei veranschaulicht, wie Sie das <clientCache>-Element festlegen, um ein maximales Alter von drei Tagen anzugeben:

<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="3.00:00:00" />
        </staticContent>
    </system.webServer>
</configuration>

Um das cacheControlMaxAge-Attribut zu verwenden, müssen Sie den Wert für das cacheControlMode-Attribut auf UseMaxAge festlegen. Diese Einstellung führt dazu, dass der HTTP-Header und die HTTP-Anweisung Cache-Control: max-age=<nnn> zur Antwort hinzugefügt werden. Das Format des timespan-Werts für das cacheControlMaxAge-Attribut ist <days>.<hours>:<min>:<sec>. Der Wert wird in Sekunden konvertiert und als Wert der Cache-Controlmax-age-Anweisung verwendet. Weitere Informationen zum <clientCache>-Element finden Sie unter Clientcache <clientCache>.

Programmgesteuertes Festlegen von Cache-Control-Headern

Bei ASP.NET-Anwendungen steuern Sie das Verhalten von Content Delivery Network beim Zwischenspeichern mithilfe der HttpResponse.Cache-Eigenschaft der .NET-API programmgesteuert. Informationen zur HttpResponse.Cache-Eigenschaft finden Sie unter HttpResponse.Cache-Eigenschaft und HttpCachePolicy-Klasse.

Führen Sie diese Schritte aus, um Anwendungsinhalt in ASP.NET programmgesteuert zwischenzuspeichern:

  1. Stellen Sie sicher, dass der Inhalt als für die Zwischenspeicherung geeignet gekennzeichnet ist, indem Sie HttpCacheability auf Public festlegen.
  2. Legen Sie eine Cachevalidierung fest, indem Sie eine der folgenden HttpCachePolicy-Methoden aufrufen:
    • Rufen Sie SetLastModified auf, um einen timestamp-Wert für den Last-Modified-Header festzulegen.
    • Rufen Sie SetETag auf, um einen Wert für den ETag-Header festzulegen.
  3. Geben Sie optional eine Ablaufzeit für den Cache an, indem Sie SetExpires aufrufen, um einen Wert für den Expires-Header festzulegen. Andernfalls gilt die Standard-Cacheheuristik, die weiter oben in diesem Dokument beschrieben wurde.

Fügen Sie beispielsweise folgenden C#-Code hinzu, um Inhalt eine Stunde lang zwischenzuspeichern:

// Set the caching parameters.
Response.Cache.SetExpires(DateTime.Now.AddHours(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetLastModified(DateTime.Now);

Testen des Cache-Control-Headers

Sie können die Einstellungen für die Gültigkeitsdauer Ihres Webinhalts ganz einfach überprüfen. Testen Sie mithilfe der Entwicklertools Ihres Browsers, ob Ihr Webinhalt den Cache-Control-Antwortheader enthält. Sie können auch ein Tool wie wget, Postman oder Fiddler verwenden, um die Antwortheader zu untersuchen.

Nächste Schritte