From: André Malo Listen multiples sur ces
architectures est donc peu sûr.
On peut utiliser la directive
- AcceptMutex pour modifier
- l'implémentation du mutex sélectionnée à l'exécution.
AcceptMutex flockCette méthode utilise l'appel système flock(2) pour
- créer un fichier verrou (dont la localisation est définie par la
- directive LockFile.
AcceptMutex fcntlCette méthode utilise l'appel système fcntl(2) pour
- créer un fichier verrou ((dont la localisation est définie par la
- directive LockFile.
AcceptMutex sysvsem(Versions 1.3 ou supérieures) Cette méthode utilise les sémaphores
- style SysV pour implémenter les mutex. Malheureusement, les
- sémaphores style SysV ont quelques effets de bord néfastes. L'un
- d'entre eux est la possibilité pour Apache de s'arrêter sans
- "faire le ménage" dans les sémaphores (voir la page de manuel de
- ipcs(8)). Un autre effet de bord est introduit par
- l'API des sémaphores qui permet à tout CGI s'exécutant sous le même
- uid que le serveur web d'effectuer une attaque par déni de service
- (c'est à dire tous les CGIs, à moins que vous n'utilisiez
- un programme comme suexec ou
- cgiwrapper).
AcceptMutex pthread(versions 1.3 ou supérieures) Cette méthode utilise les mutex - POSIX et devrait fonctionner sur toute architecture implémentant - de manière complète la spécification concernant les threads POSIX ; - il semble cependant qu'elle ne fonctionne que sur Solaris (versions - 2.5 ou supérieures), et sous certaines configurations seulement. Si - vous tentez l'expérience, votre serveur risque de se bloquer et de ne - plus répondre à vos sollicitations. Par contre, les serveurs - n'hébergeant que du contenu statique devraient fonctionner - correctement.
-AcceptMutex posixsem(Versions 2.0 ou supérieures) Cette méthode utilise les sémaphores - POSIX. L'appartenance du sémaphore n'est pas récupérée quand un - thread du processus qui détient le mutex provoque une erreur de - segmentation, ce qui a pour effet de bloquer le serveur.
-Si votre système propose une méthode de sérialisation différente de - celles de la liste ci-dessus, il pourrait être intéressant d'ajouter à - APR le code correspondant.
- +La directive Mutex permet
+ de modifier l'implémentation du mutex mpm-accept à
+ l'exécution. Des considérations spécifiques aux différentes
+ implémentations de mutex sont documentées avec cette directive.
Une autre solution qui a été imaginée mais jamais implémentée, consiste à sérialiser partiellement la boucle -- c'est à dire y faire entrer un certain nombre de processus. Ceci ne présenterait un intérêt que sur les @@ -861,9 +800,7 @@ manière fiable le protocole, un serveur HTTP doit fermer les deux directions d'une communication indépendamment (rappelez-vous qu'une connexion TCP est bidirectionnelle, chaque direction étant - indépendante de l'autre). Ce fait, souvent ignoré par les autres - serveurs, est implémenté correctement dans Apache depuis la - version 1.2.
+ indépendante de l'autre).Quand cette fonctionnalité fut ajoutée à Apache, elle causa une avalanche de problèmes sur plusieurs versions d'Unix à cause d'une diff --git a/docs/manual/mod/core.html.en b/docs/manual/mod/core.html.en index 5a432f7ee2f..2905d277d69 100644 --- a/docs/manual/mod/core.html.en +++ b/docs/manual/mod/core.html.en @@ -2423,7 +2423,7 @@ or specified mutexes
Most mechanisms are only available on selected platforms, where the underlying platform and APR support it. Mechanisms - which aren't avaiable on all platforms are posixsem, + which aren't available on all platforms are posixsem, sysvsem, sem, pthread, fcntl, flock, and file.
diff --git a/docs/manual/mod/core.xml.de b/docs/manual/mod/core.xml.de index 1a6efbcd0ac..1fccdc5e805 100644 --- a/docs/manual/mod/core.xml.de +++ b/docs/manual/mod/core.xml.de @@ -1,7 +1,7 @@ - + + + + +