5
0
mirror of git://git.proxmox.com/git/pve-http-server.git synced 2025-08-03 20:21:56 +03:00

api server: proxy config: read MAX_WORKERS integer key

Read the MAX_WORKERS value in /etc/default/<proxyname>. 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 <f.weber@proxmox.com>
Link: https://lore.proxmox.com/20250729155227.157120-2-f.weber@proxmox.com
This commit is contained in:
Friedrich Weber
2025-07-29 17:50:55 +02:00
committed by Thomas Lamprecht
parent c8579ede6d
commit d72947f112

View File

@ -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;