mirror of
https://github.com/apache/httpd.git
synced 2025-10-22 23:12:44 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@96392 13f79535-47bb-0310-9956-ffa450edef68
84 lines
4.8 KiB
Plaintext
84 lines
4.8 KiB
Plaintext
<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>Multi-Processing Modules (MPMs) - Apache HTTP Server</title><link href="./style/manual.css" type="text/css" rel="stylesheet"></head><body><blockquote><div align="center"><img src="./images/sub.gif" alt="[APACHE DOCUMENTATION]"><h3>Apache HTTP Server Version 2.0</h3></div><h1 align="center">Multi-Processing Modules (MPMs)</h1>
|
|
<p>This document describes what a Multi-Processing Module is and
|
|
how they are using by the Apache HTTP Server.</p>
|
|
<ul><li><a href="#introduction">Introduction</a></li><li><a href="#choosing">Choosing an MPM</a></li><li><a href="#defaults">MPM Defaults</a></li></ul><hr><h2><a name="introduction">Introduction</a></h2>
|
|
|
|
<p>The Apache HTTP Server is designed to be a powerful and
|
|
flexible web server that can work on a very wide variety of
|
|
platforms in a range of different environments. Different
|
|
platforms and different environments often require different
|
|
features, or may have different ways of implementing the same
|
|
feature most efficiently. Apache has always accommodated a wide
|
|
variety of environments through its modular design. This design
|
|
allows the webmaster to choose which features will be included
|
|
in the server by selecting which modules to load either at
|
|
compile-time or at run-time.</p>
|
|
|
|
<p>Apache 2.0 extends this modular design to the most basic
|
|
functions of a web server. The server ships with a selection of
|
|
Multi-Processing Modules (MPMs) which are responsible for
|
|
binding to network ports on the machine, accepting requests,
|
|
and dispatching children to handle the requests.</p>
|
|
|
|
<p>Extending the modular design to this level of the server
|
|
allows two important benefits:</p>
|
|
|
|
<ul>
|
|
<li>Apache can more cleanly and efficiently support a wide
|
|
variety of operating systems. In particular, the Windows
|
|
version of Apache is now much more efficient, since
|
|
<code><a href="./mod/mpm_winnt.html">mpm_winnt</a></code> can use native
|
|
networking features in place of the POSIX layer used in
|
|
Apache 1.3. This benefit also extends to other operating
|
|
systems that implement specialized MPMs.</li>
|
|
|
|
<li>The server can be better customized for the needs of the
|
|
particular site. For example, sites that need a great deal of
|
|
scalability can choose to use a threaded MPM like
|
|
<code><a href="./mod/worker.html">worker</a></code>, while sites requiring
|
|
stability or compatibility with older software can use a
|
|
<code><a href="./mod/prefork.html">prefork</a></code>. In addition,
|
|
special features like serving different hosts under different
|
|
userids (<code><a href="./mod/perchild.html">perchild</a></code>) can be
|
|
provided.</li>
|
|
</ul>
|
|
|
|
<p>At the user level, MPMs appear much like other Apache
|
|
modules. The main difference is that one and only one MPM must
|
|
be loaded into the server at any time. The list of available
|
|
MPMs appears on the <a href="mod/">module index page</a>.</p>
|
|
|
|
<h2><a name="choosing">Choosing an MPM</a></h2>
|
|
|
|
<p>MPMs must be chosen during configuration, and compiled into
|
|
the server. Compilers are capable of optimizing a lot of
|
|
functions if threads are used, but only if they know that
|
|
threads are being used. Because some MPMs use threads on Unix
|
|
and others don't, Apache will always perform better if the MPM
|
|
is chosen at configuration time and built into Apache.</p>
|
|
|
|
<p>To actually choose the desired MPM, use the argument
|
|
--with-mpm= <em>NAME</em> with the ./configure script.
|
|
<em>NAME</em> is the name of the desired MPM.</p>
|
|
|
|
<p>Once the server has been compiled, it is possible to
|
|
determine which MPM was chosen by using <code>./httpd
|
|
-l</code>. This command will list every module that is compiled
|
|
into the server, including the MPM.</p>
|
|
<h2><a name="defaults">MPM Defaults</a></h2>
|
|
|
|
<p>The following table lists the default MPMs for various operating
|
|
systems. This will be the MPM selected if you do not make another
|
|
choice at compile-time.</p>
|
|
|
|
<table>
|
|
<tr><td>BeOS</td><td><code><a href="./mod/beos.html">beos</a></code></td></tr>
|
|
<tr><td>OS/2</td><td><code><a href="./mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
|
<tr><td>Unix</td><td><code><a href="./mod/prefork.html">prefork</a></code></td></tr>
|
|
<tr><td>Windows</td><td><code><a href="./mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
|
|
</table>
|
|
<hr></blockquote><h3 align="center">Apache HTTP Server Version 2.0</h3><a href="./"><img src="./images/index.gif" alt="Index"></a><a href="./"><img src="./images/home.gif" alt="Home"></a></body></html> |