Drupal 8.6.13 hosted on inmotion hosting VPS 2000
Website visitors/users are coming only from one country (Turkey) which is far away from the server location of inmotion hosting (USA).
In below explanation, please be aware I am speaking about my PRODUCTION site and not my DEVELOPMENT site.
My project get around 4000+ nodes per day and most users (not all) visiting those pages are anonymous users (80% anonymous users and 20% authenticated users)
The project mainly built upon those nodes which their contents change frequently... By other words, the website has less than 10 pages like "contact us" and "home" which will be updated around once per 3 months...
The general idea of the project:
There is one role (ROLE A) only responsible of creating those nodes for anonymous users and send the links for those node by email respectively for each user.
So in general, every anonymous user will have one node created for him by ROLE A and send the link of this node to the email address provided (in person) by this anonymous user.
The anonymous user then will click on the link received by email (Ex:
domainname.com/jerwghfgd4534634hfghrt456gdger4) to access/view the node created for him.
The ROLE A will frequently update the content of those nodes in an unknown time:
- after 60 seconds from the node creation time.
- after 10 minutes from the node creation time.
- after 38 minutes from the node creation time.
- after 2 hours from the node creation time.
we can never know when the ROLE A will decide to update the contents of one or more node but the related email address of the anonymous user will get an email informing that your node has been updated.
When any anonymous user receive an email about some updates to the contents of his/her node, and he/she visit the url of the node to see those changes, he/she doesn't see any changes until I (as admin) flash all cashes on the site and purge caches from cpanel so those changes will take effect.
SO THE PROBLEM HERE IS MAINLY ABOUT CACHING...
SOLUTION (as per my understanding)
Since those node are frequently updated so no caching system should be enabled for them and also because the entire site is mainly (90%) based on those changes so I believe no caching system should be enabled for the entire site.
Thinking outloud, I believe I must:
- Disable for good the Internal Page Cache core module.
- Enable the Internal Dynamic Page Cache core module.
- in my cpanel -> cache manager, turn OFF the Enable caching which has the explanation (Enable or disable full page caching. This setting is useful if you are making lots of changes to your site, but it should not be disabled all the time.)
- Install the Cloudflare module (not sure if it is IMPORTANT to be installed)
Point my site to a FREE cloudflare account with:
_ Caching Level set to No query string
_ Browser Cache Expiration set to Respect existing headers
_ Always Online set to ON
_ Development Mode set to OFF
I am using cloudflare because the server is far away from my visitors location and so the cloudflare will help to almost loose the latency available.
Hello experts... the BIG question:
does the explained above is what need to be done for the requirement of my website, or there is another workaround available ?