From: Rich Bowen Date: Wed, 20 May 2026 21:28:58 +0000 (+0000) Subject: mod_proxy: document ProxyAsyncDelay and ProxyAsyncIdleTimeout (bz #70055, #70057) X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=d3758f9a164c43fc795b71a1143ec39220bcb9ea;p=thirdparty%2Fapache%2Fhttpd.git mod_proxy: document ProxyAsyncDelay and ProxyAsyncIdleTimeout (bz #70055, #70057) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1934456 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/mod/mod_proxy.xml b/docs/manual/mod/mod_proxy.xml index 058331922e..866e85809b 100644 --- a/docs/manual/mod/mod_proxy.xml +++ b/docs/manual/mod/mod_proxy.xml @@ -2329,4 +2329,81 @@ header for proxied requests + +ProxyAsyncDelay +Time to poll synchronously before handing a connection to the +MPM for asynchronous processing +ProxyAsyncDelay time[s] +server config +virtual host +directory + +Available in Apache HTTP Server 2.5 and later + + +

When an event-capable MPM is in use, this directive enables + asynchronous handling of proxy connections. After writing the + request to the backend, the proxy worker thread will poll for a + response for the duration specified by this directive. If the + backend responds within that time, the response is handled + synchronously within the same thread. If the backend has not + responded, the connection is handed off to the MPM's asynchronous + event loop, freeing the worker thread to serve other requests.

+ +

Setting this directive to 0 causes the connection + to be handed to the event loop immediately. Setting it to + -1 disables asynchronous handling entirely (all proxy + connections remain synchronous).

+ +

This directive has no effect unless the MPM supports polling + (e.g., event).

+ + When to use this +

Async proxy handling is most useful for slow backends or + long-lived streaming responses, where tying up a worker thread + waiting for data would limit concurrency. For fast backends that + respond within milliseconds, the synchronous path is more + efficient.

+
+
+ +ProxyAsyncIdleTimeout +ProxyTimeout +
+ + +ProxyAsyncIdleTimeout +Inactivity timeout for asynchronous proxy connections +ProxyAsyncIdleTimeout time[s] +Value of ProxyTimeout +server config +virtual host +directory + +Available in Apache HTTP Server 2.5 and later + + +

Once a proxy connection has been handed off to the MPM's + asynchronous event loop (see + ProxyAsyncDelay), this + directive sets the maximum time the connection may remain idle + (no data received from the backend) before it is closed.

+ +

If not explicitly set, the value falls back to the worker's + timeout parameter (if set via + ProxyPass or + ProxySet), then to + ProxyTimeout, and + finally to the server's + Timeout.

+ +

This directive has no effect unless + ProxyAsyncDelay is also + set to enable asynchronous handling.

+
+ +ProxyAsyncDelay +ProxyTimeout +
+