title: HAProxy - HTTP/1.1 frontend with HTTP/2 backend? A good idea?
body: <p>I have been working towards switching the communication protocol for our application from HTTP/1.1 to HTTP/2.</p>
  <p>The communication flow is some thing like this:</p>
  <ol>
  <li>Client talks to an Amazon Application load balancer over HTTP/2</li>
  <li>Application load balancer talks to a reverse proxy (HAProxy) over HTTP/1.1</li>
  <li>Reverse proxy then talks to the webserver over HTTP/1.1</li>
  </ol>
  <p>I wanted all of this to be HTTP/2 but due to a limitation of the load balancer (<a href="https://forums.aws.amazon.com/thread.jspa?threadID=332847" rel="nofollow noreferrer">https://forums.aws.amazon.com/thread.jspa?threadID=332847</a>) 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.</p>
  <p>I have an option to make the communication between HAProxy and the Webserver to be HTTP/2 as our Webserver support it.</p>
  <p>So the flow becomes:</p>
  <ol>
  <li>Client -&gt; ALB (HTTP/2)</li>
  <li>ALB -&gt; HAProxy (HTTP/1.1)</li>
  <li>HAProxy -&gt; Webserver (HTTP/2)</li>
  </ol>
  <p>I wanted to understand two things</p>
  <ol>
  <li>If this is possible with HAProxy?</li>
  <li>If this is a good move? will this give me any performance improvements?</li>
  </ol>
  <p>Thanks in advance!
  Cheers</p>