mirror of
https://github.com/apache/httpd.git
synced 2025-05-28 13:41:30 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93835 13f79535-47bb-0310-9956-ffa450edef68
210 lines
7.7 KiB
XML
210 lines
7.7 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.xsl"?>
|
|
<modulesynopsis>
|
|
|
|
<name>prefork</name>
|
|
<description>Implements a non-threaded, pre-forking web server</description>
|
|
<status>MPM</status>
|
|
<sourcefile>prefork.c</sourcefile>
|
|
<identifier>mpm_prefork_module</identifier>
|
|
|
|
<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
|
|
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
|
|
requests. In this way, clients do not need to wait for a new
|
|
child processes to be forked before their requests can be
|
|
served.</p>
|
|
|
|
<p>The <directive module="mpm_common">StartServers</directive>,
|
|
<directive module="prefork">MinSpareServers</directive>,
|
|
<directive module="prefork">MaxSpareServers</directive>, and
|
|
<directive module="mpm_common">MaxClients</directive> 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 <directive module="mpm_common">MaxClients</directive>,
|
|
while sites with limited memory may need to decrease <directive
|
|
module="mpm_common">MaxClients</directive> 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 <directive
|
|
module="mpm_common">User</directive> and <directive
|
|
module="mpm_common">Group</directive> 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><directive module="mpm_common">MaxRequestsPerChild</directive>
|
|
controls how frequently the server recycles processes by killing
|
|
old ones and launching new ones.</p>
|
|
</summary>
|
|
<seealso><a href="../bind.html">Setting which addresses and
|
|
ports Apache uses</a></seealso>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>CoreDumpDirectory</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>PidFile</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>Listen</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>ListenBacklog</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>LockFile</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>MaxRequestsPerChild</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>MaxSpareServers</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>MinSpareServers</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>ScoreBoardFile</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>SendBufferSize</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>ServerLimit</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>StartServers</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis location="mpm_common">
|
|
<name>User</name>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>AcceptMutex</name>
|
|
<description>Method that Apache uses to serialize multiple children
|
|
accepting requests on network sockets</description>
|
|
<syntax>AcceptMutex default|<em>method</em></syntax>
|
|
<default>AcceptMutex default</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>AcceptMutex</directive> 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>
|
|
|
|
<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 <directive module="mpm_common"
|
|
>LockFile</directive> directive.</dd>
|
|
|
|
<dt><code>fcntl</code></dt>
|
|
|
|
<dd>uses the <code>fnctl(2)</code> system call to lock the
|
|
file defined by the <directive module="mpm_common"
|
|
>LockFile</directive> 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>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MaxSpareServers</name>
|
|
<description>Maximum number of idle child server processes</description>
|
|
<syntax>MaxSpareServers <em>number</em><br /></syntax>
|
|
<default>MaxSpareServers 10</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MaxSpareServers</directive> 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>
|
|
</usage>
|
|
<seealso><directive module="prefork">MinSpareServers</directive></seealso>
|
|
<seealso><directive module="mpm_common">StartServers</directive></seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>MinSpareServers</name>
|
|
<description>Minimum number of idle child server processes</description>
|
|
<syntax>MinSpareServers <em>number</em></syntax>
|
|
<default>MinSpareServers 5</default>
|
|
<contextlist><context>server config</context></contextlist>
|
|
|
|
<usage>
|
|
<p>The <directive>MinSpareServers</directive> 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>
|
|
</usage>
|
|
<seealso><directive module="prefork">MaxSpareServers</directive></seealso>
|
|
<seealso><directive module="mpm_common">StartServers</directive></seealso>
|
|
</directivesynopsis>
|
|
|
|
</modulesynopsis>
|
|
|