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:
I Azure-portalen väljer du en nätverksprofil för innehållsleverans och väljer sedan slutpunkten för webbservern.
I det vänstra fönstret under inställningar, väljer du Cachelagringsregler.
Sidan Cachelagringsregler visas.
Så här anger du en webbservers Cache-Control-huvuden med hjälp av globala cachelagringsregler:
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.
För cachens giltighetstid anger du 3600 i rutan Sekunder eller 1 i rutan Timmar .
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
ELLERExpires
HTTP-huvuden som skickas av ursprungsservern som anges av slutpunkten.Välj Spara.
Så här anger du cachekontrollrubrikerna för en webbserverfil med hjälp av anpassade cachelagringsregler:
Under Anpassade cachelagringsregler skapar du två matchningsvillkor:
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.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.
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 denfile1.txt
första regeln för filen och anger en cachevaraktighet på två dagar för den.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-Control
max-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:
- Kontrollera att innehållet är markerat som cachebart genom att ange
HttpCacheability
tillPublic
. - Ange en cacheverifierare genom att anropa någon av följande
HttpCachePolicy
metoder:- Anropa
SetLastModified
för att ange ett tidsstämpelvärde förLast-Modified
rubriken. - Anropa
SetETag
för att ange ett värde förETag
rubriken.
- Anropa
- Du kan också ange en förfallotid för cachen genom att anropa
SetExpires
för att ange ett värde förExpires
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.