One day, thought not any time soon, and probably not before they go big or the next big industry shift happens, I want to work for a web hosting company like The Engine Yard, Heroku, Linode or Media Temple; These are web hosting companies that get it1.
In late December I started looking at alternative web servers, having hit a point where I actually asked aloud (though to no one in particular) why I still use Apache for any http or php needs that may arise.
I installed nginx (v. 0.6.33) from the EPEL (Extra Packages for Enterprise Linux) repositories and ligHTTPD (v. 1.4.20) from the RPMforge repositories (both third party repositories worth writing about in detail at a later date). Apache was already installed (HTTPD 2.2.3), so a virtual-host was configured to serve data from the same document root using all three servers, and ligHTTPD and nginx were both configured to use PHP through fastCGI1.
I then set up a stock WordPress 2.7 blog, some large images, some thumbnails, and created what amount to approximately a 20k index page with nothing cached. Using ApacheBench to fetch 1000 requests, 100 requests at a time, I came up with some simple numbers showing how long it took to return the same page for each web server.
While I openly admit that the benchmarks produced here are synthetic, arbitrary, and superficial, they do give some rough insight (1,000ft overview-level-insight) as to how much faster nginx and fastCGI are over Apache 2.2 and mod_php. ligHTTPD also performed admirably, and with less hassle involved in set up than nginx; I suspect that this may have just been previous familiarity with its configuration.
Some simple graphs and some thoughts as to what they mean and why we (AKA the web hosting community at large) still use Apache by default follows after the jump.