diff -Naur httpd-2.4.10.orig/modules/proxy/mod_proxy.c httpd-2.4.10/modules/proxy/mod_proxy.c --- httpd-2.4.10.orig/modules/proxy/mod_proxy.c 2014-06-21 15:47:30.000000000 +0200 +++ httpd-2.4.10/modules/proxy/mod_proxy.c 2014-11-18 15:45:08.269718560 +0100 @@ -2632,12 +2632,16 @@ */ worker = (proxy_worker *)conf->workers->elts; for (i = 0; i < conf->workers->nelts; i++, worker++) { + if (!strncasecmp(worker->s->name, "proxy://forward", 15) + || !strncasecmp(worker->s->name, "proxy://reverse", 15)) + continue; ap_proxy_initialize_worker(worker, s, conf->pool); } /* Create and initialize forward worker if defined */ if (conf->req_set && conf->req) { - proxy_worker *forward; - ap_proxy_define_worker(p, &forward, NULL, NULL, "http://www.apache.org", 0); + proxy_worker *forward = ap_proxy_get_worker(p, NULL, conf, "proxy://forward"); + if (!forward) + ap_proxy_define_worker(p, &forward, NULL, NULL, "http://www.apache.org", 0); conf->forward = forward; PROXY_STRNCPY(conf->forward->s->name, "proxy:forward"); PROXY_STRNCPY(conf->forward->s->hostname, "*"); @@ -2655,7 +2659,9 @@ conf->forward->s->is_address_reusable = 0; } if (!reverse) { - ap_proxy_define_worker(p, &reverse, NULL, NULL, "http://www.apache.org", 0); + reverse = ap_proxy_get_worker(p, NULL, conf, "proxy://reverse"); + if (!reverse) + ap_proxy_define_worker(p, &reverse, NULL, NULL, "http://www.apache.org", 0); PROXY_STRNCPY(reverse->s->name, "proxy:reverse"); PROXY_STRNCPY(reverse->s->hostname, "*"); PROXY_STRNCPY(reverse->s->scheme, "*");