Http/2 breaks http-reuse always


#1

I have a setup where the frontend is configured with keepalive and backend configured with http-reuse always. This allows having a lot of client connections to haproxy with only a few connections to apache backend.

It was working perfectly with very low apache processes until I enabled http/2 !
I have the feeling that haproxy no longer reuse http connections the way it did without http/2 and uses a lot more connections to apache.

Here is apache connection graph : https://pasteboard.co/HqwG6nA.png

backend bk
    option http-keep-alive
    option persist
    http-reuse always
    server web1 x.x.x.x:8000

frontend front
    bind x.x.x.x:443 ssl crt all/ alpn h2,http/1.1
    option http-keep-alive
    default_backend bk

#2

Hi,

This is unfortunately a limitation of H2 for now.

Baptiste


#3

Hello Baptiste,

Do you think a fix will be planned for next release, maybe 1.9 ?

Thank you

C├ędric


#4

Hi,

This is expected to be fixed with HTTP/2 on the server side. Might be 1.9 or the release after.