Varnish config for discourse

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. 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.

1 Like

Ohh ooh. That’s a revelation. Huge bummer.

I don’t think what @RGJ said is correct; you can visit our hosted Fastly community at which goes entirely through Fastly, content and all.

Thanks Jeff. Huge relief. Am I right in assuming that ‘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.

1 Like

Hmmm … no … we never cache any dynamic content. Any caching we do is done in the app.


It is possible that a vary by 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.


Thank you for the clarification. I’ll also post this question on in case they have something interesting.

1 Like

@Quintin_Par I saw you also posted over at Fastly…

Did you ever get this worked out? I’m surprised that even when configured as a “Full Site CDN” that would go offline if their one server with discourse went offline.

I’ve got a setup right now with 2 descent sized web servers and 1 bigger data server. I’m also planning to setup one autoscaling instance at AWS which normally would only see ~5% of traffic, but when spikes come in would scale up additional servers…

My sites traffic comes in big spikes. Previously we had 500,000 users online at once, so that’s a lot of load to plan for…

Still having the site work via the CDN even if the server were down would just be fantastic, but my foremost concern is being able to handle big spikes.


  • Did you end up going with Fastly? Full Site CDN?

  • If you did, how do you feel about your experience with it? If not, what made you decide otherwise?

Thanks so much for any additional feedback you can make the time to offer.

Saw this late. Nope. No real CDN for Varnish/Fastly.