Search code examples
language-agnosticarchitecturenetwork-programmingambiguous

What's an example of a well designed network server?


I'm interested in looking at architectures for extensible network serving applications. I'm not too interested in the protocol, or the language used, more in the elegance and extensibility of the design. Of course Apache comes to mind, but I was wondering if anyone had any other examples that they find a pleasure to work with.

EDIT: just to clarify, I'm asking about a server application that implements a network protocol. Web development frameworks are not network servers in this sense. Protocols may include, but are not limited to: FTP, HTTP, XMPP, SNMP, IMAP, etc. Good network servers implement some sort of parallelism, focus on scalability, yet have good extensibility as well.


Solution

  • nginx (see also the nginx wiki) is an HTTP server and mail proxy that has earned a reputation for scalability and resource efficiency. It uses an event-based architecture (supporting epoll, kqueue, etc.) to keep memory usage low even under sizable loads.