Monkey server is a lightweight Http server for Linux, written completely in C. It places immense importance on performance and consumes very less memory and for this reason, it is also favourable for embedded devices. It focuses strongly on Linux, the reason for this being that the server depends on the Linux kernel to perform operations that improve the performance of the server. It is HTTP/1.1 compliant. Some of the important features of the server are:
- Multi threaded architecture to handle incoming requests from clients: Each thread has the capability to handle 1000 client requests.
- Monkey server uses an event driven model to handle requests coming to a thread at the same time.
- It supports virtual hosting.
- Provides support for IPv4 and IPv6.
The major components of the monkey server are scheduler, threads, plugins. The monkey server has a variety of plugins that serve various functionalities.
- Auth – for basic HTTP authentication for users of different virtual hosts of the server.
- CGI – helps in enabling CGI support for monkey server.
- Cheetah – command line for the server.
- Dirlisting – showing the contents of the directory when a client requests a directory.
- FastCGI – for FastCGI proxy support. It acts as a proxy for Fastcgi application servers.
- Liana – provides the network layer support to the server.
- Logger – the log writer plugin that allows the server to keep track of frequently occurring issues and keep statistics.
- Mandril – security plugin that allows to filter incoming requests on the basis of URI or IP addresses.
- Polarssl – provides HTTPS support for the server
- Proxy reverse – provides support to the server for reverse proxying and routing back requests to backend servers.
Setting up and installation :
Follow the below steps to install and monkey from source code.
git clone https://github.com/monkey/monkey.git cd monkey ./configure make bin/monkey
Take localhost:2001 in your browser and lo ! You have successfully installed and run monkey server.
You could read more about this server here :