summary refs log tree commit diff
diff options
context:
space:
mode:
authoraceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com>2022-11-07 14:51:53 +0100
committerGitHub <noreply@github.com>2022-11-07 13:51:53 +0000
commit42f9d414c266188645ef2a36eeff05309b779a46 (patch)
tree8a4b2161954848bfd3202845d78c911395821508
parentDo not reject `/sync` requests with unrecognised filter fields (#14369) (diff)
downloadsynapse-42f9d414c266188645ef2a36eeff05309b779a46.tar.xz
Add example on how to load balance /sync requests (#14297)
Signed-off-by: lukas <lukas.walter@aceart.de>

Signed-off-by: lukas <lukas.walter@aceart.de>
-rw-r--r--changelog.d/14297.doc1
-rw-r--r--docs/workers.md8
2 files changed, 6 insertions, 3 deletions
diff --git a/changelog.d/14297.doc b/changelog.d/14297.doc
new file mode 100644
index 0000000000..e418c2a18a
--- /dev/null
+++ b/changelog.d/14297.doc
@@ -0,0 +1 @@
+Add example on how to load balance /sync requests. Contributed by [aceArt](https://aceart.de).
diff --git a/docs/workers.md b/docs/workers.md
index 5e1b9ba220..7ee8801161 100644
--- a/docs/workers.md
+++ b/docs/workers.md
@@ -305,9 +305,11 @@ may wish to run multiple groups of workers handling different endpoints so that
 load balancing can be done in different ways.
 
 For `/sync` and `/initialSync` requests it will be more efficient if all
-requests from a particular user are routed to a single instance. Extracting a
-user ID from the access token or `Authorization` header is currently left as an
-exercise for the reader. Admins may additionally wish to separate out `/sync`
+requests from a particular user are routed to a single instance. This can
+be done e.g. in nginx via IP `hash $http_x_forwarded_for;` or via
+`hash $http_authorization consistent;` which contains the users access token.
+
+Admins may additionally wish to separate out `/sync`
 requests that have a `since` query parameter from those that don't (and
 `/initialSync`), as requests that don't are known as "initial sync" that happens
 when a user logs in on a new device and can be *very* resource intensive, so