mirror of
https://github.com/apache/httpd.git
synced 2025-08-10 02:56:11 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1771654 13f79535-47bb-0310-9956-ffa450edef68
186 lines
8.8 KiB
Plaintext
186 lines
8.8 KiB
Plaintext
<?xml version="1.0" ?>
|
|
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
|
|
<!-- French translation : Lucien GENTIS -->
|
|
<!-- Reviewed by : Vincent Deffontaines -->
|
|
<!-- English Revision : 1602764 -->
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<manualpage metafile="mpm.xml.meta">
|
|
|
|
<title>Modules multi-processus (MPMs)</title>
|
|
|
|
<summary>
|
|
<p>Ce document décrit ce qu'est un Module Multi-Processus, ainsi
|
|
que la manière dont ces modules sont utilisés par le serveur HTTP Apache.</p>
|
|
</summary>
|
|
|
|
<section id="introduction"><title>Introduction</title>
|
|
|
|
<p>La conception du serveur HTTP Apache en fait un serveur web puissant et
|
|
flexible pouvant fonctionner sur une très grande variété de
|
|
plateformes et toute une gamme d'environnements différents. Plateformes
|
|
différentes et environnements différents signifient souvent fonctionnalités
|
|
différentes, ou utilisation de différentes méthodes pour
|
|
implémenter la même fonctionnalité le plus efficacement possible.
|
|
Apache httpd s'est toujours accomodé d'une grande variété d'environnements
|
|
grâce à sa conception modulaire. Cette conception autorise le webmaster
|
|
à choisir quelles fonctionnalités seront incluses
|
|
dans le serveur en sélectionnant les modules à charger soit à la
|
|
compilation, soit à l'exécution.</p>
|
|
|
|
<p>Le serveur HTTP Apache 2.0 a étendu cette conception modulaire aux
|
|
fonctions les plus
|
|
élémentaires d'un serveur web. Le serveur est fourni avec une variété de
|
|
Modules Multi-Processus (MPMs) qui
|
|
sont responsables de l'association aux ports réseau de la machine,
|
|
acceptent les requêtes, et se chargent de répartir ces dernières
|
|
entre les différents processus enfants.</p>
|
|
|
|
<p>L'extension de la conception modulaire à ce niveau du serveur
|
|
comporte deux avantages importants :</p>
|
|
|
|
<ul>
|
|
<li>Apache httpd peut supporter plus proprement et efficacement une grande
|
|
variété de systèmes d'exploitation. En particulier, la version Windows
|
|
du serveur est maintenant beaucoup plus efficace, depuis que
|
|
<module>mpm_winnt</module> peut utiliser les fonctionnalités réseau
|
|
natives à la place de la couche POSIX utilisée par
|
|
Apache httpd 1.3. Cet avantage s'étend aussi aux systèmes d'exploitation
|
|
qui implémentent des MPMs spécialisés.</li>
|
|
|
|
<li>le serveur est plus à même de répondre aux besoins d'un site
|
|
particulier. Par exemple, les sites qui sont très sollicités peuvent
|
|
utiliser un MPM threadé comme
|
|
<module>worker</module> ou <module>event</module>, tandis que les sites
|
|
qui privilégient la stabilité ou la compatibilité avec des logiciels
|
|
plus anciens peuvent utiliser un module comme
|
|
<module>prefork</module>.</li>
|
|
</ul>
|
|
|
|
<p>Du point de vue de l'utilisateur, les MPMs ne sont pas différents des
|
|
autres modules Apache httpd. La principale différence réside dans le fait qu'un
|
|
et un seul MPM à la fois doit être chargé
|
|
lorsque le serveur s'exécute. La liste des
|
|
MPMs disponibles est fournie dans <a href="mod/">l'index des
|
|
modules</a>.</p>
|
|
|
|
</section>
|
|
|
|
<section id="defaults"><title>MPM par défaut</title>
|
|
|
|
<p>La table suivante fournit la liste des MPMs par défaut pour divers
|
|
systèmes d'exploitation. Il s'agit du MPM qui sera utilisé si
|
|
vous n'en spécifiez pas un autre à la compilation.</p>
|
|
|
|
<table border="1" style="zebra">
|
|
<columnspec><column width=".2"/><column width=".2"/></columnspec>
|
|
<tr><td>Netware</td><td><module>mpm_netware</module></td></tr>
|
|
<tr><td>OS/2</td><td><module>mpmt_os2</module></td></tr>
|
|
<tr><td>Unix</td><td><module>prefork</module>, <module>worker</module>,
|
|
ou <module>event</module>, selon les possibilités de la plate-forme</td></tr>
|
|
<tr><td>Windows</td><td><module>mpm_winnt</module></td></tr>
|
|
</table>
|
|
|
|
<note><p>Ici, 'Unix' sous-entend les systèmes d'exploitation de type
|
|
Unix, comme Linux, BSD, Solaris, Mac OS X, etc...</p></note>
|
|
|
|
<p>Dans le cas des systèmes d'exploitation de type Unix, le choix du MPM
|
|
à installer est orienté par deux questions :</p>
|
|
<p>1. Est-ce que le système supporte les threads ?</p>
|
|
<p>2. Est-ce que le système supporte le polling thread-safe (et en
|
|
particulier les fonctions kqueue et epoll) ?</p>
|
|
|
|
<p>Si la réponse aux deux questions est 'oui', le MPM par défaut sera
|
|
<module>event</module>.</p>
|
|
|
|
<p>Si la réponse à la première question est 'oui', et la réponse à la
|
|
deuxième 'non', le MPM par défaut sera <module>worker</module>.</p>
|
|
|
|
<p>Si la réponse aux deux questions est 'non', le MPM par défaut sera
|
|
<module>prefork</module>.</p>
|
|
|
|
<p>En pratique, cela signifie que le MPM par défaut sera presque
|
|
toujours <module>event</module> car tous les systèmes d'exploitation
|
|
modernes satisfont aux deux conditions.</p>
|
|
|
|
</section>
|
|
|
|
<section id="static"><title>Compiler un module MPM en tant que module
|
|
statique</title>
|
|
|
|
<p>Les modules MPM peuvent être compilés en tant que modules
|
|
statiques sur toutes les plates-formes. A la compilation d'Apache, un
|
|
seul module MPM doit être choisi pour être compilé et lié avec le
|
|
serveur. La recompilation du serveur sera donc nécessaire si vous
|
|
souhaitez changer de module MPM.</p>
|
|
|
|
<p>Pour choisir un module MPM autre que le MPM par défaut,
|
|
utiliser l'argument
|
|
<code>--with-mpm=<em>NOM</em></code> du script
|
|
<program>configure</program>. <em>NOM</em> est le nom
|
|
du MPM désiré.</p>
|
|
|
|
<p>Une fois le serveur compilé, il est possible de savoir quel MPM
|
|
a été choisi à l'aide de la commande <code>./httpd -l</code>.
|
|
Cette commande fournit la liste de tous les modules compilés
|
|
avec le serveur, y compris le MPM.</p>
|
|
|
|
</section>
|
|
|
|
<section id="dynamic"><title>Compiler un module MPM en tant que module
|
|
DSO (Dynamic Shared Object)</title>
|
|
|
|
<p>Sous Unix et les plates-formes similaires, les modules MPM
|
|
peuvent être compilés en tant que modules DSO et chargés
|
|
dynamiquement dans le serveur comme tout module DSO. Compiler les
|
|
modules MPM en tant que modules DSO permet de changer de MPM en
|
|
modifiant la directive <directive
|
|
module="mod_so">LoadModule</directive> concernée, sans avoir à
|
|
recompiler le serveur.</p>
|
|
|
|
<highlight language="config">
|
|
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
|
|
</highlight>
|
|
|
|
<p>Toute tentative de charger plusieurs modules MPM via la directive
|
|
<directive module="mod_so">LoadModule</directive> empêchera le
|
|
serveur de démarrer et affichera l'erreur suivante :</p>
|
|
|
|
<example>AH00534: httpd: Configuration error: More than one MPM
|
|
loaded.</example>
|
|
|
|
<p>Cette fonctionnalité est activée via l'option
|
|
<code>--enable-mpms-shared</code> du script
|
|
<program>configure</program>. Si on ajoute l'argument
|
|
<code><em>all</em></code>, tous les modules MPM disponibles sur la
|
|
plate-forme considérée seront installés. Cet argument peut aussi
|
|
contenir une liste de modules MPM à installer.</p>
|
|
|
|
<p>Le module MPM par défaut, sélectionné automatiquement ou spécifié
|
|
via l'option <code>--with-mpm</code> du script
|
|
<program>configure</program>, sera chargé via une directive
|
|
<directive module="mod_so">LoadModule</directive> du fichier de
|
|
configuration du serveur généré. Pour choisir un autre module MPM,
|
|
vous devrez donc modifier cette directive</p>
|
|
|
|
</section>
|
|
|
|
</manualpage>
|