Serveur Apache HTTP Version 2.3
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.
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 :
mpm_winnt
peut 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.worker
ou event
, tandis que les sites
qui privilégient la stabilité ou la compatibilité avec des logiciels
plus anciens peuvent utiliser un module comme
prefork
.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.
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.
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.
Netware | mpm_netware |
OS/2 | mpmt_os2 |
Unix | prefork |
Windows | mpm_winnt |