mpm_winnt - Serveur Apache HTTP Version 2.4

Apache Server 2.4

<-

Apache MPM winnt

Description:Module multi-processus optimisé pour Windows NT.
Statut:MPM
Identificateur de Module:mpm_winnt_module
Fichier Source:mpm_winnt.c

Sommaire

Ce module multi-processus (MPM) est le module par défaut pour les systèmes d'exploitation de style Windows NT. Il consiste en un processus de contrôle unique qui lance un processus enfant unique, ce dernier créant à son tour des threads pour traiter les requêtes.

La directive ThreadsPerChild définit le nombre maximal de connexions clientes simultanées.

Ce MPM utilise par défaut les APIs Windows avancées pour accepter les nouvelles connexions des clients. Avec certaines configurations, des produits tiers peuvent interférer avec cette implémentation, et provoquer l'enregistrement des messages suivants dans les journaux du serveur :

Child: Encountered too many AcceptEx faults accepting client connections.
winnt_mpm: falling back to 'AcceptFilter none'.

Le MPM se rabat sur une implémentation plus sûre, mais certaines requêtes n'ont pas été traitées correctement. Pour éviter cette erreur, définissez la directive AcceptFilter à none.

AcceptFilter http none
AcceptFilter https none

Avec les versions 2.0 et 2.2 d'Apache httpd, c'est la directive Win32DisableAcceptEx qui était utilisée à cet effet.

Le MPM WinNT diffère des autres MPMs Unix comme worker et event à bien des égards :

  • Lorsqu'un processus enfant s'arrête suite à un arrêt ou redémarrage du serveur, ou lorsque que la limite MaxConnectionsPerChild est atteinte, les requêtes en cours de traitement par ce processus en cours d'arrêt n'ont que TimeOut secondes pour s'exécuter avant l'arrêt du processus. Les autres types de redémarrage ou arrêt ne sont pas implémentés.
  • Les nouveau processus enfants relisent les fichiers de configuration au lieu d'en hériter du parent. Ce comportement ne pose pas de problème si le processus enfant est créé au démarrage ou redémarrage, mais dans le cas où un processus enfant est créé parce qu'un autre processus enfant s'est arrêté ou a atteint la limite MaxConnectionsPerChild, tout changement survenu entre temps dans la configuration sera alors pris en compte dans le processus enfant, et parent et enfant utiliseront une configuration différente. Si des modifications planifiées de la configuration ont été partiellement effectuées, et si la configuration courante n'est pas interprétable, le processus enfant de remplacement ne pourra pas démarrer, et le serveur s'arrêtera. En conséquence, toute modification des fichiers de configuration doit être accompagnée d'un redémarrage du serveur.
  • Les hooks monitor et fatal_exception ne sont pas encore implémentés.
  • La directive AcceptFilter est implémentée par le MPM et fournit un type de contrôle différent sur le traitement des nouvelles connexions (Voir la documentation de la directive AcceptFilter pour plus de détails).