HAProxy community

HAProxy connection pooling & timeouts

After looking through the documentation and testing I’m confused regarding how HAProxy is supposed to work and need some help. I will describe the issue as simple as possible:

haproxy -v
HA-Proxy version 2.0.2 2019/07/16 - https://haproxy.org/

This article https://www.haproxy.com/blog/haproxy-1-9-has-arrived/#connection-management

States the following:

In addition, HAProxy now provides connection pooling. Idle connections between HAProxy and the server are no longer closed immediately if the frontend connection vanishes.

In testing (using http-reuse always) and HTTP/1.1 I find that HAProxy keeps “IDLE” connections in the connection pool only for the timeout configured for “timeout client”. After the “timeout client” HAProxy waits 5 more seconds and then closes the connection with the backend server.


  • Is the above analysis correct and that is how HAProxy connection pooling works using “http-reuse always” and HTTP/1.1?
  • Is it possible to specify a timeout other than “timeout client” that controls how long “IDLE” connections are kept in the connection pool?

I specifically called out “timeout client” because using the following configuration only it kept the connection to the backend server alive for the specified duration.

        user haproxy
        group haproxy
        nbproc 1
        mode http
        timeout connect 5s
        timeout client 20s
        timeout server 35s
        timeout http-request 50s
        timeout http-keep-alive 300s

frontend myfrontend
        default_backend mybackend

backend mybackend
        http-reuse always
        server Server1

Using the above configuration use a client that makes a HTTP/1.1 call and keeps the connection “IDLE” and you will find that HAProxy closes the connection after “25 seconds”.