diff options
author | Rich Bowen <rbowen@apache.org> | 2001-09-22 21:39:26 +0200 |
---|---|---|
committer | Rich Bowen <rbowen@apache.org> | 2001-09-22 21:39:26 +0200 |
commit | f88b50dec40878abeccce0e1b9cfc6780a4b1465 (patch) | |
tree | 84e6a7b926e102d9f322b96351f2346be29c2db5 /docs/manual/mod/mpm_common.html | |
parent | w3c tidy to convert to xhtml. Please verify that foreign language files (diff) | |
download | apache2-f88b50dec40878abeccce0e1b9cfc6780a4b1465.tar.xz apache2-f88b50dec40878abeccce0e1b9cfc6780a4b1465.zip |
w3c tidy to convert to xhtml
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91116 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod/mpm_common.html')
-rw-r--r-- | docs/manual/mod/mpm_common.html | 1459 |
1 files changed, 692 insertions, 767 deletions
diff --git a/docs/manual/mod/mpm_common.html b/docs/manual/mod/mpm_common.html index 39c629e7fa..bc414cee85 100644 --- a/docs/manual/mod/mpm_common.html +++ b/docs/manual/mod/mpm_common.html @@ -1,771 +1,696 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<HTML> -<HEAD> -<TITLE>Apache MPM Common Directives</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 Common Directives</H1> - -<P>This file documents directives that are implemented by more -than one multi-processing module (MPM). -</P> - -<H2>Directives</H2> -<UL> -<li><a href="#connectionstatus">ConnectionStatus</a></li> -<li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> -<li><a href="#group">Group</a></li> -<li><a href="#pidfile">PidFile</a></li> -<li><a href="#listen">Listen</a></li> -<li><a href="#listenbacklog">ListenBacklog</a></li> -<li><a href="#lockfile">LockFile</a></li> -<li><a href="#maxclients">MaxClients</a></li> -<li><a href="#maxrequestsperchild">MaxRequestsPerChild</a></li> -<li><a href="#maxsparethreads">MaxSpareThreads</a></li> -<li><a href="#maxthreadsperchild">MaxThreadsPerChild</a></li> -<li><a href="#minsparethreads">MinSpareThreads</a></li> -<li><a href="#numservers">NumServers</a></li> -<li><a href="#scoreboardfile">ScoreBoardFile</a></li> -<li><a href="#sendbuffersize">SendBufferSize</a></li> -<li><a href="#startservers">StartServers</a></li> -<li><a href="#startthreads">StartThreads</a></li> -<li><a href="#threadsperchild">ThreadsPerChild</a></li> -<li><a href="#user">User</a></li> -</UL> -<HR> - -<H2><A NAME="connectionstatus">ConnectionStatus directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> - ConnectionStatus on|off<BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> - <CODE>ConnectionStatus on</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> perchild</p> - -<p>Whether or not to maintain status information on current -connections. If this is off then mod_status will not work properly.</p> - -<hr> - -<H2><A NAME="coredumpdirectory">CoreDumpDirectory directive</A></H2> -<!--%plaintext <?INDEX {\tt CoreDumpDirectory} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> CoreDumpDirectory <EM>directory</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> the same location as ServerRoot<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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p> - -<p>This controls the directory to which Apache attempts to switch -before dumping core. The default is in the <A -HREF="core.html#serverroot">ServerRoot</A> directory, however since -this should not be writable by the user the server runs as, core dumps -won't normally get written. If you want a core dump for debugging, -you can use this directive to place it in a different location.<P><HR> - - -<H2><A NAME="group">Group directive</A></H2> -<!--%plaintext <?INDEX {\tt Group} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> Group <EM>unix-group</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>Group #-1</CODE><BR> -<A - HREF="directive-dict.html#Context" - REL="Help" -><STRONG>Context:</STRONG></A> server config, virtual host<BR> -<A - HREF="directive-dict.html#Status" - REL="Help" -><STRONG>Status:</STRONG></A> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork</p> - -The Group directive sets the group under which the server will answer requests. -In order to use this directive, the stand-alone server must be run initially -as root. <EM>Unix-group</EM> is one of: -<DL> -<DT>A group name -<DD>Refers to the given group by name. -<DT># followed by a group number. -<DD>Refers to a group by its number. -</DL> - -It is recommended that you set up a new group specifically for running the -server. Some admins use user <CODE>nobody</CODE>, but this is not always -possible or desirable.<P> - -Note: if you start the server as a non-root user, it will fail to change -to the specified group, and will instead continue to run as the group of the -original user. <P> - -Special note: Use of this directive in <VirtualHost< is no longer -supported. To implement the <A HREF="../suexec.html">suEXEC wrapper</A> -with Apache 2.0, use the <A HREF=mod_suexec.html#suexecusergroup> -SuexecUserGroup</A> directive. - -SECURITY: See <A HREF="#user">User</A> for a discussion of the security -considerations.<P><HR> - -<H2><A NAME="pidfile">PidFile directive</A></H2> -<!--%plaintext <?INDEX {\tt PidFile} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> PidFile <EM>filename</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>PidFile logs/httpd.pid</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p> - -<p>The PidFile directive sets the file to which the server records the -process id of the daemon. If the filename does not begin with a slash -(/) then it is assumed to be relative to the <A -HREF="core.html#serverroot">ServerRoot</A>.</p> - -<p>It is often useful to be able to send the server a signal, so that -it closes and then reopens its <A -HREF="core.html#errorlog">ErrorLog</A> and TransferLog, and re-reads -its configuration files. This is done by sending a SIGHUP (kill -1) -signal to the process id listed in the PidFile.</p> - -<p>The PidFile is subject to the same warnings about log file placement and -<A HREF="../misc/security_tips.html#serverroot">security</A>.</p> - -<p><hr> - -<H2><A NAME="listen">Listen directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> -Listen [<EM>IP-address</EM>:]<EM>port number</EM><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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p> - - -<P>The Listen directive instructs Apache to listen to only specific IP -addresses or ports; by default it responds to requests on all IP -interfaces, but only on the port given by the <CODE><A -HREF="core.html#port">Port</A></CODE> directive.</P> - -<p>The Listen directive tells -the server to accept incoming requests on the specified port or -address-and-port combination. If only a port number is specified, -the server listens to the given port on all interfaces, -instead of the port given by the <TT>Port</TT> directive. If an IP -address is given as well as a port, the server will listen on the -given port and interface. <P> - -Note that you may still require a <TT>Port</TT> directive so -that URLs that Apache generates that point to your server still -work.<P> - -Multiple Listen directives may be used -to specify a number of addresses and ports to listen to. The server -will respond to requests from any of the listed addresses and -ports. -<P> - -For example, to make the server accept connections on both port -80 and port 8000, use: -<PRE> +<!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 Common Directives</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 Common + Directives</h1> + + <p>This file documents directives that are implemented by more + than one multi-processing module (MPM).</p> + + <h2>Directives</h2> + + <ul> + <li><a href="#connectionstatus">ConnectionStatus</a></li> + + <li><a href="#coredumpdirectory">CoreDumpDirectory</a></li> + + <li><a href="#group">Group</a></li> + + <li><a href="#pidfile">PidFile</a></li> + + <li><a href="#listen">Listen</a></li> + + <li><a href="#listenbacklog">ListenBacklog</a></li> + + <li><a href="#lockfile">LockFile</a></li> + + <li><a href="#maxclients">MaxClients</a></li> + + <li><a + href="#maxrequestsperchild">MaxRequestsPerChild</a></li> + + <li><a href="#maxsparethreads">MaxSpareThreads</a></li> + + <li><a href="#maxthreadsperchild">MaxThreadsPerChild</a></li> + + <li><a href="#minsparethreads">MinSpareThreads</a></li> + + <li><a href="#numservers">NumServers</a></li> + + <li><a href="#scoreboardfile">ScoreBoardFile</a></li> + + <li><a href="#sendbuffersize">SendBufferSize</a></li> + + <li><a href="#startservers">StartServers</a></li> + + <li><a href="#startthreads">StartThreads</a></li> + + <li><a href="#threadsperchild">ThreadsPerChild</a></li> + + <li><a href="#user">User</a></li> + </ul> + <hr /> + + <h2><a id="connectionstatus" + name="connectionstatus">ConnectionStatus directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ConnectionStatus + on|off<br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ConnectionStatus + on</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> perchild</p> + + <p>Whether or not to maintain status information on current + connections. If this is off then mod_status will not work + properly.</p> + <hr /> + + <h2><a id="coredumpdirectory" + name="coredumpdirectory">CoreDumpDirectory directive</a></h2> + <!--%plaintext <?INDEX {\tt CoreDumpDirectory} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> CoreDumpDirectory + <em>directory</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> the same location as + ServerRoot<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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork, mpm_winnt</p> + + <p>This controls the directory to which Apache attempts to + switch before dumping core. The default is in the <a + href="core.html#serverroot">ServerRoot</a> directory, however + since this should not be writable by the user the server runs + as, core dumps won't normally get written. If you want a core + dump for debugging, you can use this directive to place it in a + different location.</p> + <hr /> + + <h2><a id="group" name="group">Group directive</a></h2> + <!--%plaintext <?INDEX {\tt Group} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Group + <em>unix-group</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>Group + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork</p> + The Group directive sets the group under which the server will + answer requests. In order to use this directive, the + stand-alone server must be run initially as root. + <em>Unix-group</em> is one of: + + <dl> + <dt>A group name</dt> + + <dd>Refers to the given group by name.</dd> + + <dt># followed by a group number.</dt> + + <dd>Refers to a group by its number.</dd> + </dl> + It is recommended that you set up a new group specifically for + running the server. Some admins use user <code>nobody</code>, + but this is not always possible or desirable. + + <p>Note: if you start the server as a non-root user, it will + fail to change to the specified group, and will instead + continue to run as the group of the original user.</p> + + <p>Special note: Use of this directive in <VirtualHost< + is no longer supported. To implement the <a + href="../suexec.html">suEXEC wrapper</a> with Apache 2.0, use + the <a + href="mod_suexec.html#suexecusergroup">SuexecUserGroup</a> + directive. SECURITY: See <a href="#user">User</a> for a + discussion of the security considerations.</p> + <hr /> + + <h2><a id="pidfile" name="pidfile">PidFile directive</a></h2> + <!--%plaintext <?INDEX {\tt PidFile} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> PidFile + <em>filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>PidFile + logs/httpd.pid</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork, mpm_winnt</p> + + <p>The PidFile directive sets the file to which the server + records the process id of the daemon. If the filename does not + begin with a slash (/) then it is assumed to be relative to the + <a href="core.html#serverroot">ServerRoot</a>.</p> + + <p>It is often useful to be able to send the server a signal, + so that it closes and then reopens its <a + href="core.html#errorlog">ErrorLog</a> and TransferLog, and + re-reads its configuration files. This is done by sending a + SIGHUP (kill -1) signal to the process id listed in the + PidFile.</p> + + <p>The PidFile is subject to the same warnings about log file + placement and <a + href="../misc/security_tips.html#serverroot">security</a>.</p> + <hr /> + + <h2><a id="listen" name="listen">Listen directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> Listen + [<em>IP-address</em>:]<em>port number</em><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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork, mpm_winnt</p> + + <p>The Listen directive instructs Apache to listen to only + specific IP addresses or ports; by default it responds to + requests on all IP interfaces, but only on the port given by + the <code><a href="core.html#port">Port</a></code> + directive.</p> + + <p>The Listen directive tells the server to accept incoming + requests on the specified port or address-and-port combination. + If only a port number is specified, the server listens to the + given port on all interfaces, instead of the port given by the + <tt>Port</tt> directive. If an IP address is given as well as a + port, the server will listen on the given port and + interface.</p> + + <p>Note that you may still require a <tt>Port</tt> directive so + that URLs that Apache generates that point to your server still + work.</p> + + <p>Multiple Listen directives may be used to specify a number + of addresses and ports to listen to. The server will respond to + requests from any of the listed addresses and ports.</p> + + <p>For example, to make the server accept connections on both + port 80 and port 8000, use:</p> +<pre> Listen 80 Listen 8000 -</PRE> - -To make the server accept connections on two specified -interfaces and port numbers, use -<PRE> +</pre> + To make the server accept connections on two specified + interfaces and port numbers, use +<pre> Listen 192.170.2.1:80 Listen 192.170.2.5:8000 -</PRE> - -<P><STRONG>See Also:</STRONG> -<A HREF="../dns-caveats.html">DNS Issues</A><BR> -<STRONG>See Also:</STRONG> -<A HREF="../bind.html">Setting which addresses and ports Apache uses</A><BR> -<STRONG>See Also:</STRONG> -<A HREF="http://www.apache.org/info/known_bugs.html#listenbug">Known Bugs</A> -</P> -<HR> - -<H2><A NAME="listenbacklog">ListenBacklog directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> ListenBacklog <EM>backlog</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>ListenBacklog 511</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p> - -<P>The maximum length of the queue of pending connections. Generally no -tuning is needed or desired, however on some systems it is desirable -to increase this when under a TCP SYN flood attack. See -the backlog parameter to the <CODE>listen(2)</CODE> system call. - -<P>This will often be limited to a smaller number by the operating -system. This varies from OS to OS. Also note that many OSes do not -use exactly what is specified as the backlog, but use a number based on -(but normally larger than) what is set. -<HR> - -<H2><A NAME="lockfile">LockFile directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> LockFile <EM>filename</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>LockFile logs/accept.lock</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork</p> - -<p>The LockFile directive sets the path to the lockfile used when -Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or -USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally be -left at its default value. The main reason for changing it is if -the <CODE>logs</CODE> directory is NFS mounted, since <STRONG>the lockfile -must be stored on a local disk</STRONG>. The PID of the main -server process is automatically appended to the filename. <P> - -<p><STRONG>SECURITY:</STRONG> It is best to avoid putting this file in a -world writable directory such as <CODE>/var/tmp</CODE> because someone -could create a denial of service attack and prevent the server from -starting by creating a lockfile with the same name as the one the -server will try to create.</p> - -<hr> - -<H2><A NAME="maxclients">MaxClients directive</A></H2> -<!--%plaintext <?INDEX {\tt MaxClients} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> MaxClients <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>MaxClients 8</code> (with threads) -<code>MaxClients 256</code> (no threads)<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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, prefork</p> - -<P>The MaxClients directive sets the limit on the number of child -processes that will be created to serve requests. When the server is -built without threading, no more than this number of clients can be -served simultaneously. To configure more than 256 clients, you must -edit the <code>HARD_SERVER_LIMIT</code> entry in -<code>mpm_default.h</code> and recompile. - -<P>Any connection attempts over the MaxClients limit will normally -be queued, up to a number based on the <A HREF="#listenbacklog"> -ListenBacklog</A> directive. Once a child process is freed at the -end of a different request, the connection will then be serviced.</p> - -<p>When the server is compiled with threading, then the maximum number -of simultaneous requests that can be served is obtained from the value -of this directive multiplied by <a -href="#threadsperchild">ThreadsPerChild</a>.</p> - -<HR> - -<H2><A NAME="maxrequestsperchild">MaxRequestsPerChild directive</A></H2> -<!--%plaintext <?INDEX {\tt MaxRequestsPerChild} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> MaxRequestsPerChild <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>MaxRequestsPerChild 10000</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, prefork, perchild, mpm_winnt</p> - -<p>The MaxRequestsPerChild directive sets the limit on the number of requests -that an individual child server process will handle. After MaxRequestsPerChild -requests, the child process will die. If MaxRequestsPerChild is 0, then -the process will never expire.<P> - -Setting MaxRequestsPerChild to a non-zero limit has two beneficial effects: -<UL> -<LI>it limits the amount of memory that process can consume by (accidental) -memory leakage; -<LI> by giving processes a finite lifetime, it helps reduce the -number of processes when the server load reduces. -</UL> - -<P><STRONG>NOTE:</STRONG> For <EM>KeepAlive</EM> requests, only the first -request is counted towards this limit. In effect, it changes the -behavior to limit the number of <EM>connections</EM> per child. - -<P><HR> - - -<H2><A NAME="maxsparethreads">MaxSpareThreads directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> MaxSpareThreads <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 10 (Perchild) or 500 (threaded) </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<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild</p> - -<P>Maximum number of idle threads. Different MPMs deal with this directive -differently. Perchild monitor the number of idle threads on a -per-child basis. If there are too many idle threads in that child, the server -will begin to kill threads within that child.</P> -<P>threaded deals with idle threads on a server-wide basis. If there are -too many idle threads in the server then child processes are killed -until the number of idle threads is less than this number.</p> - -<p>See also <A HREF="#minsparethreads">MinSpareThreads</A> and -<A HREF="#startservers">StartServers</A>. - -<P><HR> - -<H2><A NAME="maxthreadsperchild">MaxThreadsPerChild directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> MaxThreadsPerChild <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>MaxThreadsPerChild 64</code> -<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<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild</p> - -<P>Maximum number of threads per child. For MPMs with a variable -number of threads per child, this directive sets the maximum number of -threads that will be created in each child process. To increase this -value beyond its default, it is necessary to change the value of -the compile-time define <code>HARD_THREAD_LIMIT</code> and recompile -the server.</p> - -<P><HR> - -<H2><A NAME="minsparethreads">MinSpareThreads directive</A></H2> -<!--%plaintext <?INDEX {\tt MinSpareServers} directive> --> -<p><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>MaxSpareThreads 5 (Perchild) or 250 (threaded) </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<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild</p> - -<P>Minimum number of idle threads to handle request spikes. Different MPMs -deal with this directive differently. Perchild monitor the number -of idle threads on a per-child basis. If there aren't enough idle threads in -that child, the server will begin to create new threads within that child. -</P> -<P>threaded deals with idle threads on a server-wide basis. If there -aren't enough idle threads in the server then child processes are created -until the number of idle threads is greater than number.</p> - -See also <A HREF="#maxsparethreads">MaxSpareThreads</A> and -<A HREF="#startservers">StartServers</A>.<P><HR> - - -<H2><A NAME="numservers">NumServers directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> NumServers <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>NumServers 2</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> perchild</p> - -<p>Number of children alive at the same time. MPMs that use this directive -do not dynamically create new child processes so this number should be -large enough to handle the requests for the entire site.</p> - -<hr> - -<H2><A NAME="scoreboardfile">ScoreBoardFile directive</A></H2> -<!--%plaintext <?INDEX {\tt ScoreBoardFile} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> ScoreBoardFile <EM>filename</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>ScoreBoardFile logs/apache_status</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> MPM<BR> -<A - HREF="directive-dict.html#Compatibility" - REL="Help" -></a> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork</p> - -<p>The ScoreBoardFile directive is required on some architectures to place -a file that the server will use to communicate between its children and -the parent. The easiest way to find out if your architecture requires -a scoreboard file is to run Apache and see if it creates the file named -by the directive. If your architecture requires it then you must ensure -that this file is not used at the same time by more than one invocation -of Apache.</p> - -<p>If you have to use a ScoreBoardFile then you may see improved speed by -placing it on a RAM disk. But be careful that you heed the same warnings -about log file placement and -<A HREF="../misc/security_tips.html">security</A>.</p> - -<p><STRONG>See Also</STRONG>: -<A HREF="../stopping.html">Stopping and Restarting Apache</A></P> - - -<P><HR> - -<H2><A NAME="sendbuffersize">SendBufferSize directive</A></H2> -<!--%plaintext <?INDEX {\tt SendBufferSize} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> SendBufferSize <EM>bytes</EM><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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork, mpm_winnt</p> - -The server will set the TCP buffer size to the number of bytes -specified. Very useful to increase past standard OS defaults on high -speed high latency (<EM>i.e.</EM>, 100ms or so, such as transcontinental -fast pipes) - -<P><HR> - -<H2><A NAME="startservers">StartServers directive</A></H2> -<!--%plaintext <?INDEX {\tt StartServers} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> StartServers <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>StartServers 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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, prefork</p> - -<p>The StartServers directive sets the number of child server processes created -on startup. As the number of processes is dynamically controlled depending -on the load, there is usually little reason to adjust this parameter.</P> - -<P>See also <A HREF="#minsparethreads">MinSpareThreads</A> and -<A HREF="#maxsparethreads">MaxSpareThreads</A>.<P><HR> - - -<H2><A NAME="startthreads">StartThreads directive</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> StartThreads <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>StartThreads 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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> perchild</p> - -<p>Number of threads each child creates on startup. As the number of threads -is dynamically controlled depending on the load, there is usually little -reason to adjust this parameter.</p> - -<hr> - -<H2><A NAME="threadsperchild">ThreadsPerChild</A></H2> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> ThreadsPerChild <EM>number</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>ThreadsPerChild 50</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> MPM<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, mpm_winnt</p> - -<P>This directive sets the number of threads created by each child -process. The child creates these threads at startup and never creates -more. if using an MPM like mpmt_winnt, where there is only one child process, -this number should be high enough to handle the entire load of the server. -If using an MPM like threaded, where there are multiple child processes, -the total number of threads should be high enough to handle the common load -on the server.</p> - -<p><hr> - - -<H2><A NAME="user">User directive</A></H2> -<!--%plaintext <?INDEX {\tt User} directive> --> -<p><A - HREF="directive-dict.html#Syntax" - REL="Help" -><STRONG>Syntax:</STRONG></A> User <EM>unix-userid</EM><BR> -<A - HREF="directive-dict.html#Default" - REL="Help" -><STRONG>Default:</STRONG></A> <CODE>User #-1</CODE><BR> -<A - HREF="directive-dict.html#Context" - REL="Help" -><STRONG>Context:</STRONG></A> server config, virtual host<BR> -<A - HREF="directive-dict.html#Status" - REL="Help" -><STRONG>Status:</STRONG></A> core<BR> -<A - HREF="directive-dict.html#Module" - REL="Help" -><STRONG>Module:</STRONG></A> threaded, perchild, prefork</p> - -The User directive sets the userid as which the server will answer requests. -In order to use this directive, the standalone server must be run initially -as root. <EM>Unix-userid</EM> is one of: -<DL> -<DT>A username -<DD>Refers to the given user by name. -<DT># followed by a user number. -<DD>Refers to a user by their number. -</DL> - -The user should have no privileges which result in it being able to access -files which are not intended to be visible to the outside world, and -similarly, the user should not be able to execute code which is not -meant for httpd requests. It is recommended that you set up a new user and -group specifically for running the server. Some admins use user -<CODE>nobody</CODE>, but this is not always possible or desirable. -For example mod_proxy's cache, when enabled, must be accessible to this user -(see <A HREF="mod_proxy.html">mod_proxy's</A> <CODE>CacheRoot</CODE> -directive).<P> - -Notes: If you start the server as a non-root user, it will fail to change -to the lesser privileged user, and will instead continue to run as -that original user. If you do start the server as root, then it is normal -for the parent process to remain running as root.<P> - -Special note: Use of this directive in <VirtualHost> is no longer -supported. To configure your server for <A HREF="mod_suexec.html"> -suexec</A> use <A HREF="mod_suexec.html#suexecusergroup">SuexecUserGroup</A>. - -SECURITY: Don't set User (or <A HREF="#group">Group</A>) to -<CODE>root</CODE> unless you know exactly what you are doing, and what the -dangers are.<P> - -<!--#include virtual="footer.html" --> -</BODY> -</HTML> +</pre> + + <p><strong>See Also:</strong> <a href="../dns-caveats.html">DNS + Issues</a><br /> + <strong>See Also:</strong> <a href="../bind.html">Setting + which addresses and ports Apache uses</a><br /> + <strong>See Also:</strong> <a + href="http://www.apache.org/info/known_bugs.html#listenbug">Known + Bugs</a></p> + <hr /> + + <h2><a id="listenbacklog" name="listenbacklog">ListenBacklog + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ListenBacklog + <em>backlog</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ListenBacklog + 511</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork, mpm_winnt</p> + + <p>The maximum length of the queue of pending connections. + Generally no tuning is needed or desired, however on some + systems it is desirable to increase this when under a TCP SYN + flood attack. See the backlog parameter to the + <code>listen(2)</code> system call.</p> + + <p>This will often be limited to a smaller number by the + operating system. This varies from OS to OS. Also note that + many OSes do not use exactly what is specified as the backlog, + but use a number based on (but normally larger than) what is + set.</p> + <hr /> + + <h2><a id="lockfile" name="lockfile">LockFile + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> LockFile + <em>filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>LockFile + logs/accept.lock</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork</p> + + <p>The LockFile directive sets the path to the lockfile used + when Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT + or USE_FLOCK_SERIALIZED_ACCEPT. This directive should normally + be left at its default value. The main reason for changing it + is if the <code>logs</code> directory is NFS mounted, since + <strong>the lockfile must be stored on a local disk</strong>. + The PID of the main server process is automatically appended to + the filename.</p> + + <p><strong>SECURITY:</strong> It is best to avoid putting this + file in a world writable directory such as + <code>/var/tmp</code> because someone could create a denial of + service attack and prevent the server from starting by creating + a lockfile with the same name as the one the server will try to + create.</p> + <hr /> + + <h2><a id="maxclients" name="maxclients">MaxClients + directive</a></h2> + <!--%plaintext <?INDEX {\tt MaxClients} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxClients + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxClients + 8</code> (with threads) <code>MaxClients 256</code> (no + threads)<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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, prefork</p> + + <p>The MaxClients directive sets the limit on the number of + child processes that will be created to serve requests. When + the server is built without threading, no more than this number + of clients can be served simultaneously. To configure more than + 256 clients, you must edit the <code>HARD_SERVER_LIMIT</code> + entry in <code>mpm_default.h</code> and recompile.</p> + + <p>Any connection attempts over the MaxClients limit will + normally be queued, up to a number based on the <a + href="#listenbacklog">ListenBacklog</a> directive. Once a child + process is freed at the end of a different request, the + connection will then be serviced.</p> + + <p>When the server is compiled with threading, then the maximum + number of simultaneous requests that can be served is obtained + from the value of this directive multiplied by <a + href="#threadsperchild">ThreadsPerChild</a>.</p> + <hr /> + + <h2><a id="maxrequestsperchild" + name="maxrequestsperchild">MaxRequestsPerChild + directive</a></h2> + <!--%plaintext <?INDEX {\tt MaxRequestsPerChild} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxRequestsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxRequestsPerChild 10000</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, prefork, + perchild, mpm_winnt</p> + + <p>The MaxRequestsPerChild directive sets the limit on the + number of requests that an individual child server process will + handle. After MaxRequestsPerChild requests, the child process + will die. If MaxRequestsPerChild is 0, then the process will + never expire.</p> + + <p>Setting MaxRequestsPerChild to a non-zero limit has two + beneficial effects:</p> + + <ul> + <li>it limits the amount of memory that process can consume + by (accidental) memory leakage;</li> + + <li>by giving processes a finite lifetime, it helps reduce + the number of processes when the server load reduces.</li> + </ul> + + <p><strong>NOTE:</strong> For <em>KeepAlive</em> requests, only + the first request is counted towards this limit. In effect, it + changes the behavior to limit the number of + <em>connections</em> per child.</p> + <hr /> + + <h2><a id="maxsparethreads" + name="maxsparethreads">MaxSpareThreads directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxSpareThreads + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>MaxSpareThreads + 10 (Perchild) or 500 (threaded)</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<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild</p> + + <p>Maximum number of idle threads. Different MPMs deal with + this directive differently. Perchild monitor the number of idle + threads on a per-child basis. If there are too many idle + threads in that child, the server will begin to kill threads + within that child.</p> + + <p>threaded deals with idle threads on a server-wide basis. If + there are too many idle threads in the server then child + processes are killed until the number of idle threads is less + than this number.</p> + + <p>See also <a href="#minsparethreads">MinSpareThreads</a> and + <a href="#startservers">StartServers</a>.</p> + <hr /> + + <h2><a id="maxthreadsperchild" + name="maxthreadsperchild">MaxThreadsPerChild directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> MaxThreadsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> + <code>MaxThreadsPerChild 64</code> <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<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild</p> + + <p>Maximum number of threads per child. For MPMs with a + variable number of threads per child, this directive sets the + maximum number of threads that will be created in each child + process. To increase this value beyond its default, it is + necessary to change the value of the compile-time define + <code>HARD_THREAD_LIMIT</code> and recompile the server.</p> + <hr /> + + <h2><a id="minsparethreads" + name="minsparethreads">MinSpareThreads directive</a></h2> + <!--%plaintext <?INDEX {\tt MinSpareServers} directive> --> + + <p><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>MaxSpareThreads + 5 (Perchild) or 250 (threaded)</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<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild</p> + + <p>Minimum number of idle threads to handle request spikes. + Different MPMs deal with this directive differently. Perchild + monitor the number of idle threads on a per-child basis. If + there aren't enough idle threads in that child, the server will + begin to create new threads within that child.</p> + + <p>threaded deals with idle threads on a server-wide basis. If + there aren't enough idle threads in the server then child + processes are created until the number of idle threads is + greater than number.</p> + See also <a href="#maxsparethreads">MaxSpareThreads</a> and <a + href="#startservers">StartServers</a>. + <hr /> + + <h2><a id="numservers" name="numservers">NumServers + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> NumServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>NumServers + 2</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> perchild</p> + + <p>Number of children alive at the same time. MPMs that use + this directive do not dynamically create new child processes so + this number should be large enough to handle the requests for + the entire site.</p> + <hr /> + + <h2><a id="scoreboardfile" name="scoreboardfile">ScoreBoardFile + directive</a></h2> + <!--%plaintext <?INDEX {\tt ScoreBoardFile} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ScoreBoardFile + <em>filename</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ScoreBoardFile + logs/apache_status</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> MPM<br /> + <a href="directive-dict.html#Compatibility" rel="Help"></a> <a + href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork</p> + + <p>The ScoreBoardFile directive is required on some + architectures to place a file that the server will use to + communicate between its children and the parent. The easiest + way to find out if your architecture requires a scoreboard file + is to run Apache and see if it creates the file named by the + directive. If your architecture requires it then you must + ensure that this file is not used at the same time by more than + one invocation of Apache.</p> + + <p>If you have to use a ScoreBoardFile then you may see + improved speed by placing it on a RAM disk. But be careful that + you heed the same warnings about log file placement and <a + href="../misc/security_tips.html">security</a>.</p> + + <p><strong>See Also</strong>: <a + href="../stopping.html">Stopping and Restarting Apache</a></p> + <hr /> + + <h2><a id="sendbuffersize" name="sendbuffersize">SendBufferSize + directive</a></h2> + <!--%plaintext <?INDEX {\tt SendBufferSize} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> SendBufferSize + <em>bytes</em><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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork, mpm_winnt</p> + The server will set the TCP buffer size to the number of bytes + specified. Very useful to increase past standard OS defaults on + high speed high latency (<em>i.e.</em>, 100ms or so, such as + transcontinental fast pipes) + <hr /> + + <h2><a id="startservers" name="startservers">StartServers + directive</a></h2> + <!--%plaintext <?INDEX {\tt StartServers} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> StartServers + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>StartServers + 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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, prefork</p> + + <p>The StartServers directive sets the number of child server + processes created on startup. As the number of processes is + dynamically controlled depending on the load, there is usually + little reason to adjust this parameter.</p> + + <p>See also <a href="#minsparethreads">MinSpareThreads</a> and + <a href="#maxsparethreads">MaxSpareThreads</a>.</p> + <hr /> + + <h2><a id="startthreads" name="startthreads">StartThreads + directive</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> StartThreads + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>StartThreads + 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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> perchild</p> + + <p>Number of threads each child creates on startup. As the + number of threads is dynamically controlled depending on the + load, there is usually little reason to adjust this + parameter.</p> + <hr /> + + <h2><a id="threadsperchild" + name="threadsperchild">ThreadsPerChild</a></h2> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> ThreadsPerChild + <em>number</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>ThreadsPerChild + 50</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> MPM<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, mpm_winnt</p> + + <p>This directive sets the number of threads created by each + child process. The child creates these threads at startup and + never creates more. if using an MPM like mpmt_winnt, where + there is only one child process, this number should be high + enough to handle the entire load of the server. If using an MPM + like threaded, where there are multiple child processes, the + total number of threads should be high enough to handle the + common load on the server.</p> + <hr /> + + <h2><a id="user" name="user">User directive</a></h2> + <!--%plaintext <?INDEX {\tt User} directive> --> + + <p><a href="directive-dict.html#Syntax" + rel="Help"><strong>Syntax:</strong></a> User + <em>unix-userid</em><br /> + <a href="directive-dict.html#Default" + rel="Help"><strong>Default:</strong></a> <code>User + #-1</code><br /> + <a href="directive-dict.html#Context" + rel="Help"><strong>Context:</strong></a> server config, virtual + host<br /> + <a href="directive-dict.html#Status" + rel="Help"><strong>Status:</strong></a> core<br /> + <a href="directive-dict.html#Module" + rel="Help"><strong>Module:</strong></a> threaded, perchild, + prefork</p> + The User directive sets the userid as which the server will + answer requests. In order to use this directive, the standalone + server must be run initially as root. <em>Unix-userid</em> is + one of: + + <dl> + <dt>A username</dt> + + <dd>Refers to the given user by name.</dd> + + <dt># followed by a user number.</dt> + + <dd>Refers to a user by their number.</dd> + </dl> + The user should have no privileges which result in it being + able to access files which are not intended to be visible to + the outside world, and similarly, the user should not be able + to execute code which is not meant for httpd requests. It is + recommended that you set up a new user and group specifically + for running the server. Some admins use user + <code>nobody</code>, but this is not always possible or + desirable. For example mod_proxy's cache, when enabled, must be + accessible to this user (see <a + href="mod_proxy.html">mod_proxy's</a> <code>CacheRoot</code> + directive). + + <p>Notes: If you start the server as a non-root user, it will + fail to change to the lesser privileged user, and will instead + continue to run as that original user. If you do start the + server as root, then it is normal for the parent process to + remain running as root.</p> + + <p>Special note: Use of this directive in <VirtualHost> + is no longer supported. To configure your server for <a + href="mod_suexec.html">suexec</a> use <a + href="mod_suexec.html#suexecusergroup">SuexecUserGroup</a>. + SECURITY: Don't set User (or <a href="#group">Group</a>) to + <code>root</code> unless you know exactly what you are doing, + and what the dangers are.</p> + + <p><!--#include virtual="footer.html" --> + </p> + </body> +</html> + |