I have following configuration in my linode slice

NB <----->web1+web2+web3 Here's the configuration screenshot from linode: enter image description here

We need NB in http mode since we need few things that plain tcp mode does not give.

Now my problem is : when i run something like webpagetest.org for benchmarking purpose, i always get message that my domain is running static assets without keepalives. In TCP mode, keepalive is fine.

I understand haproxy is working as nodebalancer in linode. I just wanted to know "is this a known limitation of NB/haproxy or am i doing anything wrong ????"


If I understand your question properly you're saying that NodeBalancer is based on HAProxy. I can't find any documentation stating that this is the case.

Versions of HAProxy before 1.4 did not support HTTP Keep-Alive. Version 1.4 was released in February 2010. If NodeBalancer is actually built on HAProxy and they used version 1.3, then it will not support HTTP Keep-Alive between the client and NodeBalancer.

Client Keep-Alive is useful because it saves saves one round-trip-time per HTTP request. Combining Keep-Alive and pipelining can deliver many requests in a two round-trip-times (one for TCP setup, one for a bunch of HTTP requests), rather than two per resource without them. This is a simplified view of things, but is a decent rule of thumb.

Something that very few proxies support are keep-alives between the proxy and the backend servers. This is invisible from the client side, but results in a few extra packets being transmitted. It does not matter as much as client-side keep-alive, as the round-trip time between proxy and backend server is usually very low.

  • I thought i heard from somewhere in the internet but could not find the source now. So what if it's not haproxy ? do you have any such experience ? I have also opened up a ticket in their community forum....keeping finger crossed – kaji Feb 21 '12 at 9:17

As per Linode Node Balancer documentation

TCP: Use TCP mode to balance non-HTTP services.

HTTP: HTTP KeepAlives are forced off in HTTP mode.

HTTPS: With HTTPS selected, your NodeBalancer will terminate SSL connections. As with HTTP mode, KeepAlives will be disabled and the client’s IP address will be provided in the X-Forwarded-For header.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.