+1... By the way, I'm working on a minor patch that works around that "stupid" encoding of '/' requirement...
On Fri, Aug 09, 2013 at 03:51:20PM -0500, Daniel Ruggeri wrote: > So I'm tasked with making httpd hold its own weight better against nginx > as a reverse proxy to a local service. Unfortunately, nginx supports UDS > and we don't quite yet. I've come across a bug that seems easy enough to > fix, but I am wondering if there's a better way. Thoughts are welcome. > > With the currently proposed UDS support in mod_proxy, first requests > always seem fine but subsequent requests for the worker fail (attempted > DNS lookup when none should be done). I wouldn't have +1'ed had I > realized this at the time, but I have a proposed fix... > > --- httpd-2.4.6-UDS/modules/proxy/proxy_util.c 2013-08-09 > 15:12:23.000000000 -0500 > +++ httpd-2.4.6/modules/proxy/proxy_util.c 2013-08-09 > 15:15:33.000000000 -0500 > @@ -2127,7 +2127,7 @@ > */ > > if (!conn->hostname || !worker->s->is_address_reusable || > - worker->s->disablereuse || strncmp(conn->hostname, "socket=", > 7) == 0) { > + worker->s->disablereuse) { > if (proxyname) { > conn->hostname = apr_pstrdup(conn->pool, proxyname); > conn->port = proxyport; > > I haven't spent a ton of time on this so I'm wondering... This seems > simple enough, but isn't there a place we could do this once to avoid > having to execute the same logic (substring and path decode) on all > subsequent requests? I'd also much rather not have to do a string > comparison on all subsequent hits... > > If I don't hear anything otherwise, I'll just commit this and add it to > the backport proposal next week or so > > > P.S. > My simple tests with 100 concurrent users for a total of 1,000,000 > requests yielded the following numbers (with the above patch applied). > The backend supports about 20k requests/sec. This seems to be a mighty > compelling case for UDS... > > nginx UDS: 16001.28 > nginx UDS: 18138.94 > nginx UDS: 15499.64 > > Apache UDS: 16348.70 > Apache UDS: 14580.92 > Apache UDS: 15211.97 > > Apache TCP: 11859.46 > (only got one in) > > -- > Daniel Ruggeri -- =========================================================================== Jim Jagielski [|] j...@jagunet.com [|] http://www.jaguNET.com/ "Great is the guilt of an unnecessary war" ~ John Adams