From 6523d8eeab77a032b4bf3bef5b2829aeff403ce6 Mon Sep 17 00:00:00 2001
From: Joshua Slive This document describes what a Multi-Processing Module is and
+how they are using by the Apache HTTP Server. The Apache HTTP Server is designed to be a powerful and
flexible web server that can work on a very wide variety of
@@ -38,20 +30,20 @@
Apache Multi-Processing Modules
+Apache HTTP Server Version 2.0
Multi-Processing Modules (MPMs)
+Introduction
@@ -60,7 +52,7 @@
be loaded into the server at any time. The list of available
MPMs appears on the module index page.mpm_winnt
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.worker
, while sites requiring
+ stability or compatibility with older software can use a
+ prefork
. In addition,
special features like serving different hosts under different
- userids (perchild) can be
+ userids (perchild
) can be
provided.
MPMs must be chosen during configuration, and compiled into
the server. Compilers are capable of optimizing a lot of
@@ -77,19 +69,16 @@
determine which MPM was chosen by using ./httpd
-l
. This command will list every module that is compiled
into the server, including the MPM.
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.
+ +BeOS | beos |
OS/2 | mpmt_os2 |
Unix | prefork |
Windows | mpm_winnt |
This document describes what a Multi-Processing Module is and +how they are using by the Apache HTTP Server.
+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.
+ +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.
+ +Extending the modular design to this level of the server + allows two important benefits:
+ +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 module index page.
+ +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.
+ +To actually choose the desired MPM, use the argument + --with-mpm= NAME with the ./configure script. + NAME is the name of the desired MPM.
+ +Once the server has been compiled, it is possible to
+ determine which MPM was chosen by using ./httpd
+ -l
. This command will list every module that is compiled
+ into the server, including the MPM.
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.
+ +BeOS | |
OS/2 | |
Unix | |
Windows |