Web 服务器,Monkey v1.6.0 发布

jopen 9年前

Monkey HTTP Daemon 是一个大约只有50KB的、功能强大而且速度非常快的 Web 服务器软件,支持 Linux 系统。它采用混合网络模型和线程epoll,具备很好的可扩展性和伸缩性,支持每秒数千访问连接。

Monkey v1.6.0 发布,此版本主要改进:实现了新的 HTTP 解析器;使用 CMake 作为默认的构建系统;实现新的 Streams 接口。

更新内容如下:

Build System

  • Monkey now uses CMake as it default build system. This relevant change and improvement have deprecated the old bash configure script of 1200 lines. Now new CMake script rules exists for every component and a new configure script of 200 lines was added that works as an optional wrapper over the CMake build options provided by Monkey.

Core

  • Now the Listeners can have associated a specific networking plugin, for short we added the capability to let some Listener working on port 443 use the SSL/TLS implementation while the port 80 uses plain communication.

  • A new Streams interface have been implemented, it hide the complexity of writing data to network channels and abstract the networking plugin for that specific purpose.

  • Source code split: mk_core, mk_server and mk_bin.

Scheduler

  • The Scheduler is aware about protocol handlers, we are preparing for HTTP/2.0.

  • Remove old array of connections, allocate space on demand.

  • The Connection interface have been dropped and replaced by the Scheduler directly.

Event Loop

  • The Event Loop have been reimplemented and now it support different backends: for Linux it uses epoll and for OSX and FreeBSD kqueue.

  • The old Event File Descriptor (EFD) table have been dropped.

  • The events are not longer associated to a socket number. Upon notification, the scheduler connection context is provided.

Portability

  • Starting from this version, Monkey is not only compatible with Linux, now we add support for OSX and FreeBSD.

HTTP

  • A new HTTP parser have been implemented.

  • Internal structures to represent a connection and request have been reimplemented.

  • The HTTP interface is now a handler for the Scheduler.

Virtual Hosts

  • The Virtual Host interface now implements a new configuration for Handlers, plugins such as CGI, FastCGI, Directory Listing, Mandril and others, are triggered upon a regular expression match that works on order from top to bottom.

Plugin Interface

  • Plugins now have a new architecture, new registration mechanism.

  • Plugins can be build in static (built-in) or dynamic mode (shared libs).

Plugins

  • SSL/TLS: our plugin that provides channel encryption have been upgraded to support the new mbedTLS v2.0.

  • FastCGI: plugin re-written from scratch to adapt to new architecture.

  • CGI: Plugin adapted to new architecture, small changes.

  • Others: all other plugins have been modified to adapt to the new registration mechanism.

下载:<a href="/misc/goto?guid=4958964846930043075" _src="http://www.monkey-project.com/releases/1.6/monkey-1.6.0.tar.gz">http://www.monkey-project.com/releases/1.6/monkey-1.6.0.tar.gz</a>。

来自:http://www.oschina.net/news/65031/monkey-1-6-0