Is there an official config for discourse that I can use?
There is not an official Varnish config for Discourse.
Not official, but there have been some stabs at it before.
Thanks. A bit surprised there since Discourse has official support for Fastly and that means there should be a config the team uses.
Fastly does standard origin pull, you don’t need to fuss with Varnish. We have already 2 howtos that cover this depending on your level of adventure/pain.
https://community.fastly.com/ is configured using “full site CDN acceleration”
Please correct me if I am wrong, but don’t you need to do invalidation when some one replies, update categories pages when new content is added etc. My understanding is that one needs to run the invalidation logic from the code to caching system. Therefore I thought Discourse should be having a varnish config file that’s probably deployed on Fastly.
no not really, you only have to invalidate stuff you are caching.
Discourse can only use a CDN for static assets, not for content.
Ohh ooh. That’s a revelation. Huge bummer.
Thanks Jeff. Huge relief. Am I right in assuming that https://community.fastly.com/ ‘s varnish config is by them and not by the discourse community.
We generally don’t recommend this config because it is quite complicated and does not get you much that a traditional (and far, far simpler) CDN of static assets does not already deliver.
CDN, in this case is not for performance but for high availability – I offload everything and my single server is hardly hit with more than 1 RPS (almost only the logged in people). In the eventuality that my server goes down(which often does), the read-only site is always up, even if the login and such functionality is limited.
Hmmm … no … we never cache any dynamic content. Any caching we do is done in the app.
It is possible that a
x-discourse-username would allow us to cache for anon via headers. I never experimented with that implementation.
As it stands all dynamic requests like looking at this page hit the app.