history of Nginx

Igor Sysoev is at rambler-co.ru
Sun May 4 23:22:16 MSD 2008


On Sun, May 04, 2008 at 12:21:13PM +0200, Manlio Perillo wrote:

> The next week I will present a talk about my WSGI module for Nginx at 
> Pycon Due - http://www.pycon.it/ (an Italian conference dedicated to 
> Python), and I would like to talk about the history of Nginx.
> 
> Igor, can you please provide some informations like:
> - when did you started Nginx
> - why did you started Nginx
> - a rationale about the choice of the architecture

In spring 2001 I had written Apache mod_accel that is enhanced replacement
of mod_proxy. But it was clear that Apache has low scalability.
I had read http://kegel.com/c10k.html, had investigated existent servers
httpd, boa, etc. and had decided that I need something like these servers,
but with SSI, proxy, and cache support. Also it should has flexible
configuration like Apache and supports online upgrade and quick log rotation. 
I planed it as portable server including native Win32 support (not
Cygwin). Initially I plan to use master process and single worker with
several threads.

> - a quick review of the various features timeline
>   (as an example, did nginx was multiprocess from the start?)

Spring 2002 - first drafts

  Fall 2003 - working code, kqueue, select, poll, /dev/poll
              master process and single worker
              partially working threads

Spring 2004 - epoll, rtsig
              gzip
              master process and several workers
              using in production on several sites

Summer 2004 - SSL, POP3/IMAP proxy
              nginx runs on www.rambler.ru

 04.10.2004 - 0.0.1 public release (BTW, it was 47 Sputnik anniversary)

    01.2005 - FastCGI

    05.2005 - SSI; proxy and FastCGI use common upstream module

    11.2005 - memcached, map modules

    01.2006 - embedded perl

    04.2006 - PUT/DELETE

    05.2006 - upstream blocks

    09.2006 - event ports

    07.2007 - proxy/fastcgi_store

    09.2007 - open file cache

    11.2007 - proxy_pass variable support, DNS resolver

> - know limitations with the current architecture

Embed interpreters are limited to non-blocking operations.
Blocking on disk operations.
It's difficult to write complex modules those interact with many
sources and destinations simultaneously.

> - when did you understood that nginx was going to be a success?

When I've got working code, fall 2003, year before public release.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list