summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod/prefork.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual/mod/prefork.html')
-rw-r--r--docs/manual/mod/prefork.html539
1 files changed, 335 insertions, 204 deletions
diff --git a/docs/manual/mod/prefork.html b/docs/manual/mod/prefork.html
index ef147465cf..606c477e25 100644
--- a/docs/manual/mod/prefork.html
+++ b/docs/manual/mod/prefork.html
@@ -1,39 +1,49 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache MPM prefork</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="CENTER">Multi-Processing Module prefork</h1>
-
- <p>This Multi-Processing Module implements a non-threaded,
- pre-forking web server.</p>
-
- <p><a href="module-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> MPM<br />
- <a href="module-dict.html#SourceFile"
- rel="Help"><strong>Source File:</strong></a> prefork.c<br />
- <a href="module-dict.html#ModuleIdentifier"
- rel="Help"><strong>Module Identifier:</strong></a>
- mpm_prefork_module</p>
-
- <h2>Summary</h2>
-
- <p>This Multi-Processing Module (MPM) implements a
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<!--
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+-->
+<title>prefork - Apache HTTP Server</title>
+<link href="../style/manual.css" type="text/css" rel="stylesheet">
+</head>
+<body>
+<blockquote>
+<div align="center">
+<img alt="[APACHE DOCUMENTATION]" src="../images/sub.gif"><h3>Apache HTTP Server Version 2.0</h3>
+</div>
+<h1 align="center">Apache Module prefork</h1>
+<table cellspacing="1" cellpadding="0" bgcolor="#cccccc">
+<tr>
+<td>
+<table bgcolor="#ffffff">
+<tr>
+<td><span class="help">Description:</span></td><td>
+<description>Implements a non-threaded, pre-forking web server</description>
+</td>
+</tr>
+<tr>
+<td><a href="module-dict.html#Status" class="help">Status:</a></td><td>MPM</td>
+</tr>
+<tr>
+<td><a href="module-dict.html#ModuleIdentifier" class="help">Module&nbsp;Identifier:</a></td><td>mpm_prefork_module</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<h2>Summary</h2>
+<summary>
+
+<p>This Multi-Processing Module (MPM) implements a
non-threaded, pre-forking web server which handles request in a
manner very similar to the default behavior of Apache 1.3 on
Unix.</p>
- <p>A single control process is responsible for launching child
+
+<p>A single control process is responsible for launching child
processes which listen for connections and serve them when they
arrive. Apache always tries to maintain several <em>spare</em>
or idle server processes, which stand ready to serve incoming
@@ -41,193 +51,314 @@
child processes to be forked before their requests can be
served.</p>
- <p>The <code>StartServers</code>, <code>MinSpareServers</code>,
- <code>MaxSpareServers</code>, and <code>MaxClients</code>
- regulate how the parent process creates children to serve
- requests. In general, Apache is very self-regulating, so most
- sites do not need to adjust these directives from their default
- values. Sites which need to serve more than 256 simultaneous
- requests may need to increase <code>MaxClients</code>, while
- sites with limited memory may need to decrease
- <code>MaxClients</code> to keep the server from thrashing
- (swapping memory to disk and back). More information about
- tuning process creation is provided in the <a
- href="../misc/perf-tuning.html">performance hints</a>
+
+<p>The <code class="directive"><a href="mpm_common.html#startservers" class="directive">StartServers</a></code>,
+ <code class="directive"><a href="#minspareservers" class="directive">MinSpareServers</a></code>,
+ <code class="directive"><a href="#maxspareservers" class="directive">MaxSpareServers</a></code>, and
+ <code class="directive"><a href="mpm_common.html#maxclients" class="directive">MaxClients</a></code> regulate how
+ the parent process creates children to serve requests. In general,
+ Apache is very self-regulating, so most sites do not need to
+ adjust these directives from their default values. Sites which
+ need to serve more than 256 simultaneous requests may need to
+ increase <code class="directive"><a href="mpm_common.html#maxclients" class="directive">MaxClients</a></code>,
+ while sites with limited memory may need to decrease <code class="directive"><a href="mpm_common.html#maxclients" class="directive">MaxClients</a></code> to keep the server from
+ thrashing (swapping memory to disk and back). More information
+ about tuning process creation is provided in the <a href="../misc/perf-tuning.html">performance hints</a>
documentation.</p>
- <p>While the parent process is usually started as root under
- Unix in order to bind to port 80, the child processes are
- launched by Apache as a less-privileged user. The
- <code>User</code> and <code>Group</code> directives are used to
- set the privileges of the Apache child processes. The child
- processes must be able to read all the content that will be
- served, but should have as few privileges beyond that as
- possible. In addition, unless <a
- href="../suexec.html">suexec</a> is used, these directives also
- set the privileges which will be inherited by CGI scripts.</p>
-
- <p><code>MaxRequestsPerChild</code> controls how frequently the
- server recycles processes by killing old ones and launching new
- ones.</p>
-
- <p>See also: <a href="../bind.html">Setting which addresses and
- ports Apache uses</a>.</p>
-
- <h2>Directives</h2>
-
- <ul>
- <li><a href="#acceptmutex">AcceptMutex</a></li>
-
- <li><a
- href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
-
- <li><a href="mpm_common.html#group">Group</a></li>
-
- <li><a href="mpm_common.html#pidfile">PidFile</a></li>
-
- <li><a href="mpm_common.html#listen">Listen</a></li>
-
- <li><a
- href="mpm_common.html#listenbacklog">ListenBacklog</a></li>
-
- <li><a href="mpm_common.html#lockfile">LockFile</a></li>
-
- <li><a href="mpm_common.html#maxclients">MaxClients</a></li>
-
- <li><a
- href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
-
- <li><a href="#maxspareservers">MaxSpareServers</a></li>
-
- <li><a href="#minspareservers">MinSpareServers</a></li>
-
- <li><a
- href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
-
- <li><a
- href="mpm_common.html#sendbuffersize">SendBufferSize</a></li>
-
- <li><a
- href="mpm_common.html#serverlimit">ServerLimit</a></li>
-
- <li><a
- href="mpm_common.html#startservers">StartServers</a></li>
-
- <li><a href="mpm_common.html#user">User</a></li>
- </ul>
- <hr />
-
- <h2><a id="acceptmutex" name="acceptmutex">AcceptMutex
- Directive</a></h2>
-
- <p><a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> AcceptMutex
- default|<em>method</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> <code>AcceptMutex
- default</code><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> core</p>
-
- <p>The <code>AcceptMutex</code> directives sets the method that
- Apache uses to serialize multiple children accepting requests
- on network sockets. Prior to Apache 2.0, the method was
+
+<p>While the parent process is usually started as root under Unix
+ in order to bind to port 80, the child processes are launched by
+ Apache as a less-privileged user. The <code class="directive"><a href="mpm_common.html#user" class="directive">User</a></code> and <code class="directive"><a href="mpm_common.html#group" class="directive">Group</a></code> directives are used to set
+ the privileges of the Apache child processes. The child processes
+ must be able to read all the content that will be served, but
+ should have as few privileges beyond that as possible. In
+ addition, unless <a href="../suexec.html">suexec</a> is used,
+ these directives also set the privileges which will be inherited
+ by CGI scripts.</p>
+
+
+<p>
+<code class="directive"><a href="mpm_common.html#maxrequestsperchild" class="directive">MaxRequestsPerChild</a></code>
+ controls how frequently the server recycles processes by killing
+ old ones and launching new ones.</p>
+
+</summary>
+<p>
+<strong>See also:</strong>
+</p>
+<ul>
+<li>
+<a href="../bind.html">Setting which addresses and
+ ports Apache uses</a>
+</li>
+</ul>
+<h2>Directives</h2>
+<ul>
+<li>
+<a href="#acceptmutex">AcceptMutex</a>
+</li>
+<li>
+<a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a>
+</li>
+<li>
+<a href="mpm_common.html#listen">Listen</a>
+</li>
+<li>
+<a href="mpm_common.html#listenbacklog">ListenBacklog</a>
+</li>
+<li>
+<a href="mpm_common.html#lockfile">LockFile</a>
+</li>
+<li>
+<a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a>
+</li>
+<li>
+<a href="mpm_common.html#maxspareservers">MaxSpareServers</a>
+</li>
+<li>
+<a href="#maxspareservers">MaxSpareServers</a>
+</li>
+<li>
+<a href="mpm_common.html#minspareservers">MinSpareServers</a>
+</li>
+<li>
+<a href="#minspareservers">MinSpareServers</a>
+</li>
+<li>
+<a href="mpm_common.html#pidfile">PidFile</a>
+</li>
+<li>
+<a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a>
+</li>
+<li>
+<a href="mpm_common.html#sendbuffersize">SendBufferSize</a>
+</li>
+<li>
+<a href="mpm_common.html#serverlimit">ServerLimit</a>
+</li>
+<li>
+<a href="mpm_common.html#startservers">StartServers</a>
+</li>
+<li>
+<a href="mpm_common.html#user">User</a>
+</li>
+</ul>
+<hr>
+<h2>
+<a name="AcceptMutex">AcceptMutex</a> <a name="acceptmutex">Directive</a>
+</h2>
+<table cellpadding="1" cellspacing="0" border="0" bgcolor="#cccccc">
+<tr>
+<td>
+<table width="100%" bgcolor="#ffffff">
+<tr>
+<td><strong>Description: </strong></td><td>Method that Apache uses to serialize multiple children
+accepting requests on network sockets</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Syntax" class="help">Syntax:</a></td><td>
+<syntax>AcceptMutex default|<em>method</em>
+</syntax>
+</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Default" class="help">Default:</a></td><td><code>AcceptMutex default</code></td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Context" class="help">Context:</a></td><td>server config</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Status" class="help">Status:</a></td><td>MPM</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Module" class="help">Module:</a></td><td>prefork</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<usage>
+
+<p>The <code class="directive">AcceptMutex</code> directives sets the
+ method that Apache uses to serialize multiple children accepting
+ requests on network sockets. Prior to Apache 2.0, the method was
selectable only at compile time. The optimal method to use is
- highly architecture and platform dependent. For further
- details, see the <a href="../misc/perf-tuning.html">performance
- tuning</a> documentation.</p>
+ highly architecture and platform dependent. For further details,
+ see the <a href="../misc/perf-tuning.html">performance tuning</a>
+ documentation.</p>
- <p>If this directive is set to <code>default</code>, then the
+
+<p>If this directive is set to <code>default</code>, then the
compile-time selected default will be used. Other possible
methods are listed below. Note that not all methods are
available on all platforms. If a method is specified which is
not available, a message will be written to the error log
listing the available methods.</p>
- <dl>
- <dt><code>flock</code></dt>
-
- <dd>uses the <code>flock(2)</code> system call to lock the
- file defined by the <a
- href="mpm_common.html#lockfile">LockFile</a> directive.</dd>
-
- <dt><code>fcntl</code></dt>
-
- <dd>uses the <code>fnctl(2)</code> system call to lock the
- file defined by the <a
- href="mpm_common.html#lockfile">LockFile</a> directive.</dd>
-
- <dt><code>sysvsem</code></dt>
-
- <dd>uses SySV-style semaphores to implement the mutex.</dd>
-
- <dt><code>pthread</code></dt>
-
- <dd>uses POSIX mutexes as implemented by the POSIX Threads
+
+<dl>
+
+<dt>
+<code>flock</code>
+</dt>
+
+
+<dd>uses the <code>flock(2)</code> system call to lock the
+ file defined by the <code class="directive"><a href="mpm_common.html#lockfile" class="directive">LockFile</a></code> directive.</dd>
+
+
+<dt>
+<code>fcntl</code>
+</dt>
+
+
+<dd>uses the <code>fnctl(2)</code> system call to lock the
+ file defined by the <code class="directive"><a href="mpm_common.html#lockfile" class="directive">LockFile</a></code> directive.</dd>
+
+
+<dt>
+<code>sysvsem</code>
+</dt>
+
+
+<dd>uses SySV-style semaphores to implement the mutex.</dd>
+
+
+<dt>
+<code>pthread</code>
+</dt>
+
+
+<dd>uses POSIX mutexes as implemented by the POSIX Threads
(PThreads) specification.</dd>
- </dl>
- <hr />
-
- <h2><a id="maxspareservers"
- name="maxspareservers">MaxSpareServers directive</a></h2>
- <!--%plaintext &lt;?INDEX {\tt MaxSpareServers} directive&gt; -->
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> MaxSpareServers
- <em>number</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> <code>MaxSpareServers
- 10</code><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> core
-
- <p>The MaxSpareServers directive sets the desired maximum
- number of <em>idle</em> child server processes. An idle process
- is one which is not handling a request. If there are more than
- MaxSpareServers idle, then the parent process will kill off the
- excess processes.</p>
-
- <p>Tuning of this parameter should only be necessary on very
+
+</dl>
+
+</usage>
+<hr>
+<h2>
+<a name="MaxSpareServers">MaxSpareServers</a> <a name="maxspareservers">Directive</a>
+</h2>
+<table cellpadding="1" cellspacing="0" border="0" bgcolor="#cccccc">
+<tr>
+<td>
+<table width="100%" bgcolor="#ffffff">
+<tr>
+<td><strong>Description: </strong></td><td>Maximum number of idle child server processes</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Syntax" class="help">Syntax:</a></td><td>
+<syntax>MaxSpareServers <em>number</em>
+<br>
+</syntax>
+</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Default" class="help">Default:</a></td><td><code>MaxSpareServers 10</code></td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Context" class="help">Context:</a></td><td>server config</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Status" class="help">Status:</a></td><td>MPM</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Module" class="help">Module:</a></td><td>prefork</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<usage>
+
+<p>The <code class="directive">MaxSpareServers</code> directive sets the
+ desired maximum number of <em>idle</em> child server processes. An
+ idle process is one which is not handling a request. If there are
+ more than MaxSpareServers idle, then the parent process will kill
+ off the excess processes.</p>
+
+
+<p>Tuning of this parameter should only be necessary on very
busy sites. Setting this parameter to a large number is almost
always a bad idea.</p>
- <p>See also <a href="#minspareservers">MinSpareServers</a> and
- <a href="mpm_common.html#startservers">StartServers</a>.</p>
- <hr />
-
- <h2><a id="minspareservers"
- name="minspareservers">MinSpareServers directive</a></h2>
- <!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
- <a href="directive-dict.html#Syntax"
- rel="Help"><strong>Syntax:</strong></a> MinSpareServers
- <em>number</em><br />
- <a href="directive-dict.html#Default"
- rel="Help"><strong>Default:</strong></a> <code>MinSpareServers
- 5</code><br />
- <a href="directive-dict.html#Context"
- rel="Help"><strong>Context:</strong></a> server config<br />
- <a href="directive-dict.html#Status"
- rel="Help"><strong>Status:</strong></a> core
-
- <p>The MinSpareServers directive sets the desired minimum
- number of <em>idle</em> child server processes. An idle process
- is one which is not handling a request. If there are fewer than
- MinSpareServers idle, then the parent process creates new
- children at a maximum rate of 1 per second.</p>
-
- <p>Tuning of this parameter should only be necessary on very
+</usage>
+<p>
+<strong>See also:</strong>
+</p>
+<ul>
+<li>
+<code class="directive"><a href="#minspareservers" class="directive">MinSpareServers</a></code>
+</li>
+<li>
+<code class="directive"><a href="mpm_common.html#startservers" class="directive">StartServers</a></code>
+</li>
+</ul>
+<hr>
+<h2>
+<a name="MinSpareServers">MinSpareServers</a> <a name="minspareservers">Directive</a>
+</h2>
+<table cellpadding="1" cellspacing="0" border="0" bgcolor="#cccccc">
+<tr>
+<td>
+<table width="100%" bgcolor="#ffffff">
+<tr>
+<td><strong>Description: </strong></td><td>Minimum number of idle child server processes</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Syntax" class="help">Syntax:</a></td><td>
+<syntax>MinSpareServers <em>number</em>
+</syntax>
+</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Default" class="help">Default:</a></td><td><code>MinSpareServers 5</code></td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Context" class="help">Context:</a></td><td>server config</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Status" class="help">Status:</a></td><td>MPM</td>
+</tr>
+<tr>
+<td><a href="directive-dict.html#Module" class="help">Module:</a></td><td>prefork</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<usage>
+
+<p>The <code class="directive">MinSpareServers</code> directive sets the
+ desired minimum number of <em>idle</em> child server processes. An
+ idle process is one which is not handling a request. If there are
+ fewer than MinSpareServers idle, then the parent process creates
+ new children at a maximum rate of 1 per second.</p>
+
+
+<p>Tuning of this parameter should only be necessary on very
busy sites. Setting this parameter to a large number is almost
always a bad idea.</p>
- <p>This directive has no effect on Microsoft Windows.</p>
-
- <p>See also <a href="#maxspareservers">MaxSpareServers</a> and
- <a href="mpm_common.html#startservers">StartServers</a>.
- <!--#include virtual="footer.html" -->
- </p>
- </body>
+
+<p>This directive has no effect on Microsoft Windows.</p>
+
+</usage>
+<p>
+<strong>See also:</strong>
+</p>
+<ul>
+<li>
+<code class="directive"><a href="#maxspareservers" class="directive">MaxSpareServers</a></code>
+</li>
+<li>
+<code class="directive"><a href="mpm_common.html#startservers" class="directive">StartServers</a></code>
+</li>
+</ul>
+<hr>
+<h3 align="center">Apache HTTP Server Version 2.0</h3>
+<a href="./"><img alt="Index" src="../images/index.gif"></a><a href="../"><img alt="Home" src="../images/home.gif"></a>
+</blockquote>
+</body>
</html>
-