Configured a nginx proxy cache to reduce traffic to backend Apache web servers. The configuration terminates SSL on the nginx server so traffic between the client and nginx is encrypted HTTP/2 but the traffic between the Apache servers and nginx is unencrypted http. The nginx server caches responses from Apache and serves them to the client directly until they become stale.
This reduces the latency between clients and the web sites being proxied. It also allows multiple sites to be served through a single public IP address supported by many servers. Finally the nginx proxy can balance the load between multiple servers handling requests for the same domain.