Verlooptijd van webinhoud in Azure CDN beheren

Bestanden van openbaar toegankelijke bronwebservers kunnen in de cache worden opgeslagen in Azure Content Delivery Network (CDN) totdat de time-to-live (TTL) is verstreken. De TTL wordt bepaald door de Cache-Control header in het HTTP-antwoord van de oorspronkelijke server. In dit artikel wordt beschreven hoe u headers in kunt stellen voor de Web Apps-functie van Cache-Control Microsoft Azure App Service, Azure Cloud Services, ASP.NET-toepassingen en Internet Information Services-sites (IIS), die allemaal op dezelfde manier zijn geconfigureerd. U kunt de Cache-Control header instellen met behulp van configuratiebestanden of programmatisch.

U kunt ook cache-instellingen van de Azure Portal door de CDN in te stellen. Als u een of meer regels voor caching maakt en het cachegedrag in de cache in stelt op Cache negeren of Omzeilen, worden de door de oorsprong geleverde cache-instellingen die in dit artikel worden besproken, genegeerd. Zie How caching works (Hoe caching werkt) voor meer informatie over algemene concepten van caching.

Tip

U kunt ervoor kiezen om geen TTL in te stellen voor een bestand. In dit geval past Azure CDN automatisch een standaard-TTL van zeven dagen toe, tenzij u regels voor caching hebt ingesteld in de Azure Portal. Deze standaard-TTL is alleen van toepassing op algemene optimalisaties voor weblevering. Voor optimalisaties van grote bestanden is de standaard-TTL één dag en voor optimalisaties van mediastreaming is de standaard-TTL één jaar.

Zie Overview of the Azure Content Delivery Network (Overzicht van de Azure-Content Delivery Network) voor meer informatie over hoe Azure CDN de toegang tot bestanden en andere resources Content Delivery Network.

Headers Cache-Control met behulp van CDN cachingregels

De voorkeursmethode voor het instellen van de header van een webserver is het gebruik van regels voor Cache-Control caching in de Azure Portal. Zie Control Azure CDN caching behavior with caching rules (Cachinggedrag met cachingregelsbepalen) voor meer CDN cachingregels.

Notitie

Regels voorcaching zijn alleen beschikbaar voor de profielen Azure CDN Standard van Verizon en Azure CDN Standard van Akamai. Voor Azure CDN Premium van Verizon-profielen moet u de engine Azure CDN gebruiken in de portal beheren voor vergelijkbare functionaliteit.

Ga naar de pagina CDN regels voor caching:

  1. Selecteer in Azure Portal een CDN en selecteer vervolgens het eindpunt voor de webserver.

  2. Selecteer in het linkerdeelvenster onder Instellingen de optie Regels voor opslaan in cache.

    CDN knop Regels voor opslaan in de caching

    De pagina Regels voor opslaan in cache wordt weergegeven.

    CDN-cachingpagina

Als u de headers van een webserver Cache-Control met behulp van globale regels voor caching:

  1. Stel onder Globale regels voor caching het cachinggedrag van queryreeksen in op Queryreeksen negeren en stel Caching in op Overschrijven.

  2. Bij Verlooptijd van cache voert u 3600 in het vak Seconden of 1 in het vak Uren in.

    CDN voorbeeld van globale regels voor caching

    Deze globale regel voor caching stelt een cacheduur van één uur in en is van invloed op alle aanvragen naar het eindpunt. Hiermee worden alle Cache-Control of HTTP-headers overschreven die worden verzonden door de Expires oorspronkelijke server die is opgegeven door het eindpunt.

  3. Selecteer Opslaan.

De headers van een webserverbestand Cache-Control met behulp van aangepaste regels voor opslaan in de caching:

  1. Maak onder Aangepaste regels voor caching twee voorwaarden voor overeenkomst:

    a. Voor de eerste voorwaarde voor overeenkomst stelt u Voorwaarde van overeenkomst in op Pad en voert u in /webfolder1/* voor Overeenkomstwaarde. Stel Caching in op Overschrijven en voer 4 in het vak Dagen in.

    b. Voor de tweede voorwaarde voor overeenkomst stelt u Voorwaarde voor overeenkomst in op Pad en voert u in /webfolder1/file1.txt voor Overeenkomstwaarde. Stel Caching in op Overschrijven en voer 2 in het vak Dagen in.

    CDN voorbeeld van aangepaste regels voor caching

    Met de eerste aangepaste regel voor opslaan in cache wordt een cacheduur van vier dagen ingesteld voor bestanden in de map op de oorspronkelijke server die is opgegeven /webfolder1 door uw eindpunt. De tweede regel overschrijven alleen de eerste regel voor het bestand en stelt een file1.txt cacheduur van twee dagen voor het bestand in.

  2. Selecteer Opslaan.

Het Cache-Control headers instellen met behulp van configuratiebestanden

Voor statische inhoud, zoals afbeeldingen en stijlbladen, kunt u de updatefrequentie beheren door de applicationHost.config- of Web.config-configuratiebestanden voor uw webtoepassing te wijzigen. Als u de Cache-Control header voor uw inhoud wilt instellen, gebruikt u het element in beide <system.webServer>/<staticContent>/<clientCache> bestanden.

ApplicationHost.config gebruiken

Het ApplicationHost.config is het hoofdbestand van het IIS-configuratiesysteem. De configuratie-instellingen in eenApplicationHost.config zijn van invloed op alle toepassingen op de site, maar worden overschrijven door de instellingen van alle Web.config-bestanden die voor een webtoepassing bestaan.

Web.config gebruiken

Met een Web.config kunt u de manier aanpassen waarop uw hele webtoepassing of een specifieke map in uw webtoepassing zich gedraagt. Normaal gesproken hebt u ten minste één Web.config in de hoofdmap van uw webtoepassing. Voor elk Web.config in een specifieke map zijn de configuratie-instellingen van invloed op alles in die map en de submappen ervan, tenzij ze op submapniveau worden overschrijven door een ander Web.config-bestand.

U kunt bijvoorbeeld een element in eenWeb.config-bestand in de hoofdmap van uw webtoepassing instellen om alle statische inhoud in uw webtoepassing drie dagen in de <clientCache> cache op te cachen. U kunt ook een Web.config-bestand toevoegen in een submap met meer variabele inhoud (bijvoorbeeld ) en het element instellen om de inhoud van de submap zes uur in de cache op te \frequent <clientCache> nemen. Het nettoresultaat is dat inhoud op de hele website drie dagen in de cache wordt opgeslagen, met uitzondering van inhoud in de map , die slechts zes uur in \frequent de cache wordt opgeslagen.

In het volgende voorbeeld van een XML-configuratiebestand ziet u hoe u het <clientCache> -element in kunt stellen om een maximale leeftijd van drie dagen op te geven:

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

Als u het kenmerk cacheControlMaxAge wilt gebruiken, moet u de waarde van het kenmerk cacheControlMode instellen op UseMaxAge . Deze instelling heeft ervoor gezorgd dat de HTTP-header en --richtlijn, Cache-Control: max-age=<nnn> , zijn toegevoegd aan het antwoord. De indeling van de waarde voor de periode voor het kenmerk cacheControlMaxAge is <days>.<hours>:<min>:<sec> . De waarde ervan wordt geconverteerd naar seconden en wordt gebruikt als de waarde van de Cache-Control max-age -richtlijn. Zie Clientcache voor meer <clientCache> informatie over het -element. <clientCache>

Headers Cache-Control programmatisch instellen

Voor ASP.NET toepassingen kunt u het cachegedrag CDN door de eigenschap HttpResponse.Cache van de .NET API in te stellen. Zie Eigenschap HttpResponse.Cache en HttpCachePolicy-klassevoor informatie over de eigenschap HttpResponse.Cache.

Als u toepassingsinhoud programmatisch wilt cachen in ASP.NET, volgt u deze stappen:

  1. Controleer of de inhoud is gemarkeerd als cachebaar door in te HttpCacheability stellen op Public .
  2. Stel een cache-validatie in door een van de volgende methoden aan te HttpCachePolicy roepen:
    • Roep SetLastModified aan om een tijdstempelwaarde voor de header in te Last-Modified stellen.
    • Roep SetETag aan om een waarde voor de header in te ETag stellen.
  3. Geef eventueel een verlooptijd van de cache op door aan te roepen SetExpires om een waarde voor de header in te Expires stellen. Anders zijn de standaardcache-heuristieken die eerder in dit document zijn beschreven van toepassing.

Als u bijvoorbeeld inhoud één uur in de cache wilt cachen, voegt u de volgende C#-code toe:

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

De Cache-Control testen

U kunt eenvoudig de TTL-instellingen van uw webinhoud controleren. Test met de ontwikkelhulpprogramma's vanuw browser of uw webinhoud de Cache-Control antwoordheader bevat. U kunt ook een hulpprogramma zoals wget, Postmanof Fiddler gebruiken om de antwoordheaders te onderzoeken.

Volgende stappen