summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorAndrew Godwin2022-12-14 23:48:28 -0700
committerGitHub2022-12-14 23:48:28 -0700
commite0053b69ded06ef246db6239baeea87617a2621c (patch)
tree3a2e9fa6815557743f8c973c4011956b43670674 /docs
parent3dc28ea9f29ec044fd54faa82069ba465347e70f (diff)
downloadtakahe-e0053b69ded06ef246db6239baeea87617a2621c.tar.gz
takahe-e0053b69ded06ef246db6239baeea87617a2621c.tar.bz2
takahe-e0053b69ded06ef246db6239baeea87617a2621c.zip
Hammer home CDN more
Diffstat (limited to 'docs')
-rw-r--r--docs/tuning.rst37
1 files changed, 24 insertions, 13 deletions
diff --git a/docs/tuning.rst b/docs/tuning.rst
index 7a5c6b2..37594d6 100644
--- a/docs/tuning.rst
+++ b/docs/tuning.rst
@@ -5,6 +5,30 @@ This page contains a collection of tips and settings that can be used to
tune your server based upon its users and the other servers it federates
with.
+We recommend that all installations are run behind a CDN, and
+have caches configured. See below for more details on each.
+
+
+CDNs
+----
+
+Takahē is *designed to be run behind a CDN*. It serves most static files directly
+from its main webservers, which is inefficient if called directly, but they
+have ``Cache-Control`` headers set so that the CDN can do the heavy lifting -
+more efficiently than offloading all files to something like S3.
+
+If you don't run behind a CDN, things will still work, but even a medium
+level of traffic might put the webservers under a lot of load.
+
+If you do run behind a CDN, ensure that your CDN is set to respect
+``Cache-Control`` headers from the origin. Some CDNs go purely off of file
+extensions by default, which will not capture all of the proxy views Takahē
+uses to show remote images without leaking user information.
+
+If you don't want to use a CDN but still want a performance improvement, a
+read-through cache that respects ``Cache-Control``, like Varnish, will
+also help if placed in front of Takahē.
+
Scaling
-------
@@ -165,16 +189,3 @@ Examples::
A local memory cache, inside the Python process. This will consume additional
memory for the process, and should not be used with the MEDIA or AVATARS caches.
-
-CDNs
-----
-
-You can use Takahē with a "read through" CDN that takes over your site's main
-domain serving and passes some requests through to Takahē as a backend.
-
-Takahē sets the appropriate ``Vary`` headers to ensure that cache leakage does
-not happen, and ``Last-Modified`` and ``ETag`` headers to allow the CDN to
-correctly expire cache items.
-
-Takahē does not yet support offloading local media URLs (such as profile images
-and post images) to a *separate* CDN URL; this will be coming in the future.