1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-07-29 22:01:14 +03:00

HAProxy's Proxy Protocol acceptor

This commit is contained in:
Quentin Gliech
2022-10-06 11:00:55 +02:00
parent 9309f04880
commit f687ae4ac4
11 changed files with 725 additions and 3 deletions

View File

@ -25,7 +25,7 @@ use mas_config::RootConfig;
use mas_email::Mailer;
use mas_handlers::{AppState, MatrixHomeserver};
use mas_http::ServerLayer;
use mas_listener::maybe_tls::MaybeTlsAcceptor;
use mas_listener::{maybe_tls::MaybeTlsAcceptor, proxy_protocol::MaybeProxyAcceptor};
use mas_policy::PolicyFactory;
use mas_router::UrlBuilder;
use mas_storage::MIGRATOR;
@ -271,7 +271,9 @@ impl Options {
}
}).collect();
info!("Listening on {addresses:?} with resources {resources:?}", resources = &config.resources);
let additional = if config.proxy_protocol { "(with Proxy Protocol)" } else { "" };
info!("Listening on {addresses:?} with resources {resources:?} {additional}", resources = &config.resources);
let router = crate::server::build_router(&state, &config.resources).layer(ServerLayer::new(config.name.clone()));
@ -285,6 +287,7 @@ impl Options {
.map(Ok)
.try_for_each_concurrent(None, move |listener| {
let listener = MaybeTlsAcceptor::new(tls_config.clone(), listener);
let listener = MaybeProxyAcceptor::new(listener, config.proxy_protocol);
Server::builder(listener)
.serve(router.clone().into_make_service())