Hantera förfallodatum för webbinnehåll i Azure Content Delivery Network

Filer från offentligt tillgängliga ursprungswebbservrar kan cachelagras i Azure Content Delivery Network tills TTL(Time To Live) förflutit. TTL bestäms av Cache-Control huvudet i HTTP-svaret från ursprungsservern. Den här artikeln beskriver hur du anger Cache-Control rubriker för webappfunktionen i Microsoft Azure App Service, Azure Cloud Services, ASP.NET program och IIS-webbplatser (Internet Information Services), som alla är konfigurerade på samma sätt. Du kan ange Cache-Control rubriken antingen med hjälp av konfigurationsfiler eller programmatiskt.

Du kan också styra cacheinställningarna från Azure-portalen genom att ange cachelagringsregler för innehållsleveransnätverk. Om du skapar en eller flera cachelagringsregler och ställer in cachelagringsbeteendet på Åsidosätt eller Kringgå cacheminnet ignoreras de cachelagringsinställningar som anges i den här artikeln. Information om allmänna cachelagringsbegrepp finns i Så här fungerar cachelagring.

Dricks

Du kan välja att inte ange någon TTL för en fil. I det här fallet tillämpar Azure Content Delivery Network automatiskt en standard-TTL på sju dagar, såvida du inte har konfigurerat cachelagringsregler i Azure-portalen. Denna standard-TTL gäller endast för allmänna webbleveransoptimeringar. För stora filoptimeringar är standard-TTL en dag, och för medieströmningsoptimeringar är standard-TTL ett år.

Mer information om hur Azure Content Delivery Network fungerar för att påskynda åtkomsten till filer och andra resurser finns i Översikt över Azure Content Delivery Network.

Ange cachekontrollhuvuden med hjälp av cachelagringsregler för innehållsleveransnätverk

Den bästa metoden för att ange en webbservers Cache-Control huvud är att använda cachelagringsregler i Azure-portalen. Mer information om cachelagringsregler för innehållsleveransnätverk finns i Kontrollera cachelagringsbeteendet för Azure Content Delivery Network med cachelagringsregler.

Kommentar

Cachelagring regler är endast tillgängliga för Azure CDN Standard från Edgio-profiler. För Azure CDN Premium från Edgio-profiler måste du använda regelmotorn för Azure Content Delivery Network i Hantera portalen för liknande funktioner.

Så här navigerar du till sidan för CDN-cachelagringsregler:

  1. I Azure-portalen väljer du en nätverksprofil för innehållsleverans och väljer sedan slutpunkten för webbservern.

  2. I det vänstra fönstret under inställningar, väljer du Cachelagringsregler.

    Skärmbild av knappen cachelagringsregler för innehållsleveransnätverket.

    Sidan Cachelagringsregler visas.

    Skärmbild av cachelagringssidan för innehållsleveransnätverket.

Så här anger du en webbservers Cache-Control-huvuden med hjälp av globala cachelagringsregler:

  1. Under Globala cachelagringsregler anger du Beteende för cachelagring av frågesträngar till Ignorera frågesträngar och anger Cachelagring beteende till Åsidosättning.

  2. För cachens giltighetstid anger du 3600 i rutan Sekunder eller 1 i rutan Timmar .

    Skärmbild av exemplet med globala cachelagringsregler för innehållsleveransnätverket.

    Den här globala cachelagringsregeln anger en cachevaraktighet på en timme och påverkar alla begäranden till slutpunkten. Den åsidosätter alla Cache-Control ELLER Expires HTTP-huvuden som skickas av ursprungsservern som anges av slutpunkten.

  3. Välj Spara.

Så här anger du cachekontrollrubrikerna för en webbserverfil med hjälp av anpassade cachelagringsregler:

  1. Under Anpassade cachelagringsregler skapar du två matchningsvillkor:

    1. För det första matchningsvillkoret anger du Matcha villkor till Sökväg och anger /webfolder1/* för Match-värde. Ange Cachelagring beteende till Åsidosätt och ange 4 i rutan Dagar.

    2. För det andra matchningsvillkoret anger du Matcha villkor till Sökväg och anger /webfolder1/file1.txt för Match-värde. Ange Cachelagring beteende till Åsidosätt och ange 2 i rutan Dagar.

    Skärmbild av exemplet med anpassade cachelagringsregler för innehållsleveransnätverket.

    Den första anpassade cachelagringsregeln anger en cachevaraktighet på fyra dagar för alla filer i /webfolder1 mappen på ursprungsservern som anges av slutpunkten. Den andra regeln åsidosätter endast den file1.txt första regeln för filen och anger en cachevaraktighet på två dagar för den.

  2. Välj Spara.

Ange cachekontrollhuvuden med hjälp av konfigurationsfiler

För statiskt innehåll, till exempel bilder och formatmallar, kan du styra uppdateringsfrekvensen genom att ändra konfigurationsfilerna applicationHost.config eller Web.config för webbprogrammet. Om du vill ange Cache-Control rubriken för ditt innehåll använder du elementet <system.webServer>/<staticContent>/<clientCache> i någon av filerna.

Använda ApplicationHost.config-filer

ApplicationHost.config-filen är rotfilen i IIS-konfigurationssystemet. Konfigurationsinställningarna i en ApplicationHost.config-fil påverkar alla program på webbplatsen, men åsidosätts av inställningarna för alla Web.config-filer som finns för ett webbprogram.

Använda Web.config-filer

Med en Web.config-fil kan du anpassa hur hela webbappen eller en specifik katalog i webbprogrammet fungerar. Normalt har du minst en Web.config-fil i rotmappen för ditt webbprogram. För varje Web.config-fil i en specifik mapp påverkar konfigurationsinställningarna allt i mappen och dess undermappar, såvida de inte åsidosätts på undermappsnivå av en annan Web.config-fil .

Du kan till exempel ange ett <clientCache> element i en Web.config-fil i rotmappen för webbprogrammet så att allt statiskt innehåll i webbprogrammet cachelagrats i tre dagar. Du kan också lägga till en Web.config-fil i en undermapp med mer variabelt innehåll (till exempel \frequent) och ange dess <clientCache> element som cachelagrar undermappens innehåll i sex timmar. Nettoresultatet är att innehållet på hela webbplatsen cachelagras i tre dagar, förutom allt innehåll i katalogen, som endast cachelagras i \frequent sex timmar.

Följande XML-konfigurationsfilexempel visar hur du ställer in elementet <clientCache> för att ange en maximal ålder på tre dagar:

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

Om du vill använda attributet cacheControlMaxAge måste du ange värdet för attributet cacheControlMode till .UseMaxAge Den här inställningen gjorde att HTTP-huvudet och -direktivet, Cache-Control: max-age=<nnn>, lades till i svaret. Formatet för tidsintervallvärdet för attributet cacheControlMaxAge är <days>.<hours>:<min>:<sec>. Dess värde konverteras till sekunder och används som värdet för Cache-Controlmax-age direktivet. Mer information om elementet finns i <clientCache> Client Cache <clientCache>.

Ange Cache-Control-huvuden programmatiskt

För ASP.NET program styr du cachelagringsbeteendet för innehållsleveransnätverket programmatiskt genom att ange egenskapen HttpResponse.Cache för .NET-API:et. Information om egenskapen HttpResponse.Cache finns i HttpResponse.Cache-egenskapen och HttpCachePolicy-klassen.

Följ dessa steg för att programmatiskt cachelagrat programinnehåll i ASP.NET:

  1. Kontrollera att innehållet är markerat som cachebart genom att ange HttpCacheability till Public.
  2. Ange en cacheverifierare genom att anropa någon av följande HttpCachePolicy metoder:
    • Anropa SetLastModified för att ange ett tidsstämpelvärde för Last-Modified rubriken.
    • Anropa SetETag för att ange ett värde för ETag rubriken.
  3. Du kan också ange en förfallotid för cachen genom att anropa SetExpires för att ange ett värde för Expires huvudet. Annars gäller standardcachens heuristik som beskrivs tidigare i det här dokumentet.

Om du till exempel vill cachelagrat innehåll i en timme lägger du till följande C#-kod:

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

Testa Cache-Control-huvudet

Du kan enkelt verifiera TTL-inställningarna för ditt webbinnehåll. Med webbläsarens utvecklarverktyg testar du att webbinnehållet Cache-Control innehåller svarshuvudet. Du kan också använda ett verktyg som wget, Postman eller Fiddler för att undersöka svarsrubrikerna.

Nästa steg