Isn't this more or less the same as bouncy? https://github.com/substack/bouncy Also, HAProxy doesn't need to run TCP mode, it parses HTTP as you can select different backends based on hostnames or paths.
On Friday, April 19, 2013 at 10:57 PM, Mikeal Rogers wrote: > Time for another log on the "http proxy" bonfire. > > I've been poking at this problem a long time and I think I may have cracked > it. > > Node should have the fastest HTTP load balancer, and it doesn't currently. > The fastest open source HTTP balancer I know of is haproxy in TCP mode (does > not fully parse HTTP). I've taken the same approach, not parsing HTTP, and > pushed the first release today of hostproxy > (https://github.com/mikeal/hostproxy). > > hostproxy does not parse HTTP, it doesn't even parse headers other than host. > It gives you an API to return a stream that the incoming connection will be > piped to along with an API for inserting new headers (like x-forwarded-for). > > var hostproxy = require('hostproxy') > , net = require('net') > ; > > hostproxy(function (host) { > if (host === 'mysite.com (http://mysite.com)') return net.connect(80, > 'mysite.com (http://mysite.com)') > return net.connect(80, 'fallback.com (http://fallback.com)') > }).listen(80) > > There is still plenty of optimizing to be done. Lots of return early > functions that aren't inlined and a few copies buffer copies that could get > factored out but until I have a good way of benchmarking it I'm not > comfortable poking at it. If people have some good benchmarking systems setup > I'd love to know how it performs next to haproxy in TCP mode. > > -Mikeal > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > (mailto:[email protected]) > To unsubscribe from this group, send email to > [email protected] > (mailto:[email protected]) > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > (mailto:[email protected]). > For more options, visit https://groups.google.com/groups/opt_out. > > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
