Implement synchrotron balancing in nginx, replaces need for matrix-synchrotron-balancer

This commit is contained in:
uumas
2023-04-19 15:19:30 +03:00
parent 361e7d7e6b
commit 0f86bfbc02
9 changed files with 39 additions and 116 deletions

View File

@@ -21,13 +21,15 @@ nginx_upstreams:
additional_options:
- "client_max_body_size {{ matrix_max_upload_size_mb }}M"
synchrotron_balancer:
servers: "{{ ['8183'] if synapse_workers.generic_sync is defined else '' }}"
synapse_generic_sync:
servers: "{{ synapse_workers.generic_sync | default('') }}"
method: 'hash $mxid_localpart'
locations:
- name: '~ ^/_matrix/client/(api/v1|r0|v3)/events$'
- name: "{{ '^/_matrix/client/(v2_alpha|r0|v3)/sync$' if 'generic_init_sync' not in synapse_workers | default('') else '' }}"
synchrotron_init:
servers: "{{ ['8184'] if synapse_workers.generic_init_sync is defined else '' }}"
synapse_generic_init_sync:
servers: "{{ synapse_workers.generic_init_sync | default('') }}"
method: 'hash $mxid_localpart'
locations:
- name: '~ ^/_matrix/client/(api/v1|r0|v3)/initialSync$'
- name: '~ ^/_matrix/client/(api/v1|r0|v3)/rooms/[^/]+/initialSync$'
@@ -166,7 +168,7 @@ nginx_upstreams:
servers: "{{ synapse_workers.presence_persister | default('') }}"
locations:
- name: '^/_matrix/client/(api/v1|r0|v3|unstable)/presence/'
maubot:
servers: "{{ ['29316'] if 'maubot' in matrix_extras | default('') else '' }}"
locations:
@@ -190,14 +192,25 @@ nginx_upstreams:
nginx_maps:
sync:
var: "{{ 'arg_since' if synapse_workers.generic_sync is defined and synapse_workers.generic_init_sync is defined else '' }}"
var: "{{ 'arg_since' if synapse_workers.generic_sync is defined and synapse_workers.generic_init_sync is defined else '' }}"
rules:
default: synchrotron_balancer
"''": synchrotron_init
default: synapse_generic_sync
"''": synapse_generic_init_sync
locations:
- name: '~ ^/_matrix/client/(r0|v3)/sync$'
additional_options:
- 'proxy_read_timeout 1h'
mxid_localpart_urlparam:
var: arg_access_token
rules:
default: $arg_access_token
"'~syt_(?<username>.*?)_.*'": $username
mxid_localpart:
var: http_authorization
rules:
default: $http_authorization
"'~Bearer syt_(?<username>.*?)_.*'": $username
"''": $mxid_localpart_urlparam
nginx_servers:
- listen:
@@ -225,14 +238,14 @@ nginx_servers:
- synapse_main
- matrix_media_repo
- synapse_media_repository
- synapse_generic_sync
- synapse_generic_init_sync
- synapse_generic_client
- synapse_generic_login
- synapse_generic_event_send
- synapse_generic_pagination
- synapse_user_dir
- synapse_frontend_proxy
- synchrotron_balancer
- synchrotron_init
- synapse_device_persister
- synapse_typing_persister
- synapse_account_persister