There are many questions and answers here about how to best order the flow of traffic between Varnish and HAProxy to a backend web server. Many of these posts are very old and recommend that Varnish be placed between HAProxy and the web server. Primarily because Varnish does not support TLS.
Now that we have Hitch, I wonder if that's still the best approach. One of the goals is simplicity with as little moving parts as possible. I'd be okay sacrificing some performance in the name of simplicity.
My proposed solution is to put HAProxy between Varnish and the web server and offloading TLS to Hitch. [Diagram below].
Unencrypted HTTP traffic is handled by Varnish. HTTPS is handled by Hitch, which passes it over to Varnish using a dedicated port. Varnish sends any misses off to HAProxy to load balance between the web servers.
In the simplest form I have all the services on a single machine. If I wanted to scale up, I would create additional machines with the same setup and either share an IP between them, or use DNS round-robin. Or do both.
I'd like some feedback on this approach. Would it still better to use HAProxy in front? If so why and how.