envoyproxy / envoy

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

Add an HTTP protocol versions sandbox #17145

Open phlax opened 3 years ago

phlax commented 3 years ago

description

it would be great to have a sandbox that demonstrated http3/quic - it would also be quite handy to have a sandbox that demonstrated proxying between protocol versions - ie

we probs also want it to proxy to upstream https - which would hopefully catch issues like #17105

su225 commented 3 years ago

I would like to pick this one. If I understand the issue correctly then - we would like to have the following configs

  1. Three listeners - one each for HTTP/1, HTTP/2 and HTTP/3(QUIC)
  2. Three backend clusters - one each for HTTP/1, HTTP/2 and HTTP/3(QUIC)
  3. Three routes per listener (or HTTP connection manager filter) - each one leading to HTTP1/2/3 cluster.

This demonstrates - HTTP1/2/3 from the original client translated to HTTP1/2/3 for upstream traffic. Correct? On HTTPS - QUIC anyways need TLS configuration. So we can have TLS for all. What do you think?

su225 commented 3 years ago

For HTTP->HTTPS proxying : Isn't it covered by https://github.com/envoyproxy/envoy/blob/main/examples/tls/docker-compose.yaml?