From 69f023e6409dd918d7562a66d1af4a35109c5607 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 6 Feb 2020 16:59:59 +0000 Subject: [PATCH 1/2] Route GET /groups queries to workers --- lib/SyTest/Homeserver/Synapse.pm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/SyTest/Homeserver/Synapse.pm b/lib/SyTest/Homeserver/Synapse.pm index 4245c57e5..11aaee37c 100644 --- a/lib/SyTest/Homeserver/Synapse.pm +++ b/lib/SyTest/Homeserver/Synapse.pm @@ -1064,6 +1064,7 @@ sub start $self->{paths}{pem_file} = $self->write_file( "combined.pem", $cert . $key ); $self->{paths}{path_map_file} = $self->write_file( "path_map_file", $self->generate_haproxy_map ); + $self->{paths}{get_path_map_file} = $self->write_file( "get_path_map_file", $self->generate_haproxy_get_map ); $self->{haproxy_config} = $self->write_file( "haproxy.conf", $self->generate_haproxy_config ); @@ -1123,6 +1124,8 @@ defaults frontend http-in bind ${bind_host}:$ports->{haproxy} ssl crt $self->{paths}{pem_file} + use_backend %[path,map_reg($self->{paths}{get_path_map_file},synapse)] if METH_GET + use_backend %[path,map_reg($self->{paths}{path_map_file},synapse)] backend synapse @@ -1178,6 +1181,7 @@ sub generate_haproxy_map ^/_matrix/federation/v1/event_auth/ federation_reader ^/_matrix/federation/v1/exchange_third_party_invite/ federation_reader ^/_matrix/federation/v1/send/ federation_reader +^/_matrix/federation/v1/get_groups_publicised federation_reader ^/_matrix/key/v2/query federation_reader ^/_matrix/client/(api/v1|r0|unstable)/publicRooms$ client_reader @@ -1193,6 +1197,8 @@ sub generate_haproxy_map ^/_matrix/client/(api/v1|r0|unstable)/voip/turnServer$ client_reader ^/_matrix/client/(r0|unstable)/register$ client_reader ^/_matrix/client/(api/v1|r0|unstable)/rooms/.*/messages$ client_reader +^/_matrix/client/(api/v1|r0|unstable)/get_groups_publicised$ client_reader +^/_matrix/client/(api/v1|r0|unstable)/joined_groups$ client_reader ^/_matrix/client/(api/v1|r0|unstable)/keys/upload frontend_proxy @@ -1206,6 +1212,16 @@ sub generate_haproxy_map EOCONFIG } +sub generate_haproxy_get_map +{ + return <<'EOCONFIG'; +^/_matrix/federation/v1/groups/ federation_reader + +^/_matrix/client/(api/v1|r0|unstable)/groups/ client_reader + +EOCONFIG +} + sub secure_port { my $self = shift; From c7b03e75dea1b960206808194e397298d02fc0ec Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 6 Feb 2020 18:44:58 +0000 Subject: [PATCH 2/2] Fixup haproxy routing --- lib/SyTest/Homeserver/Synapse.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/SyTest/Homeserver/Synapse.pm b/lib/SyTest/Homeserver/Synapse.pm index 11aaee37c..022580f72 100644 --- a/lib/SyTest/Homeserver/Synapse.pm +++ b/lib/SyTest/Homeserver/Synapse.pm @@ -1124,7 +1124,8 @@ defaults frontend http-in bind ${bind_host}:$ports->{haproxy} ssl crt $self->{paths}{pem_file} - use_backend %[path,map_reg($self->{paths}{get_path_map_file},synapse)] if METH_GET + acl has_get_map path -m reg -M -f $self->{paths}{get_path_map_file} + use_backend %[path,map_reg($self->{paths}{get_path_map_file},synapse)] if has_get_map METH_GET use_backend %[path,map_reg($self->{paths}{path_map_file},synapse)]