diff options
Diffstat (limited to 'docs/manual/mod/prefork.html')
-rw-r--r-- | docs/manual/mod/prefork.html | 539 |
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 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 <?INDEX {\tt MaxSpareServers} directive> --> - <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 <?INDEX {\tt MinSpareServers} directive> --> - <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> - |