On Sun, May 04, 2008 at 12:21:13PM +0200, Manlio P. 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 The C10K problem, 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.