http://developer.yahoo.com/yui/theater/video.php?v=dahl-node
Since then, I've grown to dramatically prefer its configuration file syntax and usability.
Easier to configure, can handle high loads with a lot less resources, more verbose configuration.
All 3 are a reasonable choice though.
[1] Apache's internal API is designed to make it difficult to leak memory or other resources, overrun buffers, etc.
In a nutshell, if you are using mod_php, mod_perl or any of the esoteric modules with Apache in your current installation, I think staying with httpd is a better idea. If you are facing performance problems, you could use Nginx as a reverse-proxy.
It's almost not enough to just say "Nginx", you have to specify if you're using it in front of Mongrel/Passenger/Unicorn, just to serve static content, load balancing, etc.
antiweb (hoytech.com/antiweb) also looks promising, but I haven't put anything into production with it yet.
Hunchentoot's builtin multiplexer is one thread per connection, or one process for all incoming connections: you can customize the taskmaster to be event driven, but then, you will have to write your own load-balancing cruft code to distribute load between processes; something you get for free with a proxy.
Other half, and my personal servers, are Apache/Nginx
Initial setup was super tricky (Nginx in FreeBSD port doesn't ship with uWSGI support and XML config somehow doesn't work, so I have to use Python config which the documentation is lacking) but it has been doing its job ever since.
uWSGI is fast, has low memory footprint (a bit above Gevent/FAPWS) and is very reliable by itself. I'd recommend you to at least try it. The uWSGI documentation[1] was what got me interested.
[1]: http://projects.unbit.it/uwsgi/wiki/Doc
(By the way, I use a patch on this Chinese blog: http://www.indexofire.com/blog/?p=605 to build Nginx with uWSGI support on a FreeBSD. I made this: http://aur.archlinux.org/packages.php?ID=37857 for running on Arch. /shameless plug)
I retain a lingering fondness for dan bernstein's publicfile http://cr.yp.to/publicfile.html but don't actually use it.
Apache on the back end as I'm comfortable tuning it.
Currently I'm proxied by nginx for sanity reasons, but the lack of keepalives to the backend server is a serious problem (under load, you have zillions of sockets waiting to close). Would be a nice thing for nginx to add.
Is IIS 7.5 closer to those targets?
I'm a few days late on this, but curious: by what measure(s) do you mean that?
And, most applications simply aren't being limited by the web server. A Ruby, Python, or Perl application, or the database, is going to be the bottleneck in any website that does something interesting. The webserver usually isn't really even a factor.
Personal anecdote: on a very popular blog that I run, experienced massive performance boost switching from Apache to Lighttpd, and load dropped as well.
So, is nginx faster and smaller, in general, than Apache? Yes. But, by a "huge" or "massive" margin? Unlikely. Unless, of course, you've got a pathological configuration or one that is tuned for other priorities (like security in a shared hosting environment, for example, or other areas where Apache clearly outclasses nginx in terms of capabilities).
I'm just saying it's not a big deal that Apache is as popular as it is, and if anyone is suggesting changing web servers as the first, second, third, or fourth area to tackle when performance is an issue, it's probably bad advice. The application or the database are almost certainly where your attention should go first.