envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.85k stars 4.78k forks source link

Support Upgrade: h2c for upstream clusters #26463

Open petedmarsh opened 1 year ago

petedmarsh commented 1 year ago

Title: Support Upgrade: h2c for upstream clusters

Description:

I have an environment where I have a mixture of HTTP/1.1 (plaintext) and HTTP/2 upstreams. What I'd like to be able to do is configure Envoy in such a way that it can automatically negotiate to use HTTP/1.1 or HTTP/2 without me manually specifying this. ALPN would be ideal here of course but nothing is currently using TLS so (as I understand things) that won't work.

Envoy already supports Upgrade: h2c for downstreams, would it be possible to get support for this for upstreams? I do understand that h2c is relatively abandonded/outdataed in favour of ALPN, but as I said that is not useable for me in my current circumstancs.

[optional Relevant Links:]

https://en.wikipedia.org/wiki/HTTP/1.1_Upgrade_header https://github.com/envoyproxy/envoy/issues/7161

lizan commented 1 year ago

There's no support of h2c for upstream clusters today, the reason is that h2c is not widely deployed and there are little demand for this. If you are up to contribution I'd be happy to review though.

petedmarsh commented 1 year ago

Thanks @lizan I may be able to implement this but I could do with some pointers to get started

nezdolik commented 11 months ago

/assign