I'm trying to track down an apparent issue where reproxies to urls which
contain large files are blocking all other requests.
When I noticed that these requests were failing initially, I added
persist_backend=on and persist_client_timeout=300 to my perlbal.conf
(shown below).
I'm seeing the issue manifested as gaps in my server logs on the order
of 378 seconds consistently. So far the evidence leads me to believe
that these reproxy requests to urls which contain large files are
blocking other requests.
I was looking around in ReproxyManager came across this line in
spawn_backend. If I'm understanding this correctly and
max_reproxy_connections is not set in perlbal.conf, does this mean only
one reproxy backend can be spawned at a time?
202 # see if we have too many already?
203 my $max = $ReproxyMax{$ipport} || $ReproxyGlobalMax || 0;
CREATE POOL my_apaches
POOL my_apaches ADD 127.0.0.1:9999
CREATE SERVICE balancer
SET listen = my.ip.address:80
SET role = reverse_proxy
SET pool = my_apaches
SET persist_client = on
SET persist_backend = on
SET enable_reproxy = true
SET persist_client_timeout = 300
SET verify_backend = off
ENABLE balancer
# always good to keep an internal management port open:
CREATE SERVICE mgmt
SET role = management
SET listen = 127.0.0.1:60000
ENABLE mgmt
# see if we have too many already?
my $max = $ReproxyMax{$ipport} || $ReproxyGlobalMax || 0;
my $count = scalar @{$ReproxyBackends{$ipport} || []};
return if $max && ($count >= $max);