From d72947f112536b9ae024f48a88eb368d8209f5f9 Mon Sep 17 00:00:00 2001 From: Friedrich Weber Date: Tue, 29 Jul 2025 17:50:55 +0200 Subject: [PATCH] api server: proxy config: read MAX_WORKERS integer key Read the MAX_WORKERS value in /etc/default/. If it is not an integer between 0 and 128, ignore and warn. The lower limit was chosen because at least one worker process must exist. The upper limit was chosen because more than 127 worker processes should not be necessary and a positive impact on performance is doubtful. If this limit turns out to be too low, it can still be extended in the future. Signed-off-by: Friedrich Weber Link: https://lore.proxmox.com/20250729155227.157120-2-f.weber@proxmox.com --- src/PVE/APIServer/Utils.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/PVE/APIServer/Utils.pm b/src/PVE/APIServer/Utils.pm index 1430c98..4cceb71 100644 --- a/src/PVE/APIServer/Utils.pm +++ b/src/PVE/APIServer/Utils.pm @@ -28,6 +28,7 @@ sub read_proxy_config { $shcmd .= 'echo \"DISABLE_TLS_1_3:\$DISABLE_TLS_1_3\";'; $shcmd .= 'echo \"PROXY_REAL_IP_HEADER:\$PROXY_REAL_IP_HEADER\";'; $shcmd .= 'echo \"PROXY_REAL_IP_ALLOW_FROM:\$PROXY_REAL_IP_ALLOW_FROM\";'; + $shcmd .= 'echo \"MAX_WORKERS:\$MAX_WORKERS\";'; my $data = -f $conffile ? `bash -c "$shcmd"` : ''; @@ -77,6 +78,13 @@ sub read_proxy_config { push @$ips, Net::IP->new(normalize_v4_in_v6($ip)) || die Net::IP::Error() . "\n"; } $res->{$key} = $ips; + } elsif ($key eq 'MAX_WORKERS') { + if ($value =~ /^\d+$/ && $value > 0 && $value < 128) { + $res->{$key} = int($value); + } else { + warn "MAX_WORKERS specified in $conffile is not an integer between" + ." 0 and 128: $value\n"; + } } elsif (grep { $key eq $_ } @$boolean_options) { die "unknown value '$value' - use 0 or 1\n" if $value !~ m/^(0|1)$/; $res->{$key} = $value;