Nginx, HAproxy, Unicorn, Rails and Node settings
Posted
by
Julien Genestoux
on Server Fault
See other posts from Server Fault
or by Julien Genestoux
Published on 2010-11-23T20:54:32Z
Indexed on
2011/01/17
2:55 UTC
Read the original article
Hit count: 320
Our application is currently only a "regular" web app, with no fancy things like streaming HTTP or websockets. It's mostly a Rails app, served by a few (20 on 2 machines) Unicorn workers, proxied by a venerable nginx server which deals with load balancing.
This has been working quite well for the past year and the app now serves between 400 and 800 requests per second at any point during the day.
We're soon releasing 2 new APIs, which are both served by a Node application : a websocket one, as well as a long polling HTTP one. (the fancy thing like the Twitter streaming API where HTTP connections never end). They both use the same port on node and since the node app is stateless, we can certainly deploy a few of them to handle the traffic.
The app (node) is now deployed in 5 instances and are now listening on 5 different 'private' ports on the same host. We need to put something in front of them to load balance, but also something that is able to deal with sockets (either websocket or HTTP streaming) which are intended to stay 'up' for days.
The question is then : what? I read somewhere that HAProxy does a better job than Nginx at this. What do you recommend?
© Server Fault or respective owner