diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c index ade6b24b94..74e7da96a6 100644 --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -1573,6 +1573,12 @@ PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker, *balancer = NULL; *worker = conf->forward; access_status = OK; + /* + * The forward worker does not keep connections alive, so + * ensure that mod_proxy_http does the correct thing + * regarding the Connection header in the request. + */ + apr_table_set(r->subprocess_env, "proxy-nokeepalive", "1"); } } else if (r->proxyreq == PROXYREQ_REVERSE) { @@ -1583,6 +1589,12 @@ PROXY_DECLARE(int) ap_proxy_pre_request(proxy_worker **worker, *balancer = NULL; *worker = conf->reverse; access_status = OK; + /* + * The reverse worker does not keep connections alive, so + * ensure that mod_proxy_http does the correct thing + * regarding the Connection header in the request. + */ + apr_table_set(r->subprocess_env, "proxy-nokeepalive", "1"); } } }