From charlesreid1 - writeup on using Nginx as a load-balancing proxy server. Nginx is, in this case, external-facing, and caching the results of external requests. This makes it a REVERSE proxy. (Normally a proxy is used to cache the results of internal requests, i.e., a proxy server running on the internal servers and caching whatever the internal servers ask for.) This allows Nginx to accept external connections to an SSL server, then translate those requests into load-balanced internal Apache requests on port 80.

Squid - info about using Squid as a proxy server.