Traefikv2 HTTP/2.0


Does Traefik v2.0 beta1 only support HTTP/2.0? I have noticed when I have both a TCP service (with SSL passthrough) and a HTTP (with TLS enabled) service listening on the same entry point, the HTTP service will always use HTTP/2.0. When I try to make request to the TCP service, the request will use HTTP/2.0, however, my backend service does not support HTTP/2.0. Is there any way to enable Traefik to always use HTTP/1.1?

Thank you

I'm not a Traefik developer, but I think I can help you.
You must be set GODEBUG environment variables with:

GODEBUG=http2client=0  # disable HTTP/2 client support
GODEBUG=http2server=0  # disable HTTP/2 server support

Thank you. I will give this a try.

Did the workaround work for you? I tried setting GODEBUG, but couldn't get it working.

As it stands, running a simple HTTP server behind Traefik TCP Router with TLS enabled is impossible.

Hello @nemo,

Thank you for your suggestion. I was able to set the Docker environment variables, however I had a couple of services stop working. What I ended up doing was upgrading our services to support HTTP/2 protocol.

I have TCP and HTTP routers (all using TLS) working on the same entrypoint, but I have to use SAN names to route to different TCP services since TCP routers do not support the stripPathPrefix middleware yet.

Does anybody found way to disable communication with backend services with http/2.0 for Traefik? Same here, my backend doesn't support it. I'm not alone with this problem. Someone just gave up on Traefik: (translate to your language).

Update: it was strange behaviour from WebSockets, proxied by TCP router. Found answer here: How to make WebSockets work with Traefik 2.0 (setting up Rancher)