add Forwarded header
Some checks are pending
Test Nix flake / Test nix flake (push) Waiting to run

This commit is contained in:
XenGi 2026-09-07 23:31:29 +02:00
commit fdd6569d3f
Signed by: xengi
SSH key fingerprint: SHA256:dM+fLZGsDvyv6kunjE8bGduL24VsCFB4LEOSdmRHdG0
5 changed files with 33 additions and 0 deletions

View file

@ -92,6 +92,7 @@ in
proxyPass = "http://unix:${config.services.forgejo.settings.server.HTTP_ADDR}";
extraConfig = ''
client_max_body_size 512M;
proxy_set_header Forwarded "$proxy_forwarded_for_element;$proxy_forwarded_by_element;host=$host;proto=$scheme";
'';
};
"/metrics" = {

View file

@ -82,6 +82,7 @@
client_max_body_size 64M;
proxy_set_header X-Request-ID $request_id;
proxy_http_version 1.1;
proxy_set_header Forwarded "$proxy_forwarded_for_element;$proxy_forwarded_by_element;host=$host;proto=$scheme";
'';
};
"/_synapse/metrics" = {

View file

@ -34,12 +34,16 @@ in
recommendedProxySettings = true;
extraConfig = ''
add_header Content-Security-Policy "frame-src 'self'; default-src 'self'; script-src 'self'; img-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self'; form-action 'self'; upgrade-insecure-requests;" always;
proxy_set_header Forwarded "$proxy_forwarded_for_element;$proxy_forwarded_by_element;host=$host;proto=$scheme";
'';
};
"/socket.io/" = {
proxyPass = "http://${cfg.host}:${toString cfg.port}";
proxyWebsockets = true;
recommendedProxySettings = true;
extraConfig = ''
proxy_set_header Forwarded "$proxy_forwarded_for_element;$proxy_forwarded_by_element;host=$host;proto=$scheme";
'';
};
"/metrics" = {
proxyPass = "http://${cfg.host}:${toString cfg.port}";

View file

@ -83,11 +83,17 @@ in
basicAuthFile = config.age.secrets.grafana_basic_auth.path;
proxyPass = "http://unix:/run/grafana/grafana.sock";
recommendedProxySettings = true;
extraConfig = ''
proxy_set_header Forwarded "$proxy_forwarded_for_element;$proxy_forwarded_by_element;host=$host;proto=$scheme";
'';
};
"/api/live/" = {
proxyPass = "http://unix:/run/grafana/grafana.sock";
recommendedProxySettings = true;
proxyWebsockets = true;
extraConfig = ''
proxy_set_header Forwarded "$proxy_forwarded_for_element;$proxy_forwarded_by_element;host=$host;proto=$scheme";
'';
};
};
};

View file

@ -17,5 +17,26 @@
recommendedOptimisation = true;
recommendedGzipSettings = true;
recommendedBrotliSettings = true;
commonHttpConfig = ''
map $remote_addr $proxy_forwarded_for_element {
# IPv4 addresses can be sent as-is
~^[0-9.]+$ "for=$remote_addr:$remote_port";
# IPv6 addresses need to be bracketed and quoted
~^[0-9A-Fa-f:.]+$ "for=\"[$remote_addr]:$remote_port\"";
default "for=unknown";
}
map $server_addr $proxy_forwarded_by_element {
# IPv4 addresses can be sent as-is
~^[0-9.]+$ "by=$server_addr:$server_port";
# IPv6 addresses need to be bracketed and quoted
~^[0-9A-Fa-f:.]+$ "by=\"[$server_addr]:$server_port\"";
default "by=unknown";
}
'';
};
}