2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1421892 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mpm_common.xml.meta">
27 <name>mpm_common</name>
28 <description>Une série de directives implémentées par plusieurs
29 modules multi-processus (MPM)</description>
33 <name>CoreDumpDirectory</name>
34 <description>Le répertoire dans lequel le serveur HTTP Apache va tenter de se
35 positionner avant d'effectuer un vidage mémoire</description>
36 <syntax>CoreDumpDirectory <var>répertoire</var></syntax>
37 <default>Voir ci-dessous pour le répertoire par défaut</default>
38 <contextlist><context>server config</context></contextlist>
39 <modulelist><module>event</module><module>prefork</module>
40 <module>worker</module></modulelist>
43 <p>Cette directive permet de définir le répertoire dans lequel
44 Apache httpd va tenter de se positionner avant d'effectuer un vidage
45 mémoire sur disque.
46 Si votre système d'exploitation est configuré pour créer des
47 fichiers de vidage mémoire dans le répertoire de travail des
48 processus qui se sont crashés,
49 <directive>CoreDumpDirectory</directive> est nécessaire pour
50 définir un répertoire de travail autre que le répertoire par défaut
51 <directive module="core">ServerRoot</directive>, ce répertoire de
52 travail ne devant pas être accessible en écriture par l'utilisateur sous
53 lequel le serveur s'exécute.</p>
55 <p>Si vous avez besoin d'un vidage mémoire pour le débogage, vous
56 pouvez utiliser cette directive pour le placer à un endroit
57 différent. Cette directive n'a aucun effet si votre système
58 d'exploitation n'est pas configuré pour créer des
59 fichiers de vidage mémoire dans le répertoire de travail des
60 processus qui se sont crashés.</p>
62 <note><title>Vidages mémoire sous Linux</title>
63 <p>Si Apache httpd est démarré sous l'utilisateur root puis bascule vers
64 un autre utilisateur, le noyau Linux <em>désactive</em> les
65 vidages mémoire, même si le répertoire est accessible en écriture au
66 processus. Apache httpd (versions 2.0.46 et supérieures) réactive les
67 vidages mémoire sous Linux 2.4 et au delà, mais seulement si vous
68 définissez une directive <directive>CoreDumpDirectory</directive>.</p>
72 <title>Vidages mémoire sous BSD</title>
73 <p>Pour activer le vidage mémoire des exécutables suid sur les
74 systèmes de style BSD (comme FreeBSD), définissez
75 <code>kern.sugid_coredump</code> à 1.
79 <note><title>Signaux spécifiques</title>
80 <p><directive>CoreDumpDirectory</directive> n'est traité qu'à la
81 reception d'un certain nombre de signaux , SIGFPE, SIGILL, SIGABORT,
82 SIGSEGV, et SIGBUS.</p>
84 Sur certains systèmes d'exploitation, SIGQUIT provoque aussi un
85 vidage mémoire, mais n'est pas traité par les directives
86 <directive>CoreDumpDirectory</directive> ou
87 <directive>EnableExceptionHook</directive>, si bien que la
88 définition du répertoire d'enregistrement du vidage mémoire est
89 entièrement dévolue au système d'exploitation.</p>
95 <name>EnableExceptionHook</name>
96 <description>Active un hook ("point d'accrochage logiciel") qui exécute des
97 gestionnaires d'exception après un crash</description>
98 <syntax>EnableExceptionHook On|Off</syntax>
99 <default>EnableExceptionHook Off</default>
100 <contextlist><context>server config</context></contextlist>
102 <module>event</module><module>prefork</module>
103 <module>worker</module></modulelist>
106 <p>Pour des raisons de sécurité, cette directive n'est disponible
107 que si la compilation du serveur a été configurée avec l'option
108 <code>--enable-exception-hook</code>. Elle permet d'activer un hook
109 ("point d'accrochage logiciel")
110 qui autorise certains modules externes à effectuer un branchement et
111 accomplir telle ou telle action après le crash d'un processus
114 <p>Deux modules, <code>mod_whatkilledus</code> et
115 <code>mod_backtrace</code> utilisent ce hook. Veuillez vous
116 référer à la <a
117 href="http://people.apache.org/~trawick/exception_hook.html"
118 >page EnableExceptionHook</a> de Jeff Trawick pour plus
119 d'informations à leur sujet.</p>
124 <name>GracefulShutdownTimeout</name>
125 <description>Spécifie le délai maximum après lequel le serveur va
126 s'arrêter dans le cas d'un arrêt "en douceur"</description>
127 <syntax>GracefulShutDownTimeout <var>secondes</var></syntax>
128 <default>GracefulShutDownTimeout 0</default>
129 <contextlist><context>server config</context></contextlist>
130 <modulelist><module>prefork</module><module>worker</module>
131 <module>event</module></modulelist>
132 <compatibility>Disponible dans les versions 2.2 et supérieures</compatibility>
135 <p>La directive <directive>GracefulShutdownTimeout</directive>
136 permet de spécifier le temps, en secondes, pendant lequel le serveur
137 va continuer à fonctionner après avoir reçu un signal
138 "graceful-stop" ("Arrêt en douceur"), afin de terminer le traitement
139 des connexions en cours.</p>
141 <p>Définir cette valeur à zéro signifie au serveur d'attendre
142 jusqu'à ce que toutes les requêtes en cours aient été traitées.</p>
148 <description>Ficher dans lequel le serveur enregistre l'identificateur
149 de processus du démon</description>
150 <syntax>PidFile <var>nom fichier</var></syntax>
151 <default>PidFile logs/httpd.pid</default>
152 <contextlist><context>server config</context></contextlist>
153 <modulelist><module>event</module><module>mpm_winnt</module>
154 <module>mpmt_os2</module><module>prefork</module><module>worker</module>
158 <p>La directive <directive>PidFile</directive> permet de définir le
159 ficher dans lequel le serveur
160 enregistre l'identificateur de processus du démon. Si le chemin du
161 fichier n'est pas absolu, il est considéré comme relatif au chemin
162 défini par la directive <directive
163 module="core">ServerRoot</directive>.</p>
165 <example><title>Exemple</title>
166 <highlight language="config">
167 PidFile /var/run/apache.pid
171 <p>Il est souvent utile de pouvoir envoyer un signal au
172 serveur afin qu'il ferme et ouvre à nouveau ses journaux
173 d'<directive module="core">erreur</directive> et de <directive
174 module="mod_log_config">transfert</directive>, et recharge son
175 fichier de configuration. Pour ce faire, on envoie un signal SIGHUP
176 (kill -1) à l'identificateur de processus enregistré dans le fichier
177 défini par la directive <directive>PidFile</directive>.</p>
179 <p>La directive <directive>PidFile</directive> fait l'objet des
180 mêmes avertissements que ceux concernant le chemin d'enregistrement
181 des fichiers journaux et la <a
182 href="../misc/security_tips.html#serverroot">sécurité</a>.</p>
184 <note><title>Note</title>
185 <p>Depuis la version 2 du serveur HTTP Apache, nous recommandons de n'utiliser
186 que le script <program>apachectl</program>, ou le script de
187 démarrage fourni avec votre système d'exploitation pour (re)démarrer ou
188 arrêter le serveur.</p>
195 <description>Les adresses IP et ports sur lesquels le serveur écoute</description>
196 <syntax>Listen [<var>adresse IP</var>:]<var>numéro port</var>
197 [<var>protocole</var>]</syntax>
198 <contextlist><context>server config</context></contextlist>
199 <modulelist><module>mpm_netware</module><module>mpm_winnt</module>
200 <module>mpmt_os2</module>
201 <module>prefork</module><module>worker</module>
202 <module>event</module>
204 <compatibility>L'argument <var>protocole</var> est supporté depuis la version
205 2.1.5</compatibility>
208 <p>La directive <directive>Listen</directive> permet de signifier à
209 Apache httpd de ne se mettre à l'écoute que sur les adresses IP et ports spécifiés ; par
210 défaut, le serveur répond aux requêtes en provenance de toutes les
211 interfaces réseau. La directive <directive>Listen</directive> est
212 dorénavant requise, et si elle est absente du fichier de
213 configuration, le serveur refusera de démarrer. Ceci constitue un
214 changement par rapport aux versions précédentes d'Apache httpd.</p>
216 <p>La directive <directive>Listen</directive> signifie au serveur de
217 n'accepter les requêtes entrantes que vers le port ou le couple
218 adresse-port spécifié. Si seulement un port est spécifié, le serveur
219 se met à l'écoute sur ce port sur toutes les interfaces réseau. Si une adresse IP
220 et un port sont spécifiés, le serveur va se mettre à l'écoute sur ce port sur
221 l'interface réseau correspondant à l'adresse IP.</p>
223 <p>On peut utiliser autant de directives
224 <directive>Listen</directive> que nécessaire pour spécifier
225 plusieurs adresses et/ou ports à écouter. Le serveur répondra aux
226 requêtes vers tous les adresses et ports spécifiés.</p>
228 <p>Par exemple, pour que le serveur accepte les connexions sur les
229 ports 80 et 8000, utilisez :</p>
231 <highlight language="config">
236 <p>Pour que la serveur accepte les connexions sur deux interfaces et
237 ports particuliers, spécifiez :</p>
239 <highlight language="config">
240 Listen 192.170.2.1:80
241 Listen 192.170.2.5:8000
244 <p>Les adressee IPv6 doivent être entourées de crochets, comme dans
245 l'exemple suivant :</p>
247 <highlight language="config">
248 Listen [2001:db8::a00:20ff:fea7:ccea]:80
251 <p>L'argument optionnel <var>protocole</var> n'est pas nécessaire
252 dans la plupart des configurations. S'il est absent,
253 <code>https</code> est la valeur par défaut pour le port 443 et
254 <code>http</code> l'est pour tous les autres ports. L'argument
255 protocole sert à déterminer quel module doit traiter une requête, et
256 à appliquer des optimisations spécifiques à certains protocoles à
257 l'aide de la directive <directive
258 module="core">AcceptFilter</directive>.</p>
260 <p>La spécification d'un protocole n'est nécessaire que si vous
261 utilisez des ports non standards. Par exemple, pour configurer un
262 site en <code>https</code> sur le port 8443 :</p>
264 <highlight language="config">
265 Listen 192.170.2.1:8443 https
268 <note><title>Condition d'erreur</title>
269 Plusieurs directives <directive>Listen</directive> pour les mêmes
270 adresse IP/port vont provoquer l'envoi d'un message d'erreur
271 <code>Address already in use</code>.
275 <seealso><a href="../dns-caveats.html">Problèmes avec DNS</a></seealso>
276 <seealso><a href="../bind.html">Définition des adresses et ports
277 qu'utilise le serveur HTTP Apache</a></seealso>
279 href="http://wiki.apache.org/httpd/CouldNotBindToAddress">Autre
280 discussion à propos du message d'erreur <code>Address already in
281 use</code>, citant d'autres causes possibles.</a></seealso>
285 <name>ListenBackLog</name>
286 <description>Longueur maximale de la liste d'attente des
287 connexions</description>
288 <syntax>ListenBacklog <var>backlog</var></syntax>
289 <default>ListenBacklog 511</default>
290 <contextlist><context>server config</context></contextlist>
292 <module>event</module>
293 <module>mpm_netware</module><module>mpm_winnt</module>
294 <module>mpmt_os2</module><module>prefork</module>
295 <module>worker</module></modulelist>
298 <p>La longueur maximale de la liste d'attente des connexions. En
299 général, aucune modification n'est nécessaire, ni même souhaitable ;
300 cependant, sur certains systèmes, il peut être nécessaire
301 d'en augmenter la valeur en cas d'attaque TCP SYN flood (envoi en
302 masse de requêtes SYN pour saturer le serveur). Voir le paramètre
303 backlog de l'appel système <code>listen(2)</code>.</p>
305 <p>En fait, l'argument backlog sera souvent limité à une valeur
306 inférieure en fonction du système d'exploitation. Notez aussi que de
307 nombreux systèmes d'exploitation ne tiennent pas vraiment compte de
308 la valeur spécifiée pour l'argument backlog, mais s'en inspirent
309 seulement (et choisissent en général une valeur supérieure).</p>
314 <name>MaxRequestWorkers</name>
315 <description>Nombre maximum de connexions pouvant être traitées
316 simultanément</description>
317 <syntax>MaxRequestWorkers <var>nombre</var></syntax>
318 <default>Voir ci-dessous pour plus de détails</default>
319 <contextlist><context>server config</context></contextlist>
320 <modulelist><module>event</module><module>prefork</module>
321 <module>worker</module>
325 <p>La directive <directive>MaxRequestWorkers</directive> permet de fixer le
326 nombre maximum de requêtes pouvant être traitées simultanément.
327 Si la limite <directive>MaxRequestWorkers</directive> est atteinte, toute
328 tentative de connexion sera normalement mise dans une file
329 d'attente, et ceci jusqu'à un certain nombre dépendant de la
330 directive <directive module="mpm_common">ListenBacklog</directive>.
331 Lorsqu'un processus enfant se libèrera suite à la fin du traitement
332 d'une requête, la connexion en attente pourra être traitée à son
335 <p>Pour les serveurs non threadés (<em>c'est à dire</em> utilisant
336 <module>prefork</module>), la directive
337 <directive>MaxRequestWorkers</directive> définit alors le nombre maximum de
338 processus enfants qui pourront être lancés simultanément pour
339 traiter les requêtes. La valeur par défaut est <code>256</code> ; si
340 vous l'augmentez, vous devez aussi augmenter la valeur de la
342 module="mpm_common">ServerLimit</directive>.</p>
344 <p>Pour les serveur threadés et hybrides (utilisant <em>par
345 exemple</em> <module>event</module> ou <module>worker</module>),
346 <directive>MaxRequestWorkers</directive> définit alors le nombre total de
347 threads qui seront disponibles pour servir les clients. Dans le
348 cas des MPMs hybrides, la valeur par défaut est <code>16</code>
349 (directive <directive
350 module="mpm_common">ServerLimit</directive>) multiplié par la valeur
351 <code>25</code> (directive <directive module="mpm_common"
352 >ThreadsPerChild</directive>). Par conséquent, pour affecter à la
353 directive <directive>MaxRequestWorkers</directive> une valeur qui requiert
354 plus de 16 processus, vous devez aussi augmenter la valeur de la
355 directive <directive module="mpm_common"
356 >ServerLimit</directive>.</p>
358 <p>Le nom de la directive <directive>MaxRequestWorkers</directive>
359 était <directive>MaxClients</directive> avant la version 2.3.13. Cet
360 ancien nom est encore supporté.</p>
365 <name>MaxMemFree</name>
366 <description>Quantité maximale de mémoire que l'allocateur principal est
367 autorisé à conserver sans appeler <code>free()</code></description>
368 <syntax>MaxMemFree <var>KOctets</var></syntax>
369 <default>MaxMemFree 2048</default>
370 <contextlist><context>server config</context></contextlist>
371 <modulelist><module>event</module><module>mpm_netware</module>
372 <module>prefork</module><module>worker</module><module>mpm_winnt</module>
376 <p>La directive <directive>MaxMemFree</directive> permet de définir
377 le nombre maximum de KOctets libres que tout allocateur est
378 autorisé à conserver sans appeler <code>free()</code>. Dans les MPMs
379 threadés, chaque thread possède son propre allocateur. Si elle est
380 définie à 0, la quantité de mémoire libre que peut conserver un
381 allocateur est illimitée.</p>
386 <name>MaxConnectionsPerChild</name>
387 <description>Limite le nombre de connexions qu'un processus enfant va
388 traiter au cours de son fonctionnement</description>
389 <syntax>MaxConnectionsPerChild <var>number</var></syntax>
390 <default>MaxConnectionsPerChild 0</default>
391 <contextlist><context>server config</context></contextlist>
392 <modulelist><module>event</module><module>mpm_netware</module>
393 <module>mpm_winnt</module><module>mpmt_os2</module>
394 <module>prefork</module><module>worker</module></modulelist>
395 <compatibility>Disponible depuis la version 2.3.9 du serveur HTTP
396 Apache. L'ancien nom <code>MaxRequestsPerChild</code> est encore
397 supporté.</compatibility>
400 <p>La directive <directive>MaxConnectionsPerChild</directive> permet de
401 définir le nombre maximum de connexions qu'un processus enfant va
402 pouvoir traiter au cours de son fonctionnement. Lorsqu'il a traité
403 <directive>MaxConnectionsPerChild</directive> connexions, le processus
404 enfant est arrêté. Si <directive>MaxConnectionsPerChild</directive> est
405 définie à <code>0</code>, il n'y a plus aucune limite sur le nombre
406 de connexions que le processus pourra traiter.</p>
408 <p>Définir <directive>MaxConnectionsPerChild</directive> à une valeur
409 non nulle limite la quantité de mémoire qu'un processus peut
410 consommer à cause de fuites (accidentelles) de mémoire.</p>
416 <name>MaxSpareThreads</name>
417 <description>Nombre maximum de threads inactifs</description>
418 <syntax>MaxSpareThreads <var>nombre</var></syntax>
419 <default>Voir ci-dessous pour plus de détails</default>
420 <contextlist><context>server config</context></contextlist>
421 <modulelist><module>event</module><module>mpm_netware</module>
422 <module>mpmt_os2</module><module>worker</module></modulelist>
425 <p>C'est le nombre maximum de threads inactifs. Les MPMs utilisent
426 cette directive de différentes manières.</p>
428 <p>Pour <module>worker</module>, la définition par défaut est
429 <code>MaxSpareThreads 250</code>. Ce MPM gère les threads inactifs
430 au niveau du serveur. Si le serveur possède trop de threads
431 inactifs, des processus enfants seront arrêtés jusqu'à ce que le
432 nombre de threads inactifs repasse en dessous de cette limite.</p>
434 <p>Pour <module>mpm_netware</module>, la définition par défaut est
435 <code>MaxSpareThreads 100</code>. Comme ce MPM n'exécute qu'un seul
436 processus, le nombre de processus inactifs est surveillé au
437 niveau du serveur.</p>
439 <p><module>mpmt_os2</module> fonctionne de manière similaire à
440 <module>mpm_netware</module>. Pour <module>mpmt_os2</module>, la
441 valeur par défaut est <code>10</code>.</p>
443 <note><title>Contraintes</title>
444 <p>La gamme de valeurs pour <directive>MaxSpareThreads</directive>
445 est limitée. Apache httpd corrigera automatiquement cette valeur selon
446 les règles suivantes :</p>
448 <li>Avec <module>mpm_netware</module>, <directive
449 >MaxSpareThreads</directive> doit être supérieure à <directive
450 module="mpm_common">MinSpareThreads</directive>.</li>
453 <module>worker</module>, <directive>MaxSpareThreads</directive>
454 doit être supérieure ou égale à la somme de <directive
455 module="mpm_common">MinSpareThreads</directive> et <directive
456 module="mpm_common">ThreadsPerChild</directive>.</li>
460 <seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
461 <seealso><directive module="mpm_common">StartServers</directive></seealso>
462 <seealso><directive module="prefork">MaxSpareServers</directive></seealso>
466 <name>MinSpareThreads</name>
467 <description>Nombre minimum de threads inactifs qui seront disponibles
468 pour pouvoir traiter les pics de requêtes</description>
469 <syntax>MinSpareThreads <var>nombre</var></syntax>
470 <default>Voir ci-dessous pour plus de détails</default>
471 <contextlist><context>server config</context></contextlist>
472 <modulelist><module>event</module><module>mpm_netware</module>
473 <module>mpmt_os2</module><module>worker</module></modulelist>
476 <p>C'est le nombre minimum de threads inactifs pour être en mesure
477 de traiter les pics de requêtes. Les MPMs utilisent cette directive
478 de différentes manières.</p>
480 <p>Avec <module>worker</module>, la définition par défaut est
481 <code>MinSpareThreads 75</code>, et le nombre de threads inactifs
482 est surveillé au niveau du serveur. Si le serveur ne possède pas
483 assez de threads inactifs, des processus enfants sont créés jusqu'à
484 ce que le nombre de threads inactifs repasse au dessus de
485 <var>nombre</var>.</p>
487 <p>Avec <module>mpm_netware</module>, la définition par défaut est
488 <code>MinSpareThreads 10</code> et, comme ce MPM n'exécute qu'un
489 seul processus, le nombre de threads est surveillé au niveau du
492 <p><module>mpmt_os2</module> fonctionne de manière similaire à
493 <module>mpm_netware</module>. Pour <module>mpmt_os2</module>, la
494 valeur par défaut est <code>5</code>.</p>
497 <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
498 <seealso><directive module="mpm_common">StartServers</directive></seealso>
499 <seealso><directive module="prefork">MinSpareServers</directive></seealso>
503 <name>ScoreBoardFile</name>
504 <description>Chemin du fichier où sont stockées les données concernant
505 la coordination des processus enfants</description>
506 <syntax>ScoreBoardFile <var>chemin fichier</var></syntax>
507 <default>ScoreBoardFile logs/apache_runtime_status</default>
508 <contextlist><context>server config</context></contextlist>
509 <modulelist><module>event</module><module>mpm_winnt</module>
510 <module>prefork</module><module>worker</module></modulelist>
513 <p>Le serveur HTTP Apache utilise un tableau de bord pour la
514 communication entre le processus parent et les processus enfants.
515 Pour faciliter cette communication, certaines architectures
516 nécessitent un fichier. En l'absence de cette directive, donc si
517 aucun nom de fichier n'est spécifié, Apache httpd tentera tout
518 d'abord de créer un tableau uniquement en mémoire (en utilisant la
519 mémoire partagée anonyme) ; et si il n'y parvient pas, il tentera de
520 créer un fichier sur disque (en utilisant la mémoire partagée à base
521 de fichier). Si cette directive est utilisée, Apache httpd créera
522 systématiquement un fichier sur disque.</p>
524 <example><title>Exemple</title>
525 <highlight language="config">
526 ScoreBoardFile /var/run/apache_runtime_status
530 <p>Une mémoire partagée sous forme de fichier est utile pour les
531 applications tierces qui nécessitent un accès direct au tableau de
532 bord des processus.</p>
534 <p>Si vous utilisez un <directive>ScoreBoardFile</directive>, vous
535 pourrez constater une amélioration des performances en le plaçant
536 sur un disque virtuel en RAM. Assurez-vous cependant de tenir compte
537 des mêmes avertissements que ceux concernant le chemin du fichier
539 href="../misc/security_tips.html">sécurité</a>.</p>
541 <seealso><a href="../stopping.html">Arrêter et redémarrer
542 le serveur HTTP Apache</a></seealso>
546 <name>ReceiveBufferSize</name>
547 <description>Taille du tampon TCP en entrée</description>
548 <syntax>ReceiveBufferSize <var>octets</var></syntax>
549 <default>ReceiveBufferSize 0</default>
550 <contextlist><context>server config</context></contextlist>
551 <modulelist><module>event</module><module>mpm_netware</module>
552 <module>mpm_winnt</module><module>mpmt_os2</module><module>prefork</module>
553 <module>worker</module></modulelist>
556 <p>Le serveur va fixer la taille du tampon TCP en entrée au
557 nombre d'octets spécifié.</p>
559 <p>Si la directive est définie à <code>0</code>, le serveur va
560 utiliser la valeur par défaut adoptée par le système
566 <name>SendBufferSize</name>
567 <description>Taille du tampon TCP en sortie</description>
568 <syntax>SendBufferSize <var>octets</var></syntax>
569 <default>SendBufferSize 0</default>
570 <contextlist><context>server config</context></contextlist>
571 <modulelist><module>event</module><module>mpm_netware</module>
572 <module>mpm_winnt</module><module>mpmt_os2</module><module>prefork</module>
573 <module>worker</module></modulelist>
576 <p>Définit la taille du tampon TCP en sortie avec le nombre
577 d'octets spécifié. Ceci s'avère souvent très utile pour augmenter les
578 valeurs par défaut standards du passé des systèmes d'exploitation
579 pour les transmissions à grande vitesse et haute densité (<em>c'est
580 à dire</em> de l'ordre de 100ms comme sur les liaisons rapides
581 transcontinentales).</p>
583 <p>Si la directive est définie à <code>0</code>, le serveur va
584 utiliser la valeur par défaut adoptée par le système
587 <p>L'amélioration des performances des connexions à grande vitesse
588 et à temps de latence élevé, peut nécessiter
589 une intervention au niveau de la configuration de votre système
592 <note><p>Sous certains systèmes d'exploitation, la modification du
593 comportement TCP via une augmentation de la valeur de
594 <directive>SendBufferSize</directive> risque de ne pas être
595 perceptible, si la directive <directive
596 module="core">EnableSendfile</directive> n'est pas définie à OFF.
597 Cette interaction ne s'applique qu'aux fichiers statiques.</p> </note>
602 <name>ServerLimit</name>
603 <description>Limite supérieure de la définition du nombre de
604 processus</description>
605 <syntax>ServerLimit <var>nombre</var></syntax>
606 <default>Voir ci-dessous pour plus de détails</default>
607 <contextlist><context>server config</context></contextlist>
608 <modulelist><module>event</module><module>prefork</module>
609 <module>worker</module></modulelist>
612 <p>Avec le MPM <module>prefork</module>, cette directive définit le
613 nombre maximum que l'on peut affecter à la directive <directive
614 module="mpm_common">MaxRequestWorkers</directive>, et ceci pour la
615 durée de vie du processus Apache httpd. Avec le
616 MPM <module>worker</module>, cette directive, en combinaison avec
617 <directive module="mpm_common">ThreadLimit</directive>, définit le
618 nombre maximum que l'on peut affecter à <directive
619 module="mpm_common">MaxRequestWorkers</directive>, et ceci pour la durée de
620 vie du processus Apache httpd. Au cours d'un redémarrage, vous pouvez
621 modifier la valeur de la directive <directive
622 module="mpm_common">MaxRequestWorkers</directive>, alors que toute
623 tentative de modification de la valeur de la directive <directive
624 module="mpm_common">ServerLimit</directive> sera ignorée.</p>
626 <p>Cette directive doit être utilisée avec précaution. Si
627 <directive>ServerLimit</directive> est définie à une valeur beaucoup
628 plus grande que nécessaire, de la mémoire partagée supplémentaire
629 sera inutilement allouée. Si à la fois
630 <directive>ServerLimit</directive> et <directive
631 module="mpm_common">MaxRequestWorkers</directive> possèdent des valeurs
632 supérieures à ce que le système peut supporter, ce dernier peut
633 devenir instable ou Apache httpd peut tout simplement refuser de démarrer.</p>
635 <p>Avec le MPM <module>prefork</module>, n'utilisez cette directive
636 que si vous devez définir <directive
637 module="mpm_common">MaxRequestWorkers</directive> à une valeur supérieure à
638 256 (valeur par défaut). N'affectez pas à la directive <directive
639 module="mpm_common">ServerLimit</directive> une valeur supérieure à
640 celle que vous avez prévu d'affecter à la directive <directive
641 module="mpm_common">MaxRequestWorkers</directive>.</p>
643 <p>Avec <module>worker</module>, n'utilisez cette directive que si
644 la définition de vos directives <directive
645 module="mpm_common">MaxRequestWorkers</directive> et <directive
646 module="mpm_common">ThreadsPerChild</directive> nécessitent plus de
647 16 processus serveurs (valeur par défaut). N'affectez pas à la
648 directive <directive module="mpm_common">ServerLimit</directive> une
649 valeur supérieure au nombre de processus requis pour la définition
650 des directives <directive module="mpm_common">MaxRequestWorkers
651 </directive> et <directive
652 module="mpm_common">ThreadsPerChild</directive>.</p>
654 <note><title>Note</title>
655 <p>Il existe une limite de <code>ServerLimit 20000</code> codée en
656 dur dans le serveur (200000 pour le MPM <module>prefork</module>).
657 Ceci est censé éviter les effets désastreux que pourrait provoquer
658 une faute de frappe. Pour dépasser cette limite, vous devez
659 modifier la valeur de MAX_SERVER_LIMIT dans le fichier source du
660 mpm et recompiler le serveur.</p>
663 <seealso><a href="../stopping.html">Arrêter et redémarrer
664 le serveur HTTP Apache</a></seealso>
668 <name>StartServers</name>
669 <description>Nombre de processus enfants du serveur créés au
670 démarrage</description>
671 <syntax>StartServers <var>nombre</var></syntax>
672 <default>Voir ci-dessous pour plus de détails</default>
673 <contextlist><context>server config</context></contextlist>
674 <modulelist><module>event</module><module>mpmt_os2</module>
675 <module>prefork</module><module>worker</module>
679 <p>La directive <directive>StartServers</directive> permet de
680 définir le nombre de processus enfants du serveur créés au
681 démarrage. Comme le nombre de processus est contrôlé dynamiquement
682 en fonction de la charge (voir <directive
683 module="mpm_common">MinSpareThreads</directive>, <directive
684 module="mpm_common">MaxSpareThreads</directive>, <directive
685 module="prefork">MinSpareServers</directive>, <directive
686 module="prefork">MaxSpareServers</directive>), il n'est en général
687 pas nécessaire d'ajuster ce paramètre.</p>
689 <p>La valeur par défaut diffère d'un MPM à l'autre. Pour
690 <module>worker</module>, la définition par défaut est
691 <code>StartServers 3</code> ; la valeur par défaut est
692 <code>5</code> pour <module>prefork</module> et <code>2</code>
693 pour <module>mpmt_os2</module>.</p>
698 <name>StartThreads</name>
699 <description>Nombre de threads créés au démarrage</description>
700 <syntax>StartThreads <var>nombre</var></syntax>
701 <default>Voir ci-dessous pour plus de détails</default>
702 <contextlist><context>server config</context></contextlist>
703 <modulelist><module>mpm_netware</module></modulelist>
706 <p>C'est le nombre de threads créés au démarrage du serveur. Comme
707 le nombre de threads est contrôlé dynamiquement
708 en fonction de la charge (voir <directive
709 module="mpm_common">MinSpareThreads</directive>, <directive
710 module="mpm_common">MaxSpareThreads</directive>, <directive
711 module="prefork">MinSpareServers</directive>, <directive
712 module="prefork">MaxSpareServers</directive>), il n'est en général
713 pas nécessaire d'ajuster ce paramètre.</p>
715 <p>Pour <module>mpm_netware</module>, la définition par défaut est
716 <code>StartThreads 50</code> et, comme il n'y a qu'un processus, il
717 s'agit du nombre total de threads créés au démarrage pour servir les
723 <name>ThreadLimit</name>
724 <description>Le nombre de threads maximum que l'on peut définir par
725 processus enfant</description>
726 <syntax>ThreadLimit <var>nombre</var></syntax>
727 <default>Voir ci-dessous pour plus de détails</default>
728 <contextlist><context>server config</context></contextlist>
729 <modulelist><module>event</module><module>mpm_winnt</module>
730 <module>worker</module></modulelist>
733 <p>Cette directive permet de définir le nombre maximum que l'on peut
734 affecter à la directive <directive
735 module="mpm_common">ThreadsPerChild</directive> pour la durée de vie
736 du processus Apache httpd. La directive <directive
737 module="mpm_common">ThreadsPerChild</directive> peut être modifiée
738 au cours d'un redémarrage jusqu'à la valeur de la directive <directive
739 module="mpm_common">ThreadLimit</directive>, mais toute tentative
740 de modification de la directive <directive
741 module="mpm_common">ThreadLimit</directive> au cours d'un
742 redémarrage sera ignorée.</p>
744 <p>L'utilisation de cette directive doit faire l'objet de
745 précautions particulières. Si <directive>ThreadLimit</directive> est
746 définie à une valeur très supérieure à la directive <directive
747 module="mpm_common">ThreadsPerChild</directive>, de la mémoire
748 partagée supplémentaire sera inutilement allouée. Si les directives
749 <directive>ThreadLimit</directive> et <directive
750 module="mpm_common">ThreadsPerChild</directive> sont définies à des
751 valeurs supérieures à ce que le système peut supporter, ce dernier
752 peut devenir instable, ou Apache httpd peut tout simplement refuser de
753 démarrer. Ne définissez pas cette directive à une valeur supérieure
754 à la valeur maximale que vous pensez affecter à la directive <directive
755 module="mpm_common">ThreadsPerChild</directive> pour le processus
756 Apache httpd en cours d'exécution.</p>
758 <p>La valeur par défaut de la directive
759 <directive>ThreadLimit</directive> est <code>1920</code> avec
760 <module>mpm_winnt</module>, et <code>64</code> avec les autres
763 <note><title>Note</title>
764 <p>Il existe une limite de <code>ThreadLimit 20000</code> (ou
765 <code>ThreadLimit 15000</code> avec <module>mpm_winnt</module>)
766 codée en dur dans le serveur. Ceci est censé éviter les effets
767 désastreux que pourrait provoquer une faute de frappe. Pour
768 dépasser cette limite, vous devez modifier la valeur de
769 MAX_THREAD_LIMIT dans le fichier source du mpm et recompiler le
776 <name>ThreadsPerChild</name>
777 <description>Nombre de threads créés par chaque processus
779 <syntax>ThreadsPerChild <var>nombre</var></syntax>
780 <default>Voir ci-dessous pour plus de détails</default>
781 <contextlist><context>server config</context></contextlist>
782 <modulelist><module>event</module><module>mpm_winnt</module>
783 <module>worker</module></modulelist>
786 <p>Cette directive permet de définir le nombre de threads que va
787 créer chaque processus enfant. Un processus enfant crée ces threads
788 au démarrage et n'en crée plus d'autres par la suite. Si l'on
789 utilise un MPM comme <module>mpm_winnt</module> qui ne lance qu'un
790 processus enfant, ce nombre doit être suffisamment grand pour
791 supporter la charge du serveur. Avec un MPM comme
792 <module>worker</module> qui lance plusieurs processus enfants, c'est
793 le nombre <em>total</em> de threads qui doit être suffisamment grand
794 pour supporter la charge du serveur.</p>
796 <p>La valeur par défaut de la directive
797 <directive>ThreadsPerChild</directive> est <code>64</code> avec
798 <module>mpm_winnt</module>, et <code>25</code> avec les autres
804 <name>ThreadStackSize</name>
805 <description>La taille en octets de la pile qu'utilisent les threads qui
806 traitent les connexions clients</description>
807 <syntax>ThreadStackSize <var>taille</var></syntax>
808 <default>65536 sous NetWare; varie en fonction des autres systèmes
809 d'exploitation</default>
810 <contextlist><context>server config</context></contextlist>
811 <modulelist><module>event</module><module>mpm_netware</module>
812 <module>mpmt_os2</module><module>mpm_winnt</module><module>worker</module>
813 <module>event</module>
815 <compatibility>Disponible dans les versions 2.1 et supérieures
816 du serveur HTTP Apache</compatibility>
819 <p>La directive <directive>ThreadStackSize</directive> permet de
820 définir la taille de la pile (pour les données propres) qu'utilisent
821 les threads qui traitent les connexions clients en faisant appel à
822 des modules. Dans la plupart des cas, la valeur par défaut de la
823 taille de la pile du système d'exploitation convient, mais il existe
824 certaines situations où il peut s'avérer nécessaire de l'ajuster
828 <li>Sur les plates-formes qui possèdent une valeur par défaut de
829 taille de la pile relativement petite (par exemple HP-UX), Apache
830 httpd peut se crasher si l'on utilise certains modules tiers qui
831 possèdent un quantité de données propres stockées relativement
832 importante. Il se peut que ces mêmes modules fonctionnent
833 correctement sur d'autres plate-formes où la valeur par défaut de
834 la taille de la pile est supérieure. Ce type de crash peut être
835 evité en définissant <directive>ThreadStackSize</directive> à une
836 valeur supérieure à la valeur par défaut du système
837 d'exploitation. Ce type d'ajustement n'est nécessaire que si le
838 fournisseur du module tiers en fait mention, ou si le diagnostic
839 d'un crash d'Apache httpd indique que la taille de la pile était trop
842 <li>Sur les plates-formes où la taille par défaut de la pile des
843 threads est sensiblement supérieure à la taille nécessaire pour la
844 configuration du serveur web, il est possible de disposer d'un
845 plus grand nombre de threads par processus enfant si la directive
846 <directive>ThreadStackSize</directive> est définie à une valeur
847 inférieure à la valeur par défaut du système d'exploitation.
849 type d'ajustement ne doit être effectué que dans un environnement
850 de test permettant de qualifier le serveur web au maximum de ses
851 possibilités, car il peut arriver, dans de rares cas, que des
852 requêtes nécessitent une taille de pile supérieure pour pouvoir
853 être traitées. La taille minimale requise pour la pile dépend
854 fortement des modules utilisés, mais toute modification dans la
855 configuration du serveur web peut invalider la définition courante
856 de la directive <directive>ThreadStackSize</directive>.</li>
858 <li>Sous Linux, cette directive ne peut être utilisée que pour
859 augmenter la valeur par defaut de la taille de la pile, car
860 l'appel système sous-jacent utilise cette valeur comme taille de pile
861 <em>minimale</em>. C'est la limite logicielle (souvent élevée)
862 pour <code>ulimit -s</code> (8Mo si aucune limite) qui est
863 utilisée comme taille de pile par défaut.</li>
866 <note>Il est recommandé de ne pas réduire
867 <directive>ThreadStackSize</directive>, à moins qu'un grand nombre
868 de threads par processus enfant ne soit nécessaire. Sur certaines
869 plates-formes (y compris Linux), une valeur de 128000 est déjà trop
870 basse et provoque des crashes avec certains modules courants.</note>