CDN in cache plaatsen uitschakelen
- Onderwerpen:
- CDN-cache
Gemaakt voor:
- Beginner
- Beheerder
- Ontwikkelaar
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
Herzie het standaard in het voorgeheugen onderbrengende gedrag voor AEM publiceren en Auteur wanneer een 🔗 gebaseerd project van de Archetype van het Project van 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.
- de gastheerconfiguratie van Dispatcher: slechts beschikbaar voor AEM publiceert.
- 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 Expires
# Instructs the CDN to not cache the response.
Header set Cache-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.
-
Zoek in uw AEM-project het gewenste vhst-bestand in de map
dispatcher/src/conf.d/available_vhosts
. -
Werk het vhost-bestand (bijvoorbeeld
wknd.vhost
) als volgt bij:<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 CDN to not cache the response. Header set Cache-Control "private" </LocationMatch>
De gastheerdossiers in
dispatcher/src/conf.d/enabled_vhosts
folder zijn symlinks aan de dossiers indispatcher/src/conf.d/available_vhosts
folder, zodat zorg ervoor om tot symlinks te leiden als niet aanwezig. -
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");