Strictly speaking, this doesn't answer the question you are asking. I'm hoping it's helpful anyway.
Apache/Nginx/Lighttpd/other web server. Does it matter which one I choose? In short, No.
The much much longer answer:
If, and only if, you have a very large percentage of your users being logged in, should you care at all about the performance of your web server. If you're users are anonymous, any difference that you can theoretically derive from optimizing at that layers absolute pales compared to making your resources better cacheable. If your css files have proper cache headers on them, the UA won't even ask for them the second time. That, matters. If you can cache your pages in Varnish or a similar software, then serving that page is a matter of making a hash-lookup, and then returning a large chunk of data directly from RAM. That, matters. In both of these scenarios, the HTTP daemon is never even involved, PHP does not get invoked. Drupal does not bootstrap. No large set of modules must be loaded into RAM, no time consuming database queries are executed.
When you perform a full page load, from a cold cache, for a logged in user, on a complex page; a lot of things are going on. Yes, the web server is involved in dealing with the incoming request, setting some headers and passing the response back. But the time that takes, is not even relevant in the context of Drupal running a full bootstrap and outputting its response. There could be hundreds of database queries being executed. Highly complex logic in PHP is evaluated by the parser. Lots of modules are being loaded into RAM. Improving the performance of any of those things, are much more likely to make a serious contribution to performance.
For the sake of argument: Lets say you have spent a lot of time performance optimizing everything else.
- You run APC (Or Optimizer+) and the latest and fastest version of PHP.
- DB-queries are few.
- PHP logic has been reduced.
- You cache what you can in Varnish.
- You have re-architectured your entire site so that you can cache a lot client side, and do lots of heavy lifting in ECMAScript.
If you have a lot of logged in users, and you've dealt with all of the above, then you can probably make a difference but performance tuning, or replacing your web server. However, guess what. Your site is so complex, and the usage patterns of your particular users, is unique. There is no generic answer. You will need to setup all different web servers behind a load balancer, and see how they behave, under your scenario.
The above was an attempt at logically reaching the conclusion that spending time performance optimizing the web server is likely a bad use of time. I would love to have someone pick holes in the above though, I would probably learn something new from it. :)
Some other notes:
- During the DrupalCon Copenhagen keynote, PHP creator Rasmus Lerdorf, using Nginx himself, speaking on the topic of Drupal performance, said "People always ask me about web servers ... it really doesn't matter, the web server is pretty much irrelevant". (Roughly at 26:30 in the video)
- Facebook has spent countless hours on writing Hiphop, a code base significantly larger than Drupal itself, for accelerating PHP-code by a "measly" 100%. I examined Hiphop with
$ wc -l $(find . -type f | grep -v "^\.git" | grep -v "^\.hphp/third_party") | sort -nr | head -n1
and found it to consist of 1'512'481 lines of code. That's an absolutely insane amount of work put in to improving the speed of PHP. I'm guessing that's because the speed of PHP matters greatly to them.
- Did I mention that good caching is going to have a much greater effect that tuning the web server?
- With the release of Apache 2.4, Jim Jagielski basically claims that Apache 2.4 is faster than event based servers.