# Http-reuse always not working

**URL:** <https://discourse.haproxy.org/t/http-reuse-always-not-working/5986>\
**Category:** Help!\
**Created:** [December 1, 2020, 3:08pm UTC](https://discourse.haproxy.org/t/http-reuse-always-not-working/5986 "2020-12-01T15:08:08Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![nbanik](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.haproxy.org/nbanik/32/1313_2.png) [@nbanik](https://discourse.haproxy.org/u/nbanik)\
**Post date:** [December 1, 2020, 3:08pm UTC](https://discourse.haproxy.org/t/http-reuse-always-not-working/5986/1 "2020-12-01T15:08:08Z")

</div>

Use haproxy version is 2.3.1-bdd7178  
Here is my config:

```
global
log /dev/log local0
log localhost local1 notice
maxconn 2000
daemon

```

defaults  
log global  
mode http  
option httplog  
option dontlognull  
retries 3  
timeout connect 5000  
timeout client 50000  
timeout server 50000  
http-reuse always  
timeout http-keep-alive 4500

frontend http-in  
bind \*:80  
mode http  
default\_backend webservers

backend webservers  
stats enable  
stats auth admin:admin  
stats uri /haproxy?stats  
balance roundrobin  
option forwardfor  
option http-server-close  
option http-keep-alive  
http-reuse always  
timeout http-keep-alive 4500  
server apache1 {APACHE\_1\_IP}:{APACHE\_EXPOSED\_PORT} check  
server apache2 {APACHE\_2\_IP}:{APACHE\_EXPOSED\_PORT} check

I want to see http request on same tcp connections. But observed every time new tcp connection is created. Did i miss any thing? Please help me…

---

<div class="post-metadata">

**Author:** ![lukastribus](https://avatars.discourse-cdn.com/v4/letter/l/7ea924/32.png) [@lukastribus](https://discourse.haproxy.org/u/lukastribus)\
**Post date:** [December 1, 2020, 7:47pm UTC](https://discourse.haproxy.org/t/http-reuse-always-not-working/5986/2 "2020-12-01T19:47:24Z")

</div>

First of all you need to remove:

`option http-server-close` --\> this disables keep-alives

Then you should add `option prefer-last-server`, so that a client sticks to a backend session.

---

<div class="post-metadata">

**Author:** ![nbanik](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.haproxy.org/nbanik/32/1313_2.png) [@nbanik](https://discourse.haproxy.org/u/nbanik)\
**Post date:** [December 5, 2020, 7:08pm UTC](https://discourse.haproxy.org/t/http-reuse-always-not-working/5986/3 "2020-12-05T19:08:42Z")

</div>

> [@lukastribus](#):
>
> option prefer-last-server

Thanks lukastribus.

I tried with below config:  
defaults  
log global  
mode http  
option httplog  
option dontlognull  
retries 3  
timeout connect 5000  
timeout client 50000  
timeout server 50000  
http-reuse always  
timeout http-keep-alive 4500

frontend http-in  
bind \*:80  
mode http  
default\_backend webservers

backend webservers  
stats enable  
stats auth admin:admin  
stats uri /haproxy?stats  
balance roundrobin  
option forwardfor  
#option http-server-close  
option http-keep-alive  
option prefer-last-server  
http-reuse always  
timeout http-keep-alive 4500  
server apache1 {APACHE\_1\_IP}:{APACHE\_EXPOSED\_PORT} check  
server apache2 {APACHE\_2\_IP}:{APACHE\_EXPOSED\_PORT} check

Result is same. Observed new tcp stream for every http request.  
I generate request with below commands:  
ab -n 1000 -c 30 [http://192.168.1.2/](http://192.168.1.2/)

However, If generate request with keep alive request like below:  
ab -k -n 1000 -c 30 [http://192.168.1.2/](http://192.168.1.2/)

see many http request with with one tcp stream.
