期待lighttpd 1.5.x

TODOS

1.5.x is meant to

* fix internals which are blocking us from moving forward.  

* do big changes that can't be done on 1.4.x-stable branch.  

* merge most if not all duplicated code, which helps a lot on code maintaining/improving   

the list below is meant for discussion.

* combine mod_fastcgi, mod_cgi, mod_scgi and mod_proxy into mod_proxy_core and protocols around it. They all cut'n'pasted from mod_fastcgi anyway.  

      o the core provides  

            + config handling  

            + connect/retry on failure  

            + fork/restart worker child on dead. (easier to improve native win32 support)  

            + balancing  

            + x-sendfile   

      o the protocol backends take care of  

            + preparing the environment (most cgi env code can be shared)  

            + encode/decode data  

            + handle io   

* introduce a new io-subsystem which allows filtering content incoming and outgoing data  

      o mod_uploadprogress can track the progress of an upload  

      o mod_deflate can compress content  

      o mod_multiplex can reroute content to other connections  

      o mod_layout can replace tags in the outgoing stream  

      o consider support for asynchronous file io (most likely emulated using threads rather than native aio calls)   

* make the core aware of max-workers  

      o combines server-status  

      o synchroniced logfiles  

      o perhaps make it memcache/shm/mmap based for cluster-wide stats   

* combine most of config handling into core, including:  

      o alloc/free plugin data  

      o init default values  

      o insert values from config (into plugin data)  

      o patch(pick) values from plugin data for connection. this is done by calling a function ptr, but we can kill the string comparisons, lower or higher performance?   

* apply %n to other config option. (such as document root. user might get confused what do or doesn't support %n, but it's seems hard to apply all the options.)  

* find a way to solve module order problem:  

      o sort the "user enabled module" by the builtin "ordered module list", but 3rd party module have no luck on this way.  

      o or add more "handling stages", and depends on "stage order" instead of "module order". this is a bit too complex.  

      o or ... (and your solution here)                ]]>