# HAProxy connection pooling & timeouts

**URL:** <https://discourse.haproxy.org/t/haproxy-connection-pooling-timeouts/4077>\
**Category:** Help!\
**Created:** [July 23, 2019, 12:17am UTC](https://discourse.haproxy.org/t/haproxy-connection-pooling-timeouts/4077 "2019-07-23T00:17:09Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Exocomp](https://avatars.discourse-cdn.com/v4/letter/e/ea5d25/32.png) [@Exocomp](https://discourse.haproxy.org/u/Exocomp)\
**Post date:** [July 23, 2019, 12:17am UTC](https://discourse.haproxy.org/t/haproxy-connection-pooling-timeouts/4077/1 "2019-07-23T00:17:09Z")

</div>

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 [HAProxy 1.9 Has Arrived](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.

**Questions**

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

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

frontend myfrontend
        bind 192.168.1.20:80
        default_backend mybackend

backend mybackend
        http-reuse always
        server Server1 192.168.1.30:5003

```

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