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 gedrag ​ voor 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 Web ​ of ​ 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