# Generic Worker # # note: # http://localhost:8083 -> matrix-synchrotron-balancer # generic_worker_lc -> upstream_proxy (least_conn) # generic_worker_ih -> upstream_proxy (ip_hash) # ## Sync requests location ~ ^/_matrix/client/(r0|v3)/sync$ { include include.d/synapse-proxy.conf; proxy_pass http://localhost:8083; } location ~ ^/_matrix/client/(api/v1|r0|v3)/events$ { include include.d/synapse-proxy.conf; proxy_pass http://localhost:8083; } location ~ ^/_matrix/client/(api/v1|r0|v3)/initialSync$ { include include.d/synapse-proxy.conf; proxy_pass http://localhost:8083; } location ~ ^/_matrix/client/(api/v1|r0|v3)/rooms/[^/]+/initialSync$ { include include.d/synapse-proxy.conf; proxy_pass http://localhost:8083; } ## Federation requests location ~ ^/_matrix/federation/v1/event/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/state/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/state_ids/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/backfill/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/get_missing_events/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/publicRooms { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/query/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/make_join/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/make_leave/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/(v1|v2)/send_join/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/(v1|v2)/send_leave/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/(v1|v2)/invite/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/event_auth/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/timestamp_to_event/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable/.*)/rooms/.*/aliases { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/exchange_third_party_invite/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/user/devices/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/key/v2/query { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/federation/v1/hierarchy/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } ## Inbound federation transaction request location ~ ^/_matrix/federation/v1/send/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_ih; } ## Client API requests location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/createRoom$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/publicRooms$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/joined_members$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/context/.*$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/members$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/v1/rooms/.*/hierarchy$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(v1|unstable)/rooms/.*/relations/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/v1/rooms/.*/threads$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/unstable/org.matrix.msc2716/rooms/.*/batch_send$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/unstable/im.nheko.summary/rooms/.*/summary$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/account/3pid$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/account/whoami$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/devices$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/versions$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/event/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/joined_rooms$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/v1/rooms/.*/timestamp_to_event$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/search$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/user/.*/filter(/|$) { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/directory/room/.*$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/capabilities$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } ## Encryption requests location ~ ^/_matrix/client/(r0|v3|unstable)/keys/query$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/keys/changes$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/keys/claim$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/room_keys/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/keys/upload/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } ## Registration/login requests location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/login$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/register$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/register/available$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/v1/register/m.login.registration_token/validity$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(r0|v3|unstable)/password_policy$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } # STREAM WRITERS ## Event sending requests location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/send { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)$ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/join/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/knock/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/profile/ { include include.d/synapse-proxy.conf; proxy_pass http://generic_worker_lc; } ## Typing location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/typing { include include.d/synapse-proxy.conf; proxy_pass http://additional; } ## Device requests location ~ ^/_matrix/client/(r0|v3|unstable)/sendToDevice/ { include include.d/synapse-proxy.conf; proxy_pass http://additional; } ## Account data requests location ~ ^/_matrix/client/(r0|v3|unstable)/.*/tags { include include.d/synapse-proxy.conf; proxy_pass http://additional; } location ~ ^/_matrix/client/(r0|v3|unstable)/.*/account_data { include include.d/synapse-proxy.conf; proxy_pass http://additional; } ## Receipts requests location ~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/receipt { include include.d/synapse-proxy.conf; proxy_pass http://additional; } location ~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/read_markers { include include.d/synapse-proxy.conf; proxy_pass http://additional; } ## Presence requests location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/ { include include.d/synapse-proxy.conf; proxy_pass http://presence; }