Always send /rendezvous routes to the same Synapse worker process (main) to fix QR code login

Related to https://github.com/matrix-org/matrix-spec-proposals/pull/4108
This commit is contained in:
Slavi Pantaleev
2024-11-01 09:52:10 +02:00
parent 1be9944282
commit 8a6b822bbd
2 changed files with 20 additions and 0 deletions

View File

@ -125,6 +125,23 @@ server {
proxy_max_temp_file_size 0;
}
# QR code login (`rendezvous`) locations need to go to the same Synapse process.
# It doesn't necessarily need to be the main process, but it needs to be consistent.
# For simplicity, we'll send them to the main process though.
location ~ {{ matrix_synapse_reverse_proxy_companion_client_server_qr_code_login_locations_regex }} {
{# FIXME: This block was copied from the main Synapse fallback below. It would be better to have it in one place and avoid duplication. #}
{# Use the embedded DNS resolver in Docker containers to discover the service #}
resolver {{ matrix_synapse_reverse_proxy_companion_http_level_resolver }} valid=5s;
set $backend "{{ matrix_synapse_reverse_proxy_companion_client_api_addr }}";
proxy_pass http://$backend;
proxy_set_header Host $host;
client_body_buffer_size 25M;
client_max_body_size {{ matrix_synapse_reverse_proxy_companion_client_api_client_max_body_size_mb }}M;
proxy_max_temp_file_size 0;
}
{# Workers redirects BEGIN #}
{% if generic_workers | length > 0 %}