Manuel Apache
Modules multi-processus (MPMs)
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.
Introduction
Le serveur HTTP Apache a été conçu comme 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 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.
Apache 2.0 étend cette conception modulaire aux fonctions les plus élémentaires d'un serveur web. Certains Modules Multi-Processus (MPMs) 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:
- Apache peut supporter plus proprement et efficacement une grande variété de systèmes d'exploitation. En particulier, la version Windows d'Apache est maintenant beaucoup plus efficace, depuis que
mpm_winntpeut utiliser les fonctionnalités réseau natives à la place de la couche POSIX utilisée par Apache 1.3. Cet avantage s'étend aussi aux systèmes d'exploitation qui implémentent des MPMs spécialisés. - 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
workerouevent, tandis que les sites qui privilégient la stabilité ou la compatibilité avec des logiciels plus anciens peuvent utiliser un module commeprefork.
Du point de vue de l'utilisateur, les MPMs ne sont pas différents des autres modules Apache. La principale différence réside dans le fait qu'un et un seul MPM à la fois doit être chargé dans le serveur. La liste des MPMs disponibles est fournie dans module index page.
Choisir un MPM
Les MPMs doivent être choisis à la configuration, et compilés avec le serveur. Les compilateurs peuvent optimiser de nombreuses fonctions si les threads sont utilisés, mais seulement s'ils savent que les threads sont utilisés.
Pour le choix proprement dit du MPM désiré, 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.
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 sélectionné si vous ne précisez pas un choix différent à la compilation.
| BeOS | beos |
| Netware | mpm_netware |
| OS/2 | mpmt_os2 |
| Unix | prefork |
| Windows | mpm_winnt |
Remonter 
