deis / router

Edge router for Deis Workflow
https://deis.com
MIT License
80 stars 57 forks source link

Support proxying HTTP/2 to backend applications #287

Open codyaray opened 7 years ago

codyaray commented 7 years ago

We're looking for a PaaS which supports proxying HTTP/2 to the backend app to enable mobile support for gRPC. Deis supports terminating HTTP/2 at the router and opening an HTTP/1.1 connection to the app (#216) currently. The only L7 router that I know of which supports HTTP/2 to the backend is nghttpx (with --http2-bridge in v1.8 or backend=<ADDR>,<PORT>;;proto=h2;tls later). The other option is using a L4 load balancer to opaquely proxy the TCP stream. Felix says that the only tool he knows of to route to multiple TCP backends based on the SNI header is HAProxy.

krancour commented 7 years ago

For now, you can always skip the router for select applications by making your service "non-routable" and then also manually editing it to be of Type: LoadBalancer. Such an app will have it's own external load balancer (e.g. ELB or similar) and raw TCP will flow straight from there to your pods.

codyaray commented 7 years ago

Wait, so how does this work exactly? https://deis.com/blog/2016/grpc-on-workflow/

Is it because there's no external LB / routing is disabled? (We're looking for gRPC between mobile device and backend server.)

bacongobbler commented 7 years ago

The communication between the two apps is internal to the cluster. It doesn't go through the router.

Cryptophobia commented 6 years ago

This issue was moved to teamhephy/router#16