worker.html revision b06532af01fd2de3194e888846e80127f0f1795b
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><!--
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNicoXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico This file is generated from xml source: DO NOT EDIT
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNicoXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico--><title>worker - 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 worker</h1><table cellspacing="1" cellpadding="0" bgcolor="#cccccc"><tr><td><table bgcolor="#ffffff"><tr><td valign="top"><span class="help">Description:</span></td><td><description>Multi-Processing Module implementing a hybrid
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico multi-threaded multi-process 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_worker_module</td></tr></table></td></tr></table><h2>Summary</h2><summary>
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <p>This Multi-Processing Module (MPM) is the default for most
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico unix-like operating systems. It implements a hybrid
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico multi-process multi-threaded server. Each process has a fixed
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico number of threads. The server adjusts to handle load by
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico increasing or decreasing the number of processes.</p>
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <p>A single control process is responsible for launching child
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico processes. Each child process creates a fixed number of threads
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico as specified in the <code>ThreadsPerChild</code> directive. The
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico individual threads then listen for connections and serve them
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico when they arrive.</p>
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <p>Apache always tries to maintain a pool of <em>spare</em> or
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico idle server threads, which stand ready to serve incoming
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico requests. In this way, clients do not need to wait for a new
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico threads or processes to be created before their requests can be
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico served. Apache assesses the total number of idle threads in all
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico processes, and forks or kills processes to keep this number
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico within the boundaries specified by <code>MinSpareThreads</code>
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico and <code>MaxSpareThreads</code>. Since this process is very
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico self-regulating, it is rarely necessary to modify these
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico directives from their default values. The maximum number of
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico clients that may be served simultaneously is determined by
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico multiplying the maximum number of server processes that will be
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico created (<code>MaxClients</code>) by the number of threads
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico created in each process (<code>ThreadsPerChild</code>).</p>
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <p>While the parent process is usually started as root under
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico Unix in order to bind to port 80, the child processes and
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico threads are launched by Apache as a less-privileged user. The
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <code>User</code> and <code>Group</code> directives are used to
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico set the privileges of the Apache child processes. The child
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico processes must be able to read all the content that will be
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico served, but should have as few privileges beyond that as
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico possible. In addition, unless <a href="/suexec.html">suexec</a> is used, these directives also
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico set the privileges which will be inherited by CGI scripts.</p>
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <p><code>MaxRequestsPerChild</code> controls how frequently the
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico server recycles processes by killing old ones and launching new
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico <p>See also: <a href="/bind.html">Setting which addresses and
55409b97452fc42cc6fbb542da79ab133ed705b3JazzyNico</summary><h2>Directives</h2><ul><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#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="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li><li><a href="mpm_common.html#minsparethreads">MinSpareThreads</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#threadlimit">ThreadLimit</a></li><li><a href="mpm_common.html#threadsperchild">ThreadsPerChild</a></li><li><a href="mpm_common.html#user">User</a></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>