AEM Publish
AEM Publish-tjänsten har två primära cachningslager, AEM as a Cloud Service CDN och AEM Dispatcher. En kundhanterad CDN kan också placeras framför AEM as a Cloud Service CDN. AEM as a Cloud Service CDN levererar toppmaterial och levererar upplevelser med låg latens till användare i hela världen. AEM Dispatcher tillhandahåller cachelagring direkt framför AEM Publish och används för att minska onödig belastning på AEM Publish.
{align="center"}
CDN
AEM as a Cloud Service CDN:s cachelagring styrs av headers i HTTP-svarscache och är avsedd att cachelagra innehåll för att optimera balansen mellan aktualitet och prestanda. CDN ligger mellan slutanvändaren och AEM Dispatcher och används för att cachelagra innehåll så nära slutanvändaren som möjligt, vilket ger en bättre prestanda.
{align="center"}
Att konfigurera hur CDN cachelagrar innehåll begränsas till att ange cacherubriker för HTTP-svar. Dessa cacherubriker ställs vanligtvis in i AEM Dispatcher värdkonfigurationer med mod_headers
, men kan också anges i anpassad Java™-kod som körs i AEM Publish.
När cachelagras HTTP-begäranden/svar?
AEM as a Cloud Service CDN cachelagrar bara HTTP-svar, och alla följande kriterier måste vara uppfyllda:
- HTTP-svarsstatusen är
2xx
eller3xx
- HTTP-begärandemetoden är
GET
ellerHEAD
- Minst en av följande HTTP-svarsrubriker finns:
Cache-Control
,Surrogate-Control
ellerExpires
- HTTP-svaret kan vara vilken innehållstyp som helst, inklusive HTML, JSON, CSS, JS och binära filer.
Som standard har HTTP-svar som inte cachelagrats av AEM Dispatcher automatiskt alla headers för HTTP-svarscache tagits bort för att undvika cachelagring vid CDN. Det här beteendet kan åsidosättas noggrant med hjälp av mod_headers
med direktivet Header always set ...
när det behövs.
Vad cachelagras?
AEM as a Cloud Service CDN cachelagrar följande:
- HTTP-svarsbrödtext
- HTTP-svarsrubriker
Vanligtvis cachelagras en HTTP-begäran/ett HTTP-svar för en enskild URL som ett enskilt objekt. CDN kan emellertid hantera cachelagring av flera objekt för en enda URL när rubriken Vary
anges för HTTP-svaret. Undvik att ange Vary
för rubriker vars värden inte har en tätt kontrollerad uppsättning värden, eftersom detta kan leda till många cachemissar, vilket minskar träffkvoten för cachen. Granska dokumentationen för variantcachelagring om du vill ha stöd för cachelagring av olika begäranden på AEM Dispatcher.
Cachelagring cdn-cache-life
Den AEM Publish CDN är TTL-baserad (time-to-live), vilket innebär att cachetiden bestäms av HTTP-svarshuvuden Cache-Control
, Surrogate-Control
eller Expires
. Om rubrikerna för HTTP-svarscache inte anges av projektet och kriteriernauppfylls, anger Adobe en standardcachetid på 10 minuter (600 sekunder).
Så här påverkar cacherubrikerna CDN-cachens livslängd:
Cache-Control
HTTP-svarshuvudet anger för webbläsaren och CDN hur länge svaret ska cachelagras. Värdet anges i sekunder.Cache-Control: max-age=3600
instruerar till exempel webbläsaren att cachelagra svaret i en timme. Detta värde ignoreras av CDN om även HTTP-svarshuvudetSurrogate-Control
finns.Surrogate-Control
HTTP-svarshuvudet instruerar AEM CDN hur länge svaret ska cachelagras. Värdet anges i sekunder.Surrogate-Control: max-age=3600
instruerar till exempel CDN att cachelagra svaret i en timme.Expires
HTTP-svarshuvudet anger AEM CDN (och webbläsaren) hur länge det cachelagrade svaret är giltigt. Värdet är ett datum.Expires: Sat, 16 Sept 2023 09:00:00 EST
instruerar till exempel webbläsaren att cachelagra svaret tills det angivna datumet och den angivna tiden.
Använd Cache-Control
för att styra cachetiden när den är densamma för både webbläsaren och CDN. Använd Surrogate-Control
när webbläsaren ska cachelagra svaret med en annan varaktighet än CDN.
Standardcachetid
Om ett HTTP-svar kvalificerar för AEM Dispatcher-cachelagring per ovan-kvalificerare, är följande standardvärden såvida det inte finns någon anpassad konfiguration.
Anpassa cacheregler
Konfigurationen av hur CDN cachelagrar innehållbegränsas till att ange cacherubriker för HTTP-svar. Dessa cacherubriker ställs vanligtvis in AEM Dispatcher vhost
-konfigurationer med mod_headers
, men kan även ställas in i anpassad Java™-kod som körs i AEM Publish.
AEM Dispatcher
{align="center"}
När cachelagras HTTP-begäranden/svar?
HTTP-svar för motsvarande HTTP-begäranden cachelagras när alla följande villkor uppfylls:
-
HTTP-begärandemetoden är
GET
ellerHEAD
HEAD
HTTP-begäranden cachelagrar bara HTTP-svarshuvuden. De har inga svarsorgan.
-
HTTP-svarsstatusen är
200
-
HTTP-svaret är INTE för en binär fil.
-
URL-sökvägen för HTTP-begäran avslutas med ett tillägg, till exempel:
.html
,.json
,.css
,.js
osv. -
HTTP-begäran innehåller ingen auktorisering och autentiseras inte av AEM.
- Cachelagring av autentiserade begäranden kan dock aktiveras globalt eller selektivt via behörighetskänslig cachning.
-
HTTP-begäran innehåller inga frågeparametrar.
- Om du konfigurerar ignorerade frågeparametrar kan HTTP-begäranden med de ignorerade frågeparametrarna cachelagras/hanteras från cachen.
-
HTTP-begärans sökväg matchar en Tillåt-Dispatcher-regel och matchar inte en Neka-regel.
-
HTTP-svar har inte någon av följande HTTP-svarshuvuden inställda av AEM Publish:
no-cache
no-store
must-revalidate
Vad cachelagras?
AEM Dispatcher cachelagrar följande:
-
HTTP-svarsbrödtext
-
HTTP-svarshuvuden har angetts i Dispatcher cacherubrikskonfiguration. Se standardkonfigurationen som levereras med AEM Project Archettype.
Cache-Control
Content-Disposition
Content-Type
Expires
Last-Modified
X-Content-Type-Options
Cachelagring
AEM Dispatcher cachelagrar HTTP-svar med följande metoder:
- Till dess att ogiltigförklaringen utlöses via funktioner som publicering eller avpublicering av innehållet.
- TTL (time-to-live) när har konfigurerats explicit i Dispatcher-konfigurationen. Se standardkonfigurationen i AEM Project Archetype genom att granska
enableTTL
-konfigurationen.
Standardcachetid
Om ett HTTP-svar kvalificerar för AEM Dispatcher-cachelagring per ovan-kvalificerare, är följande standardvärden såvida det inte finns någon anpassad konfiguration.
Anpassa cacheregler
Den AEM Dispatcher-cachen kan konfigureras via Dispatcher-konfigurationen, inklusive:
- Vad som cachelagras
- Vilka delar av cachen som blir ogiltiga vid publicering/avpublicering
- Vilka parametrar för HTTP-frågebegäran som ignoreras vid utvärdering av cache
- Vilka HTTP-svarshuvuden som cachelagras
- Aktivera eller inaktivera TTL-cachelagring
- … och mycket mer
Om mod_headers
används för att ange cacherubriker påverkar inte konfigurationen vhost
Dispatcher-cachning (TTL-baserad) eftersom dessa läggs till i HTTP-svaret när AEM Dispatcher bearbetar svaret. För att påverka Dispatcher-cachning via HTTP-svarshuvuden krävs anpassad Java™-kod som körs i AEM Publish och som anger lämpliga HTTP-svarshuvuden.