Search code examples
haproxyhttp2

Proxy requests to backend using h2c


Re-asking the question from HA-Proxy discourse site here in the hopes of getting more eyes on it.

I am using HA-Proxy version 1.9.4 2019/02/06 for proxying HTTP traffic to a h2c backend. I am however seeing HA-Proxy set the :scheme to https (and from as far as I can tell uses SSL in the request) when proxying the request. When I hit the backend directly, the :scheme is set to http and the request is non-SSL as expected. I have verified this HA-Proxy behavior using wireshark.

Any suggestions on what I should change in my configuration so that I can set to make sure that the :scheme gets set to http while proxying the request to the backend?

I am using curl 7.54.0 to make requests: $ curl http://localhost:9090 where HA-Proxy is listening on port 9090.

My HA-Proxy config file:

global
   maxconn 4096
   daemon

defaults
   log   global
   option http-use-htx
   timeout connect 60s
   timeout client 60s
   timeout server 60s

frontend waiter
    mode http
    bind *:9090
    default_backend local_node

backend local_node
    mode http
    server localhost localhost:8080 proto h2

Solution

  • This was reported as an issue in haproxy github and has been fixed in version 2.0.