Project

General

Profile

Actions

DevelProblemAndSolution » History » Revision 5

« Previous | Revision 5/19 (diff) | Next »
moo, 2007-08-14 05:05


PageOutline

= Developmenet Problem And Solution =
This page is meant to list Problem And Solutions implementing lighttpd. Any feature requests should be go to [/trac/newticket ticket system].

= Redundant FastCGI/SCGI etc =

Problem
In lighttpd 1.4, most of the source code of mod_cgi, mod_scgi and mod_proxy were cut'n'pasted from mod_fastcgi.

Why problem: Redundant code make it hard to maintain.

Solution
Combine them into mod_proxy_core and add protocols around it * the core provides * config handling * connect/retry on failure * fork/restart worker child on dead. (easier to improve native win32 support) * balancing * x-sendfile * the protocol backends take care of * preparing the environment (most cgi env code can be shared) * encode/decode data * handle io

Why: scgi/fastcgi/ejb/http or whatever, are just protocols that we can use to send requests to and get response from backend.

Status
Implemented in 1.5.0

= Redundant and simple config handling =

Problem
The current config handling is done in core and plugin. The core parse it, convert the config into a conditional tree, and the plugin pick on of the values (use PATCH) and use it.

Why problem: It's sure easier to fix the 1 core instead of all the plugins, the plugin is still handling too much config handling logical and i't hard to improve.

Solution
Combine most of config handling into core, including: * alloc/free plugin data * init default values * insert values from config (into plugin data) * 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? Status
Scheduled but not done, and is likely to be post pound to next major release.

= .htaccess =
Problem
Solution
Status

Updated by moo over 16 years ago · 5 revisions