CDN-caching inschakelen

Leer hoe u het in cache plaatsen van HTTP-reacties in AEM as a Cloud Service CDN inschakelt. Het in cache plaatsen van reacties wordt geregeld door Cache-Control -, Surrogate-Control - of Expires HTTP-antwoordcache-headers.

Deze cacheheaders worden doorgaans ingesteld in AEM Dispatcher-hostconfiguraties met mod_headers , maar kunnen ook worden ingesteld in aangepaste Java™-code die wordt uitgevoerd in AEM Publish zelf.

Standaardgedrag voor caching

Wanneer aangepaste configuraties NIET aanwezig zijn, worden de standaardwaarden gebruikt. In het volgende schermafbeelding, kunt u het standaardcaching gedrag voor AEM zien publiceren en Auteur wanneer een 🔗 gebaseerd mynewsite AEM-project van de Archetype van het Project van AEM wordt opgesteld.

Standaard caching gedrag {width="800" modal="regular"}

Herzie AEM publiceren - Het leven van het standaardgeheime voorgeheugenen Auteur van AEM - Het leven van het standaardgeheime voorgeheugenvoor meer informatie.

Samengevat plaatst AEM as a Cloud Service de meeste inhoudstypen (HTML, JSON, JS, CSS en Assets) in AEM Publish en een aantal inhoudstypen (JS, CSS) in AEM Author.

Opslaan in cache inschakelen

Als u het standaardgedrag voor het in cache plaatsen wilt wijzigen, kunt u de cachekoppen op twee manieren bijwerken.

  1. de gastheerconfiguratie van Dispatcher: slechts beschikbaar voor AEM publiceert.
  2. de code van Java™ van de Douane: Beschikbaar voor zowel de Publish als Auteur van AEM.

Laten we elk van deze opties bekijken.

Dispatcher-hostconfiguratie

Deze optie is de aanbevolen methode voor het inschakelen van caching, maar is alleen beschikbaar voor publicatie in AEM. Als u de cachekoppen wilt bijwerken, gebruikt u de instructies mod_headers module en <LocationMatch> in het hostbestand van Apache HTTP Server. De algemene syntaxis ziet er als volgt uit:

<LocationMatch "$URL$ || $URL_REGEX$">
    # Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed.
    Header unset Cache-Control
    Header unset Surrogate-Control
    Header unset Expires

    # Instructs the web browser and CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
    Header set Cache-Control "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX"

    # Instructs the CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
    Header set Surrogate-Control "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX"

    # Instructs the web browser and CDN to cache the response until the specified date and time.
    Header set Expires "Sun, 31 Dec 2023 23:59:59 GMT"
</LocationMatch>

Het volgende vat het doel van elke kopbal en toepasselijke attributen voor de kopbal samen.

Webbrowser
CDN
Beschrijving
Cachebeheer
Deze header bepaalt de webbrowser en de CDN-cache.
Surrogaatcontrole
Deze header bestuurt het CDN-cache-leven.
Verloopt
Deze header bepaalt de webbrowser en de CDN-cache.
  • max-age: Dit attribuut controleert TTL of "tijd om"van de reactieinhoud in seconden te leven.
  • schaal-terwijl-revalidate: Dit attribuut controleert de stapelstaat behandeling van de antwoordinhoud bij CDN laag wanneer ontvangen verzoek binnen de gespecificeerde periode in seconden is. De stapelstaat is de tijdperiode nadat TTL is verlopen en alvorens de reactie opnieuw wordt bevestigd.
  • schaal-als-fout: Dit attribuut controleert de stapelstaat behandeling van de antwoordinhoud bij CDN laag wanneer de oorsprongsserver niet beschikbaar is en ontvangen verzoek binnen de gespecificeerde periode in seconden is.

Herzie de staleness en herbevestigingdetails voor meer informatie.

Voorbeeld

Om het Webbrowser en CDN geheim voorgeheugenleven van het inhoudstype van HTML aan 10 minuten zonder de behandeling van de stapelstaat te verhogen, volg deze stappen:

  1. Zoek in uw AEM-project het gewenste vhst-bestand in de map dispatcher/src/conf.d/available_vhosts .

  2. Werk het vhost-bestand (bijvoorbeeld wknd.vhost ) als volgt bij:

    code language-none
    <LocationMatch "^/content/.*\.(html)$">
        # Removes the response header if present
        Header unset Cache-Control
    
        # Instructs the web browser and CDN to cache the response for max-age value (600) seconds.
        Header set Cache-Control "max-age=600"
    </LocationMatch>
    

    De gastheerdossiers in dispatcher/src/conf.d/enabled_vhosts folder zijn symlinks aan de dossiers in dispatcher/src/conf.d/available_vhosts folder, zodat zorg ervoor om tot symlinks te leiden als niet aanwezig.

  3. Stel de vhost veranderingen in het gewenste milieu van AEM as a Cloud Service op gebruikend Cloud Manager - de Pijpleiding van Config van de Rij van het Webof RDE bevelen.

Als u echter verschillende waarden wilt hebben voor de webbrowser en de levensduur van de CDN-cache, kunt u de header Surrogate-Control in het bovenstaande voorbeeld gebruiken. Op dezelfde manier kunt u de header Expires gebruiken om de cache op een bepaalde datum en tijd te laten verlopen. Met de kenmerken stale-while-revalidate en stale-if-error kunt u ook de manier bepalen waarop de status van de reactie-inhoud in de schaal wordt verwerkt. Het project van AEM WKND heeft de de staatsbehandeling van de a verwijzingssteenCDN geheim voorgeheugenconfiguratie.

Op dezelfde manier kunt u de cachekoppen ook bijwerken voor andere inhoudstypen (JSON, JS, CSS en Assets).

Aangepaste Java™-code

Deze optie is zowel beschikbaar voor publiceren in AEM als voor auteur. Het wordt echter afgeraden caching in te schakelen in AEM Author en het standaardgedrag voor caching te behouden.

Gebruik het HttpServletResponse -object in de aangepaste Java™-code (Sling servlet, Sling servlet filter) om de cacheheaders bij te werken. De algemene syntaxis ziet er als volgt uit:

// Instructs the web browser and CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
response.setHeader("Cache-Control", "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX");

// Instructs the CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
response.setHeader("Surrogate-Control", "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX");

// Instructs the web browser and CDN to cache the response until the specified date and time.
response.setHeader("Expires", "Sun, 31 Dec 2023 23:59:59 GMT");
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69