<-
Apache > Serveur HTTP > Documentation > Version 2.4

Modules multi-processus (MPMs)

Langues Disponibles:  de  |  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

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.

top

Introduction

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.

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.

L'extension de la conception modulaire ´┐Ż ce niveau du serveur comporte deux avantages importants :

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 l'index des modules.

top

MPM par d´┐Żfaut

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.

Netwarempm_netware
OS/2mpmt_os2
Unixprefork, worker, ou event, selon les possibilit´┐Żs de la plate-forme
Windowsmpm_winnt

Ici, 'Unix' sous-entend les syst´┐Żmes d'exploitation de type Unix, comme Linux, BSD, Solaris, Mac OS X, etc...

Dans le cas des syst´┐Żmes d'exploitation de type Unix, le choix du MPM ´┐Ż installer est orient´┐Ż par deux questions :

1. Est-ce que le syst´┐Żme supporte les threads ?

2. Est-ce que le syst´┐Żme supporte le polling thread-safe (et en particulier les fonctions kqueue et epoll) ?

Si la r´┐Żponse aux deux questions est 'oui', le MPM par d´┐Żfaut sera event.

Si la r´┐Żponse ´┐Ż la premi´┐Żre question est 'oui', et la r´┐Żponse ´┐Ż la deuxi´┐Żme 'non', le MPM par d´┐Żfaut sera worker.

Si la r´┐Żponse aux deux questions est 'non', le MPM par d´┐Żfaut sera prefork.

En pratique, cela signifie que le MPM par d´┐Żfaut sera presque toujours event car tous les syst´┐Żmes d'exploitation modernes satisfont aux deux conditions.

top

Compiler un module MPM en tant que module statique

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.

Pour choisir un module MPM autre que le MPM par d´┐Żfaut, utiliser l'argument --with-mpm=NOM du script configure. NOM est le nom du MPM d´┐Żsir´┐Ż.

Une fois le serveur compil´┐Ż, il est possible de savoir quel MPM a ´┐Żt´┐Ż choisi ´┐Ż l'aide de la commande ./httpd -l. Cette commande fournit la liste de tous les modules compil´┐Żs avec le serveur, y compris le MPM.

top

Compiler un module MPM en tant que module DSO (Dynamic Shared Object)

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 LoadModule concern´┐Że, sans avoir ´┐Ż recompiler le serveur.

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Toute tentative de charger plusieurs modules MPM via la directive LoadModule emp´┐Żchera le serveur de d´┐Żmarrer et affichera l'erreur suivante :

AH00534: httpd: Configuration error: More than one MPM loaded.

Cette fonctionnalit´┐Ż est activ´┐Że via l'option --enable-mpms-shared du script configure. Si on ajoute l'argument all, 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.

Le module MPM par d´┐Żfaut, s´┐Żlectionn´┐Ż automatiquement ou sp´┐Żcifi´┐Ż via l'option --with-mpm du script configure, sera charg´┐Ż via une directive LoadModule du fichier de configuration du serveur g´┐Żn´┐Żr´┐Ż. Pour choisir un autre module MPM, vous devrez donc modifier cette directive

Langues Disponibles:  de  |  en  |  es  |  fr  |  ja  |  ko  |  tr  |  zh-cn 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.