mirror of
https://github.com/apache/httpd.git
synced 2025-06-03 10:42:03 +03:00
The deletes come next. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92036 13f79535-47bb-0310-9956-ffa450edef68
96 lines
3.9 KiB
Plaintext
96 lines
3.9 KiB
Plaintext
<!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 Multi-Processing Modules (MPMs)</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">Apache Multi-Processing Modules</h1>
|
|
|
|
<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 <a
|
|
href="mod/mpm_winnt.html">mpm_winnt</a> 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 <a
|
|
href="mod/worker.html">worker</a>, while sites requiring
|
|
stability or compatibility with older software can use a <a
|
|
href="mod/prefork.html">preforking MPM</a>. In addition,
|
|
special features like serving different hosts under different
|
|
userids (<a href="mod/perchild.html">perchild</a>) 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 align="center">Choosing an MPM</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 align="center">MPM Defaults</h2>
|
|
|
|
<ul>
|
|
<li>BeOS: beos</li>
|
|
|
|
<li>OS/2: mpmt_os2</li>
|
|
|
|
<li>Unix: prefork</li>
|
|
|
|
<li>Windows: winnt</li>
|
|
</ul>
|
|
<!--#include virtual="footer.html" -->
|
|
</body>
|
|
</html>
|
|
|