Lifecycle of Apache Servers
Apache executes as a single process (httpd), typically as root, which in turn forks child processes run as a configurable rights-restricted user. The parent monitors the health and number of the children. For Apache 1.3, these children are single threaded. In Version 2, they may also be multithreaded.
On startup, the first thing Apache does is basic configuration processingfirst the command line, followed by the configuration file (usually httpd.conf). Much of Apache's enormous flexibility is expressed in its config file that, unlike the usual key-value list, works more like a scripting language to which any module can add functionality. Entries in the config file are called "directives."
Among the first directives in httpd.conf are those instructing Apache to load modules. Much of the basic functionality of Apache can be found in the standard distribution of modules. Not only does this provide enormous flexibility in specifying the behavior of any given instance of Apache, but it provides numerous instructive examples of modules (see src/modules/standard in the Apache source distribution).
When finished with config file processing, Apache then runs the initialization function of each module that registered one. Next, the startup process forks its children. Each child process also calls a child-process-initialization function in each module. The child then waits for incoming requests.
The child processes are queued, waiting for incoming HTTP requests. Upon receiving one, the process manages the request in a series of stages. At each stage, any module that has registered interest gets to act on the request.
Apache makes an exception for the response stagethe point at which content is streamed back to the browser. For obvious reasons, control is dispatched to only a single handler. The mechanism for this response handler differs from Version 1.3 to 2.0.
Finally, after a certain number of requests, a child process may terminate. Some applications have been known to use this functionality in lieu of garbage collection or rigorous memory management.
L.B.J.