This post is a sequel to my analysis of what's wrong with Magento's database cache backend. Also checkout my detailed blog post I've blogged before about the priority bug (in german). This is a comprehensive overview of what's wrong with two-level caching in Zend Framework. As Magento uses Zend Framework's cache classes following issues also affect your Magento instance. In addition there are also some Magento specific issues...
This is hands-on tutorial on how to get the powerful combination Nginx + Varnish + Apache running including SSL. In this tutorial I will show how to get a Magento Shop running, but the snippets will also apply for a TYPO3 CMS or any other web application.
It's not even restricted on running Apache as web server running your application logic. You might also consider running another server, like lighttpd or a second Nginx instance to replace the heavy weighting Apache.
Caching with Magento is a challenge. There are many classes and interfaces spread over the Magento core, the Varien lib and the Zend Framework. All those classes are used in combination and have their own set of methods and configuration parameters. Almost every class seems to have a load() and a save() method and even if they class name does not tell that, they have different purposes as cache frontends, backends, slow backends, fast backends or wrapper classes. I took some time to dig into all those classes and here is an overview on all those classes, how they belong together and how they are used.