Reverse proxies (Varnish, Squid or Nginx) are designed to quickly serve content (e.g. HTML pages and images) using as little of the CPU as possible. You can therefore minimize the infrastructure needed by avoiding unnecessarily accessing the application server.
Using specialized reverse proxies like Varnish drastically reduces the time needed to serve dynamic pages while also increasing the CMS’s (here, Drupal) ability to deliver multiple pages at once. It Is also important to note that a generalist cache like APC is not suitable (source: Asymptotix).“