We're using HAProxy+stud+WebSockets/SecureWebSockets.  When I was doing 
some performance testing, stud was notably faster than all of the other 
alternatives for the latency/CPU usage of SSL termination (this was on node 
0.4.x at the time, but stud was about 2x as fast as node or nginx).

HAProxy is fine, but if you want to put your SSL termination behind your 
load balancer (otherwise quickly that becomes your bottleneck if all of 
your traffic is https), you need to run it in TCP mode.  HAProxy for HTTP 
(non-secure) seemed to work fine for WebSockets even when not in TCP-mode.

If in TCP mode, and you want IP address of your connections, it's a bit of 
work since you can't do header re-writing.  Need to have HAProxy configured 
with send-proxy, and stud with --read-proxy and --write-proxy or 
--proxy-proxy (look in stud's pull requests for these), and node needs to 
be patched with the ability to read the proxy line before starting HTTP 
parsing (requires building node yourself).

  Jimb Esser
  Cloud Party, Inc

On Friday, July 27, 2012 12:48:33 AM UTC-7, hd nguyen wrote:
>
> Thanks guys,
>
> As  Arnout said, Arnout we should have 2 options for this case: HAproxy or 
> node-http-proxy module.
>
> Anyone can help me figure out which option is the better choice for 
> enterprise app?
>  node-http-proxy is being used by Nodejitsu, but cannot find a trustworthy 
> site/source using HAproxy+websocket/socket.IO ?!
> On Fri, Jul 27, 2012 at 2:36 PM, Arnout Kazemier wrote:
>
>> There is nothing wrong with using HAproxy to load balance WebSocket / 
>> Socket.IO requests. It works perfectly fine
>> and is a proven and well established technology stack. You just need to 
>> make sure that you run it TCP mode.. Here
>> is some example configuration on working with Socket.IO + HAProxy + stud; 
>> https://github.com/dvv/farm
>>
>> Nginx will probably not work because it doesn't support HTTP 1.1 for 
>> upstream proxies. If you don't want to complicate
>> your stack with different technologies, you can indeed use the excellent 
>> Nodejitsu HTTP proxy. https://github.com/nodejitsu/node-http-proxy
>>
>> On Friday 27 July 2012 at 08:30, hd nguyen wrote:
>>
>> So I can understand that till now this combination is not working well?
>>
>> On Fri, Jul 27, 2012 at 1:08 PM, dvbportal wrote:
>>
>> In the past such setups didn't work. Maybe the latest versions are doing 
>> better. A tested variant though is Nodejitsu's proxy. It can do websockets 
>> and load balance with a bit additional code.
>>
>>  - Hans
>>
>> -- 
>> Nguyen Hai Duy
>> Mobile : 0914 72 1900
>> Yahoo: nguyenhd_lucky
>>
>>
>>  
>> -- 
> Nguyen Hai Duy
> Mobile : 0914 72 1900
> Yahoo: nguyenhd_lucky
>  

-- 
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

Reply via email to