I have been working towards switching the communication protocol for our application from HTTP/1.1 to HTTP/2.
The communication flow is some thing like this:
- Client talks to an Amazon Application load balancer over HTTP/2
- Application load balancer talks to a reverse proxy (HAProxy) over HTTP/1.1
- Reverse proxy then talks to the webserver over HTTP/1.1
I wanted all of this to be HTTP/2 but due to a limitation of the load balancer (https://forums.aws.amazon.com/thread.jspa?threadID=332847) the communication between it and the reverse proxy can either be HTTP/2 or HTTP/1.1 but not both. I need to support both because there is a WebSocket connection that is opened over HTTP/1.1.
I have an option to make the communication between HAProxy and the Webserver to be HTTP/2 as our Webserver support it.
So the flow becomes:
- Client -> ALB (HTTP/2)
- ALB -> HAProxy (HTTP/1.1)
- HAProxy -> Webserver (HTTP/2)
I wanted to understand two things
- If this is possible with HAProxy?
- If this is a good move? will this give me any performance improvements?
Thanks in advance! Cheers