Hantera utgång av webbinnehåll i Azure CDN

Filer från offentligt tillgängliga ursprungswebbservrar kan cachelagras i Azure Content Delivery Network (CDN) tills deras TTL (Time to Live) går ut. TTL-värdet bestäms av Cache-Control huvudet i HTTP-svaret från ursprungsservern. I den här artikeln beskrivs hur du anger rubriker för Web Apps-funktionen på Cache-Control Microsoft Azure App Service-, Azure Cloud Services-, ASP.NET-program- och Internet Information Services-webbplatser (IIS), som alla har konfigurerats på samma sätt. Du kan ange rubriken Cache-Control antingen med hjälp av konfigurationsfiler eller programmässigt.

Du kan också styra cacheinställningarna från Azure Portal genom att CDN cachelagringsregler. Om du skapar en eller flera cachelagringsregler och anger deras cachelagringsbeteende till Åsidosätt eller Kringgå cache ignoreras cachelagringsinställningarna från ursprung som beskrivs i den här artikeln. Information om allmänna cachelagringsbegrepp finns i Så här fungerar cachelagring.

Tips

Du kan välja att inte ange någon TTL för en fil. I det här Azure CDN automatiskt en standard-TTL på sju dagar, såvida du inte har angett cachelagringsregler i Azure Portal. Denna standard-TTL gäller endast för allmänna optimeringar av webbleverans. För optimering av stora filer är standard-TTL en dag och för optimering av medieströmning är standard-TTL ett år.

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

Konfigurera Cache-Control med hjälp av CDN cachelagringsregler

Den bästa metoden för att ange en webbservers Cache-Control sidhuvud är att använda cachelagringsregler i Azure Portal. Mer information om hur CDN cachelagringsregler finns i Kontrollera Azure CDN för cachelagring med cachelagringsregler.

Anteckning

Cachelagring är endast tillgängliga för Azure CDN Standard från Verizon och Azure CDN Standard från Akamai-profiler. För Azure CDN Premium från Verizon-profiler måste du använda Azure CDN-regelmotorn i hantera portalen för liknande funktioner.

Gå till sidan CDN cachelagringsregler:

  1. I Azure Portal väljer du CDN profil och sedan slutpunkten för webbservern.

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

    CDN för cachelagringsregler

    Sidan Cachelagringsregler visas.

    CDN cachelagringssida

Så här anger du en webbservers Cache-Control 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 Cachelagring beteende till Åsidosätt.

  2. För Giltighetstid för cache anger du 3600 i rutan Sekunder eller 1 i rutan Timmar.

    CDN exempel på globala cachelagringsregler

    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 - Expires eller HTTP-huvuden som skickas av ursprungsservern som anges av slutpunkten.

  3. Välj Spara.

Så här anger du en webbserverfils Cache-Control med hjälp av anpassade cachelagringsregler:

  1. Under Anpassade cachelagringsregler skapar du två matchningsvillkor:

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

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

    CDN exempel på anpassade cachelagringsregler

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

  2. Välj Spara.

Konfigurera Cache-Control med hjälp av konfigurationsfiler

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

Använda ApplicationHost.config filer

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

Använda Web.config filer

Med en Web.config-fil kan du anpassa hur hela webbappen eller en viss katalog i webbappen beter sig. Normalt har du minst en Web.config i webbappens rotmapp. För varje Web.config-fil i en viss mapp påverkar konfigurationsinställningarna allt i mappen och dess undermappar, såvida de inte åsidosätts på undermappsnivå av en annanWeb.config fil.

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

Följande XML-konfigurationsfilexempel visar hur du ställer in <clientCache> elementet för att ange en högsta å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 Cache-Control: max-age=<nnn> -direktivet, , lades till i svaret. Formatet för tidsspannvärdet för attributet cacheControlMaxAge är <days>.<hours>:<min>:<sec> . Dess värde konverteras till sekunder och används som värde för Cache-Control max-age direktivet. Mer information om elementet <clientCache> finns i Klientcache. <clientCache>

Ange Cache-Control rubriker programmatiskt

För ASP.NET program kan du styra beteendet CDN cachelagring 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 om du vill cachelagra programinnehåll ASP.NET programmässigt i en ASP.NET:

  1. Kontrollera att innehållet är markerat som cachebart genom att ange HttpCacheability till Public .
  2. Ange en cache-validerare 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 SetExpires att anropa för att ange ett värde för Expires -huvudet. Annars gäller standard heuristiken för cachen som beskrivs tidigare i det här dokumentet.

Om du till exempel vill cachelagra 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 sidhuvud

Du kan enkelt kontrollera TTL-inställningarna för ditt webbinnehåll. Med webbläsarens utvecklarverktyg testardu att webbinnehållet innehåller Cache-Control svarshuvudet. Du kan också använda ett verktyg som wget, Postmaneller Fiddler för att undersöka svarshuvudena.

Nästa steg