CDN in cache plaatsen uitschakelen

Leer hoe u het in cache plaatsen van HTTP-reacties in AEM as a Cloud Service CDN uitschakelt. 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

Het in cache plaatsen van HTTP-reacties in de CDN van AEM as a Cloud Service wordt bestuurd door de volgende HTTP-antwoordheaders vanaf de oorsprong Cache-Control, Surrogate-Control of Expires . Oorspronkelijke reacties die private , no-cache of no-store in Cache-Control bevatten, worden niet in de cache geplaatst.

Herzie het standaardcaching gedragvoor AEM publiceren en Auteur wanneer een project van de Archetype van het Project van AEM gebaseerd AEM wordt opgesteld.

Cache uitschakelen

Als u caching uitschakelt, kan dit negatieve gevolgen hebben voor de prestaties van uw AEM as a Cloud Service-instantie. Wees daarom voorzichtig bij het uitschakelen van het standaardcachegedrag.

Er zijn echter enkele scenario's waarin u caching kunt uitschakelen, zoals:

  • Een nieuwe functie ontwikkelen en de wijzigingen direct bekijken.
  • Inhoud is beveiligd (alleen bedoeld voor geverifieerde gebruikers) of dynamisch (winkelwagentje, bestelgegevens) en mag niet in de cache worden opgeslagen.

Als u caching wilt uitschakelen, 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 wordt aanbevolen voor het uitschakelen van caching, maar is alleen beschikbaar voor AEM Publish. 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 Browser and the CDN to not cache the response.
    Header always set Cache-Control "private"

    # Instructs only the CDN to not cache the response.
    Header always set Surrogate-Control "private"
</LocationMatch>

Voorbeeld

Om CDN caching van de CSS inhoudstypes voor sommige het oplossen van problemendoeleinden onbruikbaar te maken, volg deze stappen.

Als u de bestaande CSS-cache wilt overslaan, moet u het CSS-bestand wijzigen om een nieuwe cachemoets voor het CSS-bestand te genereren.

  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 "^/etc.clientlibs/.*\.(css)$">
        # 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 Expires
    
        # Instructs the Browser and the CDN to not cache the response.
        Header always set Cache-Control "private"
    </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.

Aangepaste Java™-code

Deze optie is zowel beschikbaar voor publiceren in AEM als voor auteur. Gebruik het SlingHttpServletResponse -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:

response.setHeader("Cache-Control", "private");
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69