Search code examples
cachingnginxcontent-management-systemsitecoresitecore-dms

Sitecore with DMS vs caching server - how do you handle it?


We're planning to introduce DMS to our customer's Sitecore installation. It's a rather popular site in our country and we have to use proxy caching server (it's Nginx in this case) to make it high-traffic-proof.

However, as far as we know, it's not possible to use all the DMS features with caching proxy enabled - for example personalization of content - if it gets cached it won't be personalized.

Is there a way to make use of all the DMS features with proxy cache turned on? If not, how do you handle this problem for high-traffic sites - is it buying more Content Delivery servers to carry the load, or extending current server with better hardware (RAM, CPU, bandwidth)?


Solution

  • You might try moving away from your proxy caching for some pages, or even all.

    • There's no reason not to use a CDN for static assets and media library assets, so stick with that
    • Leverage Sitecore's built-in html cache for sublayouts/renderings - there are quite a few options for caching
    • Use Sitecore's Debug feature to track down the slowest components on your site
    • Consider using indexes instead of doing "fast" or Sitecore queries
    • Don't do descendants query "//*" (I often see this when calculating selected state for navigation - hint: go the other way, calculate the ancestors of the current page)

    @jammykam wrote an excellent answer on this over here.

    John West wrote a great blog post on this also, though a bit older.

    Good luck!