Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Web Development

Writing Apache Modules


Sep02: Lifecycle of Apache Servers

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 processing—first 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 stage—the 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.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.