Expand my Community achievements bar.

SOLVED

caching Issue

Avatar

Community Advisor

Hi All 

We are using Akamai CDN, and my content is served from the dispatcher cache. However, I’ve configured the headers at the dispatcher level to set Cache-Control to no-cache and no-store. How is it that the dispatcher is still serving cached content instead of Akamai?

 

Thanks

KNan

 

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @KNan ,

Why are you setting cache-control header to both no-cache and no-store.

Is it not contradictory as they serve different purposes? Cache-control directives tells how caching is handled by browsers and other caches.  

Pls check the @MukeshYadav_  earlier  inputs . 

Thanks,

Somen

 

 

View solution in original post

4 Replies

Avatar

Community Advisor

Cache-control header is mostly to limit your CDN cache. 
For dispatcher cache, you need to provide proper rules in your dispatcher configuration file in order to specify what you want to cache and what not. You can define rules like this if you don't want to cache some content

/0003
      {
      /glob "/content/campaigns/*"
      /type "deny"
}


Check this more details : https://experienceleague.adobe.com/en/docs/experience-manager-dispatcher/using/configuring/dispatche... 

Avatar

Correct answer by
Community Advisor

Hi @KNan ,

Why are you setting cache-control header to both no-cache and no-store.

Is it not contradictory as they serve different purposes? Cache-control directives tells how caching is handled by browsers and other caches.  

Pls check the @MukeshYadav_  earlier  inputs . 

Thanks,

Somen

 

 

Avatar

Level 8

Hello,

Dispatcher uses two types of cache invalidation mechanisms:

  • TTL-based invalidation, but only if you configure 
/enableTTL "1"
  • Stat file-based invalidation

Stat file-based invalidation is the default behavior, which means Dispatcher will cache all configured paths/extensions until they are invalidated. Dispatcher cache invalidation happens when you publish new content from AEM author.

In case you want to use TTL-based caching in Dispatcher you need to set the appropriate cache headers on AEM Publisher. If you want to skip Dispatcher caching completely then add Dispatcher configuration to not cache those paths/extensions.

TTL-based invalidation

If Dispatcher farms have TTL enabled, the Dispatcher will check if the AEM publisher is sending any regular expiration headers from the HTTP standard.

If the headers contain a Cache-Control, max-age, or Expires date, an auxiliary, empty file next to the cached file is created, with the modification time equal to the expiry date. When the cached file is requested past the modification time, it is automatically re-requested from the backend.

Stat file-based invalidation

A “stat file” is an empty file, placed in the DOCROOT and its subsequent folders. Its primary purpose is to signal the Dispatcher that a cache invalidation or update is required. When the dispatcher detects changes in this file, it triggers cache refreshing processes, ensuring the latest content is served to users.

The /statfileslevel is defined in the invalidation.farm file under the /cache section.

 

Hope this helps,

Daniel