Monkey HTTP Server

Definition
Monkey HTTP Server is an open‑source, lightweight, high‑performance web server written in the C programming language. It is designed to serve static and dynamic content efficiently, supporting the HTTP/1.1 protocol, TLS/SSL encryption, and a range of extensions such as FastCGI, proxying, and virtual hosting.

Overview
Originally released in 2009, Monkey targets environments where low memory consumption and high concurrency are critical, such as embedded systems, virtual private servers, and high‑traffic web sites. The server implements an event‑driven architecture based on the epoll (Linux) and kqueue (BSD/macOS) system calls, enabling it to handle thousands of simultaneous connections with minimal overhead. Its modular design allows optional features—e.g., URL rewriting, access logging, and bandwidth throttling—to be compiled in or loaded at runtime.

Monkey is distributed under the GNU Lesser General Public License (LGPL) version 2.1 and is maintained by a community of developers who provide regular releases, bug fixes, and documentation. The official project website hosts source code, binary packages for various Linux distributions, and a concise user manual.

Etymology / Origin
The name “Monkey” does not have a publicly documented symbolic origin. In software naming, animal titles are often chosen for memorability and to convey agility or simplicity; thus the term likely reflects the developers’ intention to portray the server as fast and easy to use. No official statement from the project founders clarifies a deeper etymological meaning.

Characteristics

Feature Description
Core Architecture Event‑driven, non‑blocking I/O using epoll/kqueue.
Concurrency Model Single‑process, multi‑threaded (optional) capable of handling >10 000 simultaneous connections.
Supported Protocols HTTP/1.1, HTTPS (via OpenSSL), HTTP/2 (via optional module in later releases).
Dynamic Content FastCGI, SCGI, and PHP (through external handlers).
Virtual Hosting Name‑based virtual hosts configured via a simple text file.
Logging Access and error logs in customizable formats; log rotation support.
Security Features TLS/SSL, chroot jail, directory permissions, request size limits.
Extensibility Modules for URL rewriting, bandwidth throttling, IP‑based access control, and more.
Resource Usage Typical memory footprint <10 MB for a basic static‑file server; CPU usage scales linearly with request load.
Platform Support Primarily Linux and BSD variants; builds available for macOS and limited Windows compatibility through Cygwin.

Related Topics

  • Nginx – Another high‑performance, event‑driven web server widely used for reverse proxying and load balancing.
  • Lighttpd – A lightweight web server emphasizing low memory usage, similar in target use‑cases to Monkey.
  • Apache HTTP Server – The long‑standing, feature‑rich web server that uses a process‑oriented model.
  • FastCGI – A protocol for interfacing interactive programs with a web server, supported by Monkey for dynamic content.
  • epoll / kqueue – Scalable I/O event notification mechanisms employed by Monkey to achieve high concurrency.

Note: The information presented reflects documented features and publicly available descriptions of Monkey HTTP Server as of the latest stable release. No speculative or unverified claims are included.

Browse

More topics to explore