history of Nginx

Manlio Perillo manlio_perillo at libero.it
Wed May 7 14:32:38 MSD 2008


Igor Sysoev ha scritto:
> 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.
> 

What are the difference between the Apache and Nginx multiprocess model?

Nginx used a master process and all the worker call accept on the same 
sockets.

But what about Apache?

> [...]
>> - know limitations with the current architecture
> 
> Embed interpreters are limited to non-blocking operations.
> [...]
> It's difficult to write complex modules those interact with many
> sources and destinations simultaneously.
> 


Do you have considered corutines?
There are some libraries that implement coroutines in C, using POSIX 
setcontext, longjmp or custom ASM code.

As an example one librery with a nice API:
http://xmailserver.org/pcl.html

>> - when did you understood that nginx was going to be a success?
> 
> When I've got working code, fall 2003, year before public release.
> 


Thanks   Manlio Perillo





More information about the nginx mailing list