summaryrefslogtreecommitdiffstats
path: root/docs/manual/misc
diff options
context:
space:
mode:
authorAndré Malo <nd@apache.org>2018-09-18 11:03:58 +0200
committerAndré Malo <nd@apache.org>2018-09-18 11:03:58 +0200
commitc0e273a35b579efe788c08f3ba72679802887d39 (patch)
treed94a3bb93ed2e6ca7277c297c055f575a5173457 /docs/manual/misc
parentRebuild fr doc. (diff)
downloadapache2-c0e273a35b579efe788c08f3ba72679802887d39.tar.xz
apache2-c0e273a35b579efe788c08f3ba72679802887d39.zip
update transformation
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1841200 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/misc')
-rw-r--r--docs/manual/misc/index.html.fr54
-rw-r--r--docs/manual/misc/password_encryptions.html.fr112
-rw-r--r--docs/manual/misc/perf-scaling.html.fr1384
-rw-r--r--docs/manual/misc/perf-tuning.html.fr852
-rw-r--r--docs/manual/misc/relevant_standards.html.fr102
-rw-r--r--docs/manual/misc/security_tips.html.fr402
6 files changed, 1453 insertions, 1453 deletions
diff --git a/docs/manual/misc/index.html.fr b/docs/manual/misc/index.html.fr
index 5ae3c346ad..43232ca917 100644
--- a/docs/manual/misc/index.html.fr
+++ b/docs/manual/misc/index.html.fr
@@ -24,39 +24,39 @@
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Documentations diverses sur Apache</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/misc/" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../es/misc/" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="../tr/misc/" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a> |
+<a href="../tr/misc/" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a> |
<a href="../zh-cn/misc/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div>
<p>Vous trouverez plus loin une liste de pages de documentation
- additionnelles concernant le projet de d&#233;veloppement du serveur web
+ additionnelles concernant le projet de développement du serveur web
Apache.</p>
<div class="warning"><h3>Avertissement</h3>
- <p>La mise &#224; jour des documents ci-dessous permettant de prendre en
- compte les modifications apport&#233;es par la version 2.1 du serveur
- HTTP Apache n'a pas &#233;t&#233; enti&#232;rement men&#233;e &#224; bien. Certaines
- informations sont probablement encore pertinentes, mais utilisez-les tout de m&#234;me avec
- pr&#233;cautions.</p>
+ <p>La mise à jour des documents ci-dessous permettant de prendre en
+ compte les modifications apportées par la version 2.1 du serveur
+ HTTP Apache n'a pas été entièrement menée à bien. Certaines
+ informations sont probablement encore pertinentes, mais utilisez-les tout de même avec
+ précautions.</p>
</div>
<dl>
- <dt><a href="perf-tuning.html">Notes &#224; propos des performances -
- R&#233;glages fins d'Apache</a></dt>
+ <dt><a href="perf-tuning.html">Notes à propos des performances -
+ Réglages fins d'Apache</a></dt>
<dd>
- <p>Notes &#224; propos de la configuration d'Apache pour de plus
- hautes performances (&#224; l'ex&#233;cution et &#224; la compilation). Notes
+ <p>Notes à propos de la configuration d'Apache pour de plus
+ hautes performances (à l'exécution et à la compilation). Notes
expliquant pourquoi Apache accomplit certaines choses et
- n'en accomplit pas certaines autres (les premi&#232;res l'acc&#233;l&#233;rant
- et les deuxi&#232;mes le ralentissant).</p>
+ n'en accomplit pas certaines autres (les premières l'accélérant
+ et les deuxièmes le ralentissant).</p>
</dd>
- <dt><a href="perf-scaling.html">Am&#233;lioration des performances</a></dt>
+ <dt><a href="perf-scaling.html">Amélioration des performances</a></dt>
<dd>
<p>Quelques options de personnalisation de la configuration
@@ -64,26 +64,26 @@
</dd>
<dt><a href="security_tips.html">Conseils concernant la
- s&#233;curit&#233;</a></dt>
+ sécurité</a></dt>
<dd>
<p>Quelques conseils de type "faites" ou "ne faites pas" pour
- que votre site web Apache reste s&#233;curis&#233;.</p>
+ que votre site web Apache reste sécurisé.</p>
</dd>
- <dt><a href="relevant_standards.html">Standards concern&#233;s</a></dt>
+ <dt><a href="relevant_standards.html">Standards concernés</a></dt>
<dd>
- <p>Ce document constitue une page de r&#233;f&#233;rence pour la plupart
- des standards concern&#233;s par Apache.</p>
+ <p>Ce document constitue une page de référence pour la plupart
+ des standards concernés par Apache.</p>
</dd>
<dt><a href="password_encryptions.html">Formats de chiffrement des
mots de passe</a></dt>
<dd>
- <p>Discussion &#224; propos des divers algorithmes de chiffrement
- support&#233;s par Apache &#224; des fins d'authentification.</p>
+ <p>Discussion à propos des divers algorithmes de chiffrement
+ supportés par Apache à des fins d'authentification.</p>
</dd>
</dl>
@@ -91,13 +91,13 @@
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/misc/" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../es/misc/" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="../tr/misc/" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a> |
+<a href="../tr/misc/" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a> |
<a href="../zh-cn/misc/" hreflang="zh-cn" rel="alternate" title="Simplified Chinese">&nbsp;zh-cn&nbsp;</a></p>
</div><div id="footer">
-<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris&#233; sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
diff --git a/docs/manual/misc/password_encryptions.html.fr b/docs/manual/misc/password_encryptions.html.fr
index 231fab5ff5..1c678e4164 100644
--- a/docs/manual/misc/password_encryptions.html.fr
+++ b/docs/manual/misc/password_encryptions.html.fr
@@ -24,55 +24,55 @@
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Formats de mots de passe</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/misc/password_encryptions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/password_encryptions.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/password_encryptions.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a></p>
+<a href="../es/misc/password_encryptions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/password_encryptions.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div>
- <p>Notes &#224; propos des formats de chiffrement des mots de passe
- g&#233;n&#233;r&#233;s et reconnus par Apache.</p>
+ <p>Notes à propos des formats de chiffrement des mots de passe
+ générés et reconnus par Apache.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#basic">Authentification de base</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#digest">Authentification &#224; base de condens&#233;s - (digest)</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#digest">Authentification à base de condensés - (digest)</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="basic" id="basic">Authentification de base</a><a title="Lien permanent" href="#basic" class="permalink">&para;</a></h2>
- <p>Voici les cinq formats de mots de passe qu'Apache reconna&#238;t
+ <p>Voici les cinq formats de mots de passe qu'Apache reconnaît
pour l'authentification de base. Notez que tous les formats ne sont
- pas support&#233;s par toutes les plates-formes :</p>
+ pas supportés par toutes les plates-formes :</p>
<dl>
<dt>bcrypt</dt>
- <dd>"$2y$" + r&#233;sultat de l'algorithme de chiffrement crypt_blowfish. Voir le fichier
+ <dd>"$2y$" + résultat de l'algorithme de chiffrement crypt_blowfish. Voir le fichier
source APR <a href="http://svn.apache.org/viewvc/apr/apr/trunk/crypto/crypt_blowfish.c?view=markup">crypt_blowfish.c</a>
- pour plus de d&#233;tails &#224; propos de cet algorithme.</dd>
+ pour plus de détails à propos de cet algorithme.</dd>
<dt>MD5</dt>
- <dd>"$apr1$" + le r&#233;sultat d'un algorithme sp&#233;cifique &#224; Apache
- utilisant un condens&#233; MD5 r&#233;it&#233;r&#233; (1000 fois) de combinaisons
- vari&#233;es du mot de passe et d'une source d'entropie sur 32 bits.
+ <dd>"$apr1$" + le résultat d'un algorithme spécifique à Apache
+ utilisant un condensé MD5 réitéré (1000 fois) de combinaisons
+ variées du mot de passe et d'une source d'entropie sur 32 bits.
Voir le fichier source APR <a href="http://svn.apache.org/viewvc/apr/apr/trunk/crypto/apr_md5.c?view=markup">apr_md5.c</a>
- pour les d&#233;tails de l'algorithme.</dd>
+ pour les détails de l'algorithme.</dd>
<dt>SHA1</dt>
- <dd>"{SHA}" + un condens&#233; SHA-1 du mot de passe cod&#233; en
- Base64. Non s&#233;curis&#233;.</dd>
+ <dd>"{SHA}" + un condensé SHA-1 du mot de passe codé en
+ Base64. Non sécurisé.</dd>
<dt>CRYPT</dt>
<dd>Unix seulement. Utilise la fonction Unix traditionnelle
<code>crypt(3)</code> avec une source d'entropie sur 32 bits
- (seuls 12 bits sont utilis&#233;s), et seulement les 8 premiers
- caract&#232;res du mot de passe. Non s&#233;curis&#233;.</dd>
+ (seuls 12 bits sont utilisés), et seulement les 8 premiers
+ caractères du mot de passe. Non sécurisé.</dd>
- <dt>PLAIN TEXT (autrement dit <em>non chiffr&#233;</em>)</dt>
- <dd>Windows &amp; Netware seulement. Non s&#233;curis&#233;.</dd>
+ <dt>PLAIN TEXT (autrement dit <em>non chiffré</em>)</dt>
+ <dd>Windows &amp; Netware seulement. Non sécurisé.</dd>
</dl>
- <h3>G&#233;n&#233;rer des mots de passe avec htpasswd</h3>
+ <h3>Générer des mots de passe avec htpasswd</h3>
<div class="example"><h3>bcrypt</h3><p><code>
$ htpasswd -nbB monNom Mon-Mot-de-passe<br />
@@ -96,11 +96,11 @@
- <h3>G&#233;n&#233;rer des mots de passe CRYPT et MD5 avec le programme
+ <h3>Générer des mots de passe CRYPT et MD5 avec le programme
OpenSSL en ligne de commande</h3>
- <p>OpenSSL conna&#238;t l'algorithme MD5 sp&#233;cifique &#224; Apache.</p>
+ <p>OpenSSL connaît l'algorithme MD5 spécifique à Apache.</p>
<div class="example"><h3>MD5</h3><p><code>
$ openssl passwd -apr1 Mon-Mot-de-passe<br />
@@ -116,9 +116,9 @@
<h3>Valider des mots de passe CRYPT et MD5 avec le programme
OpenSSL en ligne de commande</h3>
- <p>La source d'entropie pour un mot de passe CRYPT est constitu&#233;e
- des deux premiers caract&#232;res (convertis en valeur binaire). Pour
- valider <code>Mon-Mot-de-passe</code> par rapport &#224;
+ <p>La source d'entropie pour un mot de passe CRYPT est constituée
+ des deux premiers caractères (convertis en valeur binaire). Pour
+ valider <code>Mon-Mot-de-passe</code> par rapport à
<code>rqXexS6ZhobKA</code></p>
<div class="example"><h3>CRYPT</h3><p><code>
@@ -127,16 +127,16 @@
rqXexS6ZhobKA
</code></p></div>
- <p>Notez que sp&#233;cifier <code>Mon-Mot-</code> au lieu de
- <code>Mon-Mot-de-passe</code> produira le m&#234;me r&#233;sultat car seuls
- les 8 premiers caract&#232;res des mots de passe CRYPT sont pris en
+ <p>Notez que spécifier <code>Mon-Mot-</code> au lieu de
+ <code>Mon-Mot-de-passe</code> produira le même résultat car seuls
+ les 8 premiers caractères des mots de passe CRYPT sont pris en
compte.</p>
<p>La source d'entropie pour un mot de passe MD5 se situe entre
- <code>$apr1$</code> et le caract&#232;re <code>$</code> suivant (sous
- la forme d'une valeur binaire cod&#233;e en Base64 - au maximum 8
- caract&#232;res). Pour valider <code>Mon-Mot-de-passe</code> par rapport
- &#224; <code>$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/</code></p>
+ <code>$apr1$</code> et le caractère <code>$</code> suivant (sous
+ la forme d'une valeur binaire codée en Base64 - au maximum 8
+ caractères). Pour valider <code>Mon-Mot-de-passe</code> par rapport
+ à <code>$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/</code></p>
<div class="example"><h3>MD5</h3><p><code>
$ openssl passwd -apr1 -salt r31..... Mon-Mot-de-passe<br />
@@ -144,15 +144,15 @@
</code></p></div>
- <h3>Champs mot de passe de base de donn&#233;es pour
+ <h3>Champs mot de passe de base de données pour
mod_dbd</h3>
<p>La variante SHA1 constitue probablement le format le mieux
- appropri&#233; pour l'authentification DBD. Comme les fonctions SHA1 et
- Base64 sont en g&#233;n&#233;ral disponibles, d'autres logiciels peuvent
- renseigner une base de donn&#233;es avec des mots de passe chiffr&#233;s
+ approprié pour l'authentification DBD. Comme les fonctions SHA1 et
+ Base64 sont en général disponibles, d'autres logiciels peuvent
+ renseigner une base de données avec des mots de passe chiffrés
utilisables par l'authentification basique d'Apache.</p>
- <p>Pour cr&#233;er des mots de passe au format SHA1 pour
+ <p>Pour créer des mots de passe au format SHA1 pour
l'authentification de base d'Apache dans divers langages :</p>
<div class="example"><h3>PHP</h3><p><code>
@@ -184,7 +184,7 @@
</code></p></div>
<div class="example"><h3>PostgreSQL (avec les fonctions contrib/pgcrypto
- install&#233;es)</h3><p><code>
+ installées)</h3><p><code>
'{SHA}'||encode(digest(password,'sha1'),'base64')
</code></p></div>
@@ -192,26 +192,26 @@
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="digest" id="digest">Authentification &#224; base de condens&#233;s - (digest)</a><a title="Lien permanent" href="#digest" class="permalink">&para;</a></h2>
- <p>Apache ne reconna&#238;t qu'un format pour les mots de passe
- d'authentification &#224; base de condens&#233;s - le condens&#233; MD5 de la
- cha&#238;ne <code>utilisateur:domaine-de-protection:mot-de-passe</code>
- sous la forme d'une cha&#238;ne de 32 caract&#232;res au format hexad&#233;cimal.
+<h2><a name="digest" id="digest">Authentification à base de condensés - (digest)</a><a title="Lien permanent" href="#digest" class="permalink">&para;</a></h2>
+ <p>Apache ne reconnaît qu'un format pour les mots de passe
+ d'authentification à base de condensés - le condensé MD5 de la
+ chaîne <code>utilisateur:domaine-de-protection:mot-de-passe</code>
+ sous la forme d'une chaîne de 32 caractères au format hexadécimal.
<code>domaine-de-protection</code> est l'identifiant du domaine de
- protection de l'autorisation pass&#233; en argument &#224; la directive
+ protection de l'autorisation passé en argument à la directive
<code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> dans
httpd.conf.</p>
- <h3>Champs de mot de passe de base de donn&#233;es pour
+ <h3>Champs de mot de passe de base de données pour
mod_dbd</h3>
- <p>Comme la fonction MD5 est en g&#233;n&#233;ral disponible, d'autres
- logiciels peuvent renseigner une base de donn&#233;es avec des mots de
- passe chiffr&#233;s utilisables par l'authentification &#224; base de
- condens&#233;s d'Apache.</p>
+ <p>Comme la fonction MD5 est en général disponible, d'autres
+ logiciels peuvent renseigner une base de données avec des mots de
+ passe chiffrés utilisables par l'authentification à base de
+ condensés d'Apache.</p>
- <p>Pour cr&#233;er des mots de passe pour l'authentification &#224; base de
- condens&#233;s d'Apache dans divers langages :</p>
+ <p>Pour créer des mots de passe pour l'authentification à base de
+ condensés d'Apache dans divers langages :</p>
<div class="example"><h3>PHP</h3><p><code>
md5($user . ':' . $realm . ':' .$password)
@@ -225,7 +225,7 @@
<span class="indent">
s = "0" + s;
</span>
- // La cha&#238;ne s contient le mot de passe chiffr&#233;
+ // La chaîne s contient le mot de passe chiffré
</code></p></div>
<div class="example"><h3>ColdFusion</h3><p><code>
@@ -238,7 +238,7 @@
</code></p></div>
<div class="example"><h3>PostgreSQL (avec les fonctions contrib/pgcrypto
- install&#233;es)</h3><p><code>
+ installées)</h3><p><code>
encode(digest( user || ':' || realm || ':' || password , 'md5'), 'hex')
</code></p></div>
@@ -247,8 +247,8 @@
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/misc/password_encryptions.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/password_encryptions.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/password_encryptions.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a></p>
+<a href="../es/misc/password_encryptions.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/password_encryptions.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
@@ -267,7 +267,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/password_encr
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris&#233; sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
diff --git a/docs/manual/misc/perf-scaling.html.fr b/docs/manual/misc/perf-scaling.html.fr
index 4dfd8467e3..829f18ab31 100644
--- a/docs/manual/misc/perf-scaling.html.fr
+++ b/docs/manual/misc/perf-scaling.html.fr
@@ -7,7 +7,7 @@
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>Am&#233;lioration des performances - Serveur HTTP Apache Version 2.5</title>
+<title>Amélioration des performances - Serveur HTTP Apache Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
@@ -21,48 +21,48 @@
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Am&#233;lioration des performances</h1>
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Amélioration des performances</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/misc/perf-scaling.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/perf-scaling.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a></p>
+<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/perf-scaling.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div>
<p>Il est dit dans la documentation d'Apache 1.3
- &#224; propos de l'am&#233;lioration des performances :
+ à propos de l'amélioration des performances :
</p>
<blockquote><p>
- "Apache est un serveur web &#224; vocation g&#233;n&#233;rale, con&#231;u pour
- &#234;tre non seulement efficace mais aussi rapide. Dans sa
- configuration de base, ses performances sont d&#233;j&#224;
- relativement satisfaisantes. La plupart des sites poss&#232;dent
- une bande passante en sortie inf&#233;rieure &#224; 10 Mbits que le
- serveur Apache peut mettre pleinement &#224; profit en utilisant un serveur &#224; base
+ "Apache est un serveur web à vocation générale, conçu pour
+ être non seulement efficace mais aussi rapide. Dans sa
+ configuration de base, ses performances sont déjà
+ relativement satisfaisantes. La plupart des sites possèdent
+ une bande passante en sortie inférieure à 10 Mbits que le
+ serveur Apache peut mettre pleinement à profit en utilisant un serveur à base
de processeur Pentium bas de gamme."</p>
</blockquote>
- <p>Cette phrase ayant &#233;t&#233; &#233;crite il y a plusieurs ann&#233;es,
- entre temps de nombreuses choses ont chang&#233;. D'une part, les
+ <p>Cette phrase ayant été écrite il y a plusieurs années,
+ entre temps de nombreuses choses ont changé. D'une part, les
serveurs sont devenus beaucoup plus rapides. D'autre part, de
- nombreux sites se voient maintenant allou&#233;e une bande passante
- en sortie bien sup&#233;rieure &#224; 10 Mbits. En outre, les applications
+ nombreux sites se voient maintenant allouée une bande passante
+ en sortie bien supérieure à 10 Mbits. En outre, les applications
web sont devenues beaucoup plus complexes. Les sites classiques
ne proposant que des pages du style brochure sont toujours
- pr&#233;sents, mais le web a souvent &#233;volu&#233; vers une plateforme
- ex&#233;cutant des traitements, et les webmasters peuvent maintenant
+ présents, mais le web a souvent évolué vers une plateforme
+ exécutant des traitements, et les webmasters peuvent maintenant
mettre en ligne des contenus dynamiques en Perl, PHP ou Java,
- qui exigent un niveau de performances bien sup&#233;rieur.
+ qui exigent un niveau de performances bien supérieur.
</p>
- <p>C'est pourquoi en d&#233;pit des progr&#232;s en mati&#232;re de bandes passantes
- allou&#233;es et de rapidit&#233; des serveurs, les performances
+ <p>C'est pourquoi en dépit des progrès en matière de bandes passantes
+ allouées et de rapidité des serveurs, les performances
des serveurs web et des applications web sont toujours un sujet
- d'actualit&#233;. C'est dans ce cadre que cette documentation s'attache &#224;
- pr&#233;senter de nombreux points concernant les performances des
+ d'actualité. C'est dans ce cadre que cette documentation s'attache à
+ présenter de nombreux points concernant les performances des
serveurs web.
</p>
</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#what-will-and-will-not-be-discussed">Ce qui sera abord&#233; et ce qui ne le sera pas</a></li>
+<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#what-will-and-will-not-be-discussed">Ce qui sera abordé et ce qui ne le sera pas</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#monitoring-your-server">Monitoring de votre serveur</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#configuring-for-performance">Configuration dans une optique de performances
</a></li>
@@ -73,20 +73,20 @@
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="what-will-and-will-not-be-discussed" id="what-will-and-will-not-be-discussed">Ce qui sera abord&#233; et ce qui ne le sera pas</a><a title="Lien permanent" href="#what-will-and-will-not-be-discussed" class="permalink">&para;</a></h2>
+<h2><a name="what-will-and-will-not-be-discussed" id="what-will-and-will-not-be-discussed">Ce qui sera abordé et ce qui ne le sera pas</a><a title="Lien permanent" href="#what-will-and-will-not-be-discussed" class="permalink">&para;</a></h2>
- <p>Ce document se concentre sur l'am&#233;lioration des performances
+ <p>Ce document se concentre sur l'amélioration des performances
via des options facilement accessibles, ainsi que sur les outils
de monitoring. Les outils de monitoring vous permettront de
surveiller le fonctionnement de votre serveur web afin de
- rassembler des informations &#224; propos de ses performances et des
- &#233;ventuels probl&#232;mes qui s'y rapportent. Nous supposerons
- que votre budget n'est pas illimit&#233; ; c'est pourquoi les
- am&#233;liorations apport&#233;es le seront sans modifier l'infrastructure
- mat&#233;rielle existante. Vous ne souhaitez probablement pas
- compiler vous-m&#234;me votre serveur Apache, ni recompiler le noyau
- de votre syst&#232;me d'exploitation ; nous supposerons cependant que
- vous poss&#233;dez quelques notions &#224; propos du fichier de
+ rassembler des informations à propos de ses performances et des
+ éventuels problèmes qui s'y rapportent. Nous supposerons
+ que votre budget n'est pas illimité ; c'est pourquoi les
+ améliorations apportées le seront sans modifier l'infrastructure
+ matérielle existante. Vous ne souhaitez probablement pas
+ compiler vous-même votre serveur Apache, ni recompiler le noyau
+ de votre système d'exploitation ; nous supposerons cependant que
+ vous possédez quelques notions à propos du fichier de
configuration du serveur HTTP Apache.
</p>
@@ -94,12 +94,12 @@
<div class="section">
<h2><a name="monitoring-your-server" id="monitoring-your-server">Monitoring de votre serveur</a><a title="Lien permanent" href="#monitoring-your-server" class="permalink">&para;</a></h2>
- <p>Si vous envisagez de redimensionner ou d'am&#233;liorer les performances
- de votre serveur, vous devez tout d'abord observer la mani&#232;re dont il
- fonctionne. En observant son fonctionnement en conditions r&#233;elles ou
- sous une charge cr&#233;&#233;e artificiellement, vous serez en mesure
+ <p>Si vous envisagez de redimensionner ou d'améliorer les performances
+ de votre serveur, vous devez tout d'abord observer la manière dont il
+ fonctionne. En observant son fonctionnement en conditions réelles ou
+ sous une charge créée artificiellement, vous serez en mesure
d'extrapoler son fonctionnement sous une charge accrue, par exemple dans
- le cas o&#249; il serait mentionn&#233; sur Slashdot. </p>
+ le cas où il serait mentionné sur Slashdot. </p>
<h3><a name="monitoring-tools" id="monitoring-tools">Outils de monitoring</a></h3>
@@ -109,23 +109,23 @@
</a></h4>
<p>L'outil top est fourni avec Linux et FreeBSD. Solaris
- quant &#224; lui, fournit <code>prstat(1)</code>. Cet outil
- permet de rassembler de nombreuses donn&#233;es statistiques
- &#224; propos du syst&#232;me et de chaque processus en cours
- d'ex&#233;cution avant de les afficher de mani&#232;re
- interactive sur votre terminal. Les donn&#233;es affich&#233;es
- sont rafra&#238;chies toutes les secondes et varient en
+ quant à lui, fournit <code>prstat(1)</code>. Cet outil
+ permet de rassembler de nombreuses données statistiques
+ à propos du système et de chaque processus en cours
+ d'exécution avant de les afficher de manière
+ interactive sur votre terminal. Les données affichées
+ sont rafraîchies toutes les secondes et varient en
fonction de la plateforme, mais elles comportent en
- g&#233;n&#233;ral la charge moyenne du syst&#232;me, le nombre de
- processus et leur &#233;tat courant, le pourcentage de temps
- CPU(s) pass&#233; &#224; ex&#233;cuter le code syst&#232;me et utilisateur,
- et l'&#233;tat de la m&#233;moire virtuelle syst&#232;me. Les donn&#233;es
- affich&#233;es pour chaque processus sont en g&#233;n&#233;ral
+ général la charge moyenne du système, le nombre de
+ processus et leur état courant, le pourcentage de temps
+ CPU(s) passé à exécuter le code système et utilisateur,
+ et l'état de la mémoire virtuelle système. Les données
+ affichées pour chaque processus sont en général
configurables et comprennent le nom et l'identifiant du
- processus, sa priorit&#233; et la valeur d&#233;finie par nice,
- l'empreinte m&#233;moire, et le pourcentage d'utilisation CPU.
+ processus, sa priorité et la valeur définie par nice,
+ l'empreinte mémoire, et le pourcentage d'utilisation CPU.
L'exemple suivant montre plusieurs processus httpd (avec
- les MPM worker et event) s'ex&#233;cutant sur un syst&#232;me
+ les MPM worker et event) s'exécutant sur un système
Linux (Xen) :
</p>
@@ -163,31 +163,31 @@ Swap: 4194296k total, 860584k used, 3333712k free, 1157552k cached
69 root 15 -5 0 0 0 S 0 0.0 0:00.04 kblockd/1
70 root 15 -5 0 0 0 S 0 0.0 0:00.04 kblockd/2</pre></div>
- <p>Top est un merveilleux outil, m&#234;me s'il est
+ <p>Top est un merveilleux outil, même s'il est
relativement gourmand en ressources (lorsqu'il
- s'ex&#233;cute, son propre processus se trouve en g&#233;n&#233;ral
+ s'exécute, son propre processus se trouve en général
dans le top dix des consommations CPU). Il est
- indispensable pour d&#233;terminer la taille d'un processus
- en cours d'ex&#233;cution, information pr&#233;cieuse lorsque vous
- voudrez d&#233;terminer combien de processus httpd vous
- pourrez ex&#233;cuter sur votre machine. La m&#233;thode pour
- effectuer ce calcul est d&#233;crite ici : <a href="#sizing-maxClients">calculer MaxClients</a>. Top
- est cependant un outil interactif, et l'ex&#233;cuter de
- mani&#232;re continu pr&#233;sente peu ou pas d'avantage.
+ indispensable pour déterminer la taille d'un processus
+ en cours d'exécution, information précieuse lorsque vous
+ voudrez déterminer combien de processus httpd vous
+ pourrez exécuter sur votre machine. La méthode pour
+ effectuer ce calcul est décrite ici : <a href="#sizing-maxClients">calculer MaxClients</a>. Top
+ est cependant un outil interactif, et l'exécuter de
+ manière continu présente peu ou pas d'avantage.
</p>
<h4><a name="free" id="free">free
</a></h4>
<p>Cette commande n'est disponible que sous Linux. Elle
- indique la m&#233;moire vive et l'espace de swap utilis&#233;s.
- Linux alloue la m&#233;moire inutilis&#233;e en tant que cache du
- syst&#232;me de fichiers. La commande free montre
- l'utilisation de la m&#233;moire avec et sans ce cache. On
- peut utiliser la commande free pour d&#233;terminer la
- quantit&#233; de m&#233;moire utilis&#233;e par le syst&#232;me, comme
- d&#233;crit dans le paragraphe <a href="#sizing-maxClients">calculer MaxClients</a>.
- L'affichage de la sortie de la commande free ressemble &#224;
+ indique la mémoire vive et l'espace de swap utilisés.
+ Linux alloue la mémoire inutilisée en tant que cache du
+ système de fichiers. La commande free montre
+ l'utilisation de la mémoire avec et sans ce cache. On
+ peut utiliser la commande free pour déterminer la
+ quantité de mémoire utilisée par le système, comme
+ décrit dans le paragraphe <a href="#sizing-maxClients">calculer MaxClients</a>.
+ L'affichage de la sortie de la commande free ressemble à
ceci :
</p>
@@ -203,17 +203,17 @@ Swap: 3903784 12540 3891244</pre></div>
<p>Cette commande est disponible sur de nombreuses
plateformes de style Unix. Elle affiche un grand nombre
- de donn&#233;es syst&#232;me. Lanc&#233;e sans argument, elle affiche
- une ligne d'&#233;tat pour l'instant actuel. Lorsqu'on lui
- ajoute un chiffre, la ligne d'&#233;tat actuelle est ajout&#233;e &#224;
- intervalles r&#233;guliers &#224; l'affichage existant.
+ de données système. Lancée sans argument, elle affiche
+ une ligne d'état pour l'instant actuel. Lorsqu'on lui
+ ajoute un chiffre, la ligne d'état actuelle est ajoutée à
+ intervalles réguliers à l'affichage existant.
Par exemple, la commande
- <code>vmstat 5</code> ajoute la ligne d'&#233;tat actuelle
+ <code>vmstat 5</code> ajoute la ligne d'état actuelle
toutes les 5 secondes. La commande vmstat affiche la
- quantit&#233; de m&#233;moire virtuelle utilis&#233;e, la quantit&#233; de
- m&#233;moire &#233;chang&#233;e avec l'espace de swap en entr&#233;e et en
- sortie &#224; chaque seconde, le nombre de processus
- actuellement en cours d'ex&#233;cution ou inactifs, le nombre
+ quantité de mémoire virtuelle utilisée, la quantité de
+ mémoire échangée avec l'espace de swap en entrée et en
+ sortie à chaque seconde, le nombre de processus
+ actuellement en cours d'exécution ou inactifs, le nombre
d'interruptions et de changements de contexte par
seconde, et le pourcentage d'utilisation du CPU.
</p>
@@ -230,8 +230,8 @@ Swap: 3903784 12540 3891244</pre></div>
0 0 0 0 186244 6696 37516 0 0 0 16 41 314 0 0 100
0 0 0 0 186236 6704 37516 0 0 0 9 44 314 0 0 100</pre></div>
- <p>Et voici cette m&#234;me sortie pour un serveur en charge
- de cent connexions simultan&#233;es pour du contenu statique :
+ <p>Et voici cette même sortie pour un serveur en charge
+ de cent connexions simultanées pour du contenu statique :
</p>
<div class="example"><pre>[sctemme@GayDeceiver sctemme]$ vmstat 5 3
@@ -241,41 +241,41 @@ Swap: 3903784 12540 3891244</pre></div>
6 0 1 0 163280 6856 40248 0 0 0 66 6384 1117 42 25 32
11 0 0 0 162780 6864 40436 0 0 0 61 6309 1165 33 28 40</pre></div>
- <p>La premi&#232;re ligne indique des valeurs moyennes depuis
- le dernier red&#233;marrage. Les lignes suivantes donnent des
- informations d'&#233;tat &#224; intervalles de 5 secondes. Le
- second argument demande &#224; vmstat de g&#233;n&#233;rer 3 lignes
- d'&#233;tat, puis de s'arr&#234;ter.
+ <p>La première ligne indique des valeurs moyennes depuis
+ le dernier redémarrage. Les lignes suivantes donnent des
+ informations d'état à intervalles de 5 secondes. Le
+ second argument demande à vmstat de générer 3 lignes
+ d'état, puis de s'arrêter.
</p>
- <h4><a name="se-toolkit" id="se-toolkit">Bo&#238;te &#224; outils SE
+ <h4><a name="se-toolkit" id="se-toolkit">Boîte à outils SE
</a></h4>
- <p>La bo&#238;te &#224; outils SE est une solution de supervision
- pour Solaris. Son langage de programmation est bas&#233; sur
- le pr&#233;processeur C et est fourni avec de nombreux
+ <p>La boîte à outils SE est une solution de supervision
+ pour Solaris. Son langage de programmation est basé sur
+ le préprocesseur C et est fourni avec de nombreux
exemples de scripts. Les informations fournies
- peuvent &#234;tre exploit&#233;es en mode console ou en mode
- graphique. Cette bo&#238;te &#224; outils peut aussi &#234;tre programm&#233;e pour
- appliquer des r&#232;gles aux donn&#233;es syst&#232;me. Avec l'exemple
+ peuvent être exploitées en mode console ou en mode
+ graphique. Cette boîte à outils peut aussi être programmée pour
+ appliquer des règles aux données système. Avec l'exemple
de script de la Figure 2, Zoom.se, des voyants verts,
oranges ou rouges s'allument lorsque certaines valeurs
- du syst&#232;me d&#233;passent un seuil sp&#233;cifi&#233;. Un autre script
+ du système dépassent un seuil spécifié. Un autre script
fourni, Virtual Adrian, permet d'affiner les
performances en tenant compte de ces valeurs.
</p>
- <p>Depuis sa cr&#233;ation, de nombreux propri&#233;taires se sont
- succ&#233;d&#233;s &#224; la t&#234;te de la bo&#238;te &#224; outils SE, et elle a de
- ce fait largement &#233;volu&#233;. Il semble qu'elle ait
- maintenant trouv&#233; sa place chez Sunfreeware.com d'o&#249;
- elle peut &#234;tre t&#233;l&#233;charg&#233;e gratuitement. Il n'y a qu'un
+ <p>Depuis sa création, de nombreux propriétaires se sont
+ succédés à la tête de la boîte à outils SE, et elle a de
+ ce fait largement évolué. Il semble qu'elle ait
+ maintenant trouvé sa place chez Sunfreeware.com d'où
+ elle peut être téléchargée gratuitement. Il n'y a qu'un
seul paquet pour Solaris 8, 9 et 10 sur SPARC et x86, et
- il inclut le code source. Le concepteur de la bo&#238;te &#224;
- outils SE, Richard Pettit, a fond&#233; une nouvelle soci&#233;te,
+ il inclut le code source. Le concepteur de la boîte à
+ outils SE, Richard Pettit, a fondé une nouvelle sociéte,
Captive Metrics4, et a l'intention de mettre sur le
- march&#233; un outil de supervision multiplateforme en Java bas&#233; sur
- les m&#234;mes principes que la bo&#238;te &#224; outils SE.
+ marché un outil de supervision multiplateforme en Java basé sur
+ les mêmes principes que la boîte à outils SE.
</p>
@@ -283,8 +283,8 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="dtrace" id="dtrace">DTrace
</a></h4>
- <p>Etant donn&#233; que DTrace est disponible sous Solaris,
- FreeBSD et OS X, il serait int&#233;ressant de l'&#233;tudier. Il
+ <p>Etant donné que DTrace est disponible sous Solaris,
+ FreeBSD et OS X, il serait intéressant de l'étudier. Il
y a aussi le module mod_dtrace pour httpd.
</p>
@@ -293,20 +293,20 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="mod_status" id="mod_status">mod_status
</a></h4>
- <p>Le module mod_status donne un aper&#231;u des performances
- du serveur &#224; un instant donn&#233;. Il g&#233;n&#232;re une page HTML
+ <p>Le module mod_status donne un aperçu des performances
+ du serveur à un instant donné. Il génère une page HTML
comportant, entre autres, le nombre de processus Apache
- en cours d'ex&#233;cution avec la quantit&#233; de donn&#233;es qu'ils
+ en cours d'exécution avec la quantité de données qu'ils
ont servies, ainsi que la charge CPU induite par httpd
- et le reste du syst&#232;me. L'Apache Software Foundation
- utilise elle-m&#234;me <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> pour son
+ et le reste du système. L'Apache Software Foundation
+ utilise elle-même <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> pour son
propre <a href="http://apache.org/server-status">site
web</a>. Si vous ajoutez une directive
- <code>ExtendedStatus On</code> &#224; votre fichier
+ <code>ExtendedStatus On</code> à votre fichier
<code>httpd.conf</code>, la page de
<code class="module"><a href="../mod/mod_status.html">mod_status</a></code> vous fournira d'avantage
d'informations, au prix d'une consommation de ressources
- l&#233;g&#232;rement sup&#233;rieure par requ&#234;te.
+ légèrement supérieure par requête.
</p>
@@ -315,20 +315,20 @@ Swap: 3903784 12540 3891244</pre></div>
<h3><a name="web-server-log-files" id="web-server-log-files">Les journaux du serveur web
</a></h3>
- <p>Le moyen le plus efficace pour v&#233;rifier la bonne sant&#233; et
- le niveau de performance de votre serveur consiste &#224;
- surveiller et analyser les journaux &#233;crits par httpd. La
+ <p>Le moyen le plus efficace pour vérifier la bonne santé et
+ le niveau de performance de votre serveur consiste à
+ surveiller et analyser les journaux écrits par httpd. La
surveillance du journal des erreurs vous permet de
- d&#233;terminer les sources d'erreurs, de d&#233;tecter des attaques
- ou des probl&#232;mes de performance. L'analyse du journal des
- acc&#232;s vous indique le niveau de charge de votre serveur,
+ déterminer les sources d'erreurs, de détecter des attaques
+ ou des problèmes de performance. L'analyse du journal des
+ accès vous indique le niveau de charge de votre serveur,
quelles sont les ressources les plus populaires, ainsi que
la provenance de vos utilisateurs. Une analyse historique des
- donn&#233;es de journalisation peut vous fournir des informations
- pr&#233;cieuses quant aux tendances d'utilisation de votre
- serveur au cours du temps, ce qui vous permet de pr&#233;voir les
- p&#233;riodes o&#249; les besoins en performance risquent de d&#233;passer
- les capacit&#233;s du serveur.
+ données de journalisation peut vous fournir des informations
+ précieuses quant aux tendances d'utilisation de votre
+ serveur au cours du temps, ce qui vous permet de prévoir les
+ périodes où les besoins en performance risquent de dépasser
+ les capacités du serveur.
</p>
@@ -337,63 +337,63 @@ Swap: 3903784 12540 3891244</pre></div>
<p>Le journal des erreurs peut indiquer que le nombre
maximum de processus actifs ou de fichiers ouverts
- simultan&#233;ment a &#233;t&#233; atteint. Le journal des erreurs
- signele aussi le lancement de processus suppl&#233;mentaires selon un
- taux sup&#233;rieur &#224; la normale en r&#233;ponse &#224;
+ simultanément a été atteint. Le journal des erreurs
+ signele aussi le lancement de processus supplémentaires selon un
+ taux supérieur à la normale en réponse à
une augmentation soudaine de la charge. Lorsque le
- serveur d&#233;marre, le descripteur de fichier stderr est
- redirig&#233; vers le journal des erreurs, si bien que toute
- erreur rencontr&#233;e par httpd apr&#232;s avoir ouvert ses
- fichiers journaux appara&#238;tra dans ce journal. Consulter
- fr&#233;quemment le journal des erreurs est donc une bonne
+ serveur démarre, le descripteur de fichier stderr est
+ redirigé vers le journal des erreurs, si bien que toute
+ erreur rencontrée par httpd après avoir ouvert ses
+ fichiers journaux apparaîtra dans ce journal. Consulter
+ fréquemment le journal des erreurs est donc une bonne
habitude.
</p>
<p>Lorsque Apache httpd n'a pas encore ouvert ses
- fichiers journaux, tout message d'erreur sera envoy&#233;
+ fichiers journaux, tout message d'erreur sera envoyé
vers la sortie d'erreur standard stderr. Si vous
- d&#233;marrez httpd manuellement, ces messages d'erreur
- appara&#238;tront sur votre terminal, et vous pourrez les
- utiliser directement pour r&#233;soudre les probl&#232;mes de
- votre serveur. Si httpd est lanc&#233; via un script de
- d&#233;marrage, la destination de ces messages d'erreur
- d&#233;pend de leur conception.
- <code>/var/log/messages</code> est alors le premier fichier &#224;
- consulter. Sous Windows, ces messages d'erreur pr&#233;coces
- sont &#233;crits dans le journal des &#233;v&#232;nements des
- applications, qui peut &#234;tre visualis&#233; via l'observateur
- d'&#233;v&#232;nements dans les outils d'administration.
+ démarrez httpd manuellement, ces messages d'erreur
+ apparaîtront sur votre terminal, et vous pourrez les
+ utiliser directement pour résoudre les problèmes de
+ votre serveur. Si httpd est lancé via un script de
+ démarrage, la destination de ces messages d'erreur
+ dépend de leur conception.
+ <code>/var/log/messages</code> est alors le premier fichier à
+ consulter. Sous Windows, ces messages d'erreur précoces
+ sont écrits dans le journal des évènements des
+ applications, qui peut être visualisé via l'observateur
+ d'évènements dans les outils d'administration.
</p>
<p>
- Le journal des erreurs est configur&#233; via les
+ Le journal des erreurs est configuré via les
directives de configuration <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code> et <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>. Le journal des
erreurs de la configuration du serveur principal de
- httpd re&#231;oit les messages d'erreur concernant
- l'ensemble du serveur : d&#233;marrage, arr&#234;t, crashes,
- lancement de processus suppl&#233;mentaires excessif,
- etc... La directive <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code> peut aussi &#234;tre
- utilis&#233;e dans les blocs de configuration des
+ httpd reçoit les messages d'erreur concernant
+ l'ensemble du serveur : démarrage, arrêt, crashes,
+ lancement de processus supplémentaires excessif,
+ etc... La directive <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code> peut aussi être
+ utilisée dans les blocs de configuration des
serveurs virtuels. Le journal des erreurs d'un
- serveur virtuel ne re&#231;oit que les messages d'erreur
- sp&#233;cifiques &#224; ce serveur virtuel, comme les erreurs
+ serveur virtuel ne reçoit que les messages d'erreur
+ spécifiques à ce serveur virtuel, comme les erreurs
d'authentification et les erreurs du style 'File not
Found'.
</p>
<p>Dans le cas d'un serveur accessible depuis Internet,
- attendez-vous &#224; voir de nombreuses tentatives
+ attendez-vous à voir de nombreuses tentatives
d'exploitation et attaques de vers dans le journal des
erreurs. La plupart d'entre elles ciblent des serveurs
- autres qu'Apache, mais dans l'&#233;tat actuel des choses,
+ autres qu'Apache, mais dans l'état actuel des choses,
les scripts se contentent d'envoyer leurs attaques vers
tout port ouvert, sans tenir compte du serveur web
- effectivement en cours d'ex&#233;cution ou du type
- des applications install&#233;es. Vous pouvez bloquer ces
+ effectivement en cours d'exécution ou du type
+ des applications installées. Vous pouvez bloquer ces
tentatives d'attaque en utilisant un pare-feu ou le
module <a href="http://www.modsecurity.org/">mod_security</a>,
- mais ceci d&#233;passe la port&#233;e de cette discussion.
+ mais ceci dépasse la portée de cette discussion.
</p>
<p>
- La directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> permet de d&#233;finir
- le niveau de d&#233;tail des messages enregistr&#233;s dans
+ La directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> permet de définir
+ le niveau de détail des messages enregistrés dans
les journaux. Il existe huit niveaux de
journalisation :
</p>
@@ -411,7 +411,7 @@ Swap: 3903784 12540 3891244</pre></div>
<p>emerg</p>
</td>
<td>
- <p>Urgence - le syst&#232;me est inutilisable.</p>
+ <p>Urgence - le système est inutilisable.</p>
</td>
</tr>
<tr>
@@ -419,8 +419,8 @@ Swap: 3903784 12540 3891244</pre></div>
<p>alert</p>
</td>
<td>
- <p>Une action doit &#234;tre entreprise
- imm&#233;diatement.</p>
+ <p>Une action doit être entreprise
+ immédiatement.</p>
</td>
</tr>
<tr>
@@ -452,7 +452,7 @@ Swap: 3903784 12540 3891244</pre></div>
<p>notice</p>
</td>
<td>
- <p>Ev&#232;nement normal, mais important.</p>
+ <p>Evènement normal, mais important.</p>
</td>
</tr>
<tr>
@@ -468,16 +468,16 @@ Swap: 3903784 12540 3891244</pre></div>
<p>debug</p>
</td>
<td>
- <p>Messages de d&#233;bogage.</p>
+ <p>Messages de débogage.</p>
</td>
</tr>
</table>
- <p>Le niveau de journalisation par d&#233;faut est warn. Un
- serveur en production ne doit pas s'ex&#233;cuter en mode
- debug, mais augmenter le niveau de d&#233;tail dans le
- journal des erreurs peut s'av&#233;rer utile pour r&#233;soudre
- certains probl&#232;mes. A partir de la
- version 2.3.8, la directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> peut &#234;tre d&#233;finie au
+ <p>Le niveau de journalisation par défaut est warn. Un
+ serveur en production ne doit pas s'exécuter en mode
+ debug, mais augmenter le niveau de détail dans le
+ journal des erreurs peut s'avérer utile pour résoudre
+ certains problèmes. A partir de la
+ version 2.3.8, la directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> peut être définie au
niveau de chaque module :
</p>
@@ -487,35 +487,35 @@ Swap: 3903784 12540 3891244</pre></div>
<p>
Dans cet exemple, l'ensemble du serveur est en mode
debug, sauf le module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>
- qui a tendance &#224; &#234;tre tr&#232;s bavard.
+ qui a tendance à être très bavard.
</p>
- <h4><a name="AccessLog" id="AccessLog">Journal des acc&#232;s
+ <h4><a name="AccessLog" id="AccessLog">Journal des accès
</a></h4>
- <p>Apache httpd garde la trace de toutes les requ&#234;tes
- qu'il re&#231;oit dans son journal des acc&#232;s. En plus de
- l'heure et de la nature d'une requ&#234;te, httpd peut
+ <p>Apache httpd garde la trace de toutes les requêtes
+ qu'il reçoit dans son journal des accès. En plus de
+ l'heure et de la nature d'une requête, httpd peut
enregistrer l'adresse IP du client, la date et l'heure
- de la requ&#234;te, le r&#233;sultat et quantit&#233; d'autres
- informations. Les diff&#233;rents formats de journaux sont
- document&#233;s dans le manuel. Le fichier concerne par
- d&#233;faut le serveur principal, mais il peut &#234;tre configur&#233;
+ de la requête, le résultat et quantité d'autres
+ informations. Les différents formats de journaux sont
+ documentés dans le manuel. Le fichier concerne par
+ défaut le serveur principal, mais il peut être configuré
pour chaque serveur virtuel via les directives de
configuration <code class="directive"><a href="../mod/mod_log_config.html#transferlog">TransferLog</a></code> ou
<code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>.
</p>
<p>De nombreux programmes libres ou commerciaux
- permettent d'analyser les journaux d'acc&#232;s. Analog et
+ permettent d'analyser les journaux d'accès. Analog et
Webalyser sont des programmes d'analyse libres parmi les
plus populaires. L'analyse des journaux doit s'effectuer
hors ligne afin de ne pas surcharger le serveur web avec
le traitement des fichiers journaux. La plupart des
programmes d'analyse des journaux sont compatibles avec le format
de journal "Common". Voici une description des
- diff&#233;rents champs pr&#233;sents dans une entr&#233;e du journal :
+ différents champs présents dans une entrée du journal :
</p>
@@ -547,19 +547,19 @@ Swap: 3903784 12540 3891244</pre></div>
<p>195.54.228.42</p>
</td>
<td>
- <p>Adresse IP d'o&#249; provient la requ&#234;te</p>
+ <p>Adresse IP d'où provient la requête</p>
</td>
</tr>
<tr>
<td>
- <p>Identit&#233; RFC 1413</p>
+ <p>Identité RFC 1413</p>
</td>
<td>
<p>-</p>
</td>
<td>
- <p>Identit&#233; de l'utilisateur distant renvoy&#233;e
- par son d&#233;mon identd</p>
+ <p>Identité de l'utilisateur distant renvoyée
+ par son démon identd</p>
</td>
</tr>
<tr>
@@ -582,29 +582,29 @@ Swap: 3903784 12540 3891244</pre></div>
<p>[24/Mar/2007:23:05:11 -0400]</p>
</td>
<td>
- <p>Date et heure de la requ&#234;te</p>
+ <p>Date et heure de la requête</p>
</td>
</tr>
<tr>
<td>
- <p>Requ&#234;te</p>
+ <p>Requête</p>
</td>
<td>
<p>"GET /sander/feed/ HTTP/1.1"</p>
</td>
<td>
- <p>La requ&#234;te proprement dite</p>
+ <p>La requête proprement dite</p>
</td>
</tr>
<tr>
<td>
- <p>Code d'&#233;tat</p>
+ <p>Code d'état</p>
</td>
<td>
<p>200</p>
</td>
<td>
- <p>Code d'&#233;tat renvoy&#233; avec la r&#233;ponse</p>
+ <p>Code d'état renvoyé avec la réponse</p>
</td>
</tr>
<tr>
@@ -615,8 +615,8 @@ Swap: 3903784 12540 3891244</pre></div>
<p>9747</p>
</td>
<td>
- <p>Total des octets transf&#233;r&#233;s sans les
- en-t&#234;tes</p>
+ <p>Total des octets transférés sans les
+ en-têtes</p>
</td>
</tr>
</table>
@@ -626,25 +626,25 @@ Swap: 3903784 12540 3891244</pre></div>
</a></h4>
<p>Il y a de nombreuses raisons pour mettre en oeuvre la
- rotation des fichiers journaux. M&#234;me si pratiquement
- plus aucun syst&#232;me d'exploitation n'impose une limite de
+ rotation des fichiers journaux. Même si pratiquement
+ plus aucun système d'exploitation n'impose une limite de
taille pour les fichiers de deux GigaOctets, avec le
temps, les fichiers journaux deviennent trop gros pour
- pouvoir &#234;tre trait&#233;s. En outre, toute analyse de journal
- ne doit pas &#234;tre effectu&#233;e sur un fichier dans lequel le
- serveur est en train d'&#233;crire. Une rotation p&#233;riodique
+ pouvoir être traités. En outre, toute analyse de journal
+ ne doit pas être effectuée sur un fichier dans lequel le
+ serveur est en train d'écrire. Une rotation périodique
des fichiers journaux permet de faciliter leur analyse,
- et de se faire une id&#233;e plus pr&#233;cise des habitudes
+ et de se faire une idée plus précise des habitudes
d'utilisation.
</p>
- <p>Sur les syst&#232;mes unix, vous pouvez simplement
+ <p>Sur les systèmes unix, vous pouvez simplement
effectuer cette rotation en changeant le nom du fichier
- journal via la commande mv. Le serveur continuera &#224;
- &#233;crire dans le fichier ouvert m&#234;me s'il a chang&#233; de nom.
- Lorsque vous enverrez un signal de red&#233;marrage
+ journal via la commande mv. Le serveur continuera à
+ écrire dans le fichier ouvert même s'il a changé de nom.
+ Lorsque vous enverrez un signal de redémarrage
"Graceful" au serveur, il ouvrira un nouveau fichier
- journal avec le nom configur&#233; par d&#233;faut. Par exemple,
- vous pouvez &#233;crire un script de ce style pour cron :
+ journal avec le nom configuré par défaut. Par exemple,
+ vous pouvez écrire un script de ce style pour cron :
</p>
@@ -658,30 +658,30 @@ Swap: 3903784 12540 3891244</pre></div>
<p>Cette approche fonctionne aussi sous Windows, mais
avec moins de souplesse. Alors que le processus httpd de
- votre serveur sous Windows continuera &#224; &#233;crire dans le
- fichier journal une fois ce dernier renomm&#233;, le service
- Windows qui ex&#233;cute Apache n'est pas en mesure
- d'effectuer un red&#233;marrage graceful. Sous Windows, le
- red&#233;marrage d'un service consiste simplement &#224; l'arr&#234;ter
- et &#224; le d&#233;marrer &#224; nouveau, alors qu'avec un red&#233;marrage
+ votre serveur sous Windows continuera à écrire dans le
+ fichier journal une fois ce dernier renommé, le service
+ Windows qui exécute Apache n'est pas en mesure
+ d'effectuer un redémarrage graceful. Sous Windows, le
+ redémarrage d'un service consiste simplement à l'arrêter
+ et à le démarrer à nouveau, alors qu'avec un redémarrage
graceful, les processus enfants terminent
- le traitement des requ&#234;tes en cours avant de s'arr&#234;ter,
- et le serveur httpd est alors imm&#233;diatement &#224;
- nouveau disponible pour traiter les nouvelles requ&#234;tes.
- Sous Windows, le processus d'arr&#234;t/red&#233;marrage du
- service interrompt les traitements de requ&#234;tes en cours,
- et le serveur demeure indisponible jusqu'&#224; ce qu'il ait
- termin&#233; son red&#233;marrage. Vous devez donc tenir compte de
+ le traitement des requêtes en cours avant de s'arrêter,
+ et le serveur httpd est alors immédiatement à
+ nouveau disponible pour traiter les nouvelles requêtes.
+ Sous Windows, le processus d'arrêt/redémarrage du
+ service interrompt les traitements de requêtes en cours,
+ et le serveur demeure indisponible jusqu'à ce qu'il ait
+ terminé son redémarrage. Vous devez donc tenir compte de
toutes ces contraintes lorsque vous planifiez un
- red&#233;marrage.
+ redémarrage.
</p>
<p>
- Une seconde approche consiste &#224; utiliser la
+ Une seconde approche consiste à utiliser la
redirection des logs. Les directives <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>,
<code class="directive"><a href="../mod/mod_log_config.html#transferlog">TransferLog</a></code> ou
<code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code>
- permettent de rediriger les donn&#233;es de journalisation
- vers tout programme via le caract&#232;re pipe
+ permettent de rediriger les données de journalisation
+ vers tout programme via le caractère pipe
(<code>|</code>) comme dans cet exemple :
</p>
@@ -690,15 +690,15 @@ Swap: 3903784 12540 3891244</pre></div>
</code></p></div>
<p>Le programme cible de la redirection recevra alors les
- donn&#233;es de journalisation d'Apache sur son entr&#233;e
+ données de journalisation d'Apache sur son entrée
standard stdin, et pourra en faire ce qu'il voudra. Le
programme rotatelogs fourni avec Apache effectue une
- rotation des journaux de mani&#232;re transparente en
- fonction du temps ou de la quantit&#233; de donn&#233;es &#233;crites,
+ rotation des journaux de manière transparente en
+ fonction du temps ou de la quantité de données écrites,
et archive l'ancien fichier journal en ajoutant un
- suffixe d'horodatage &#224; son nom. Cependant, si cette
- m&#233;thode fonctionne de mani&#232;re satisfaisante sur les
- plateformes de style unix, il n'en est pas de m&#234;me sous
+ suffixe d'horodatage à son nom. Cependant, si cette
+ méthode fonctionne de manière satisfaisante sur les
+ plateformes de style unix, il n'en est pas de même sous
Windows.
</p>
@@ -707,56 +707,56 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="logging-and-performance" id="logging-and-performance">Journalisation et performances
</a></h4>
- <p>L'&#233;criture d'entr&#233;es dans les fichiers journaux est
+ <p>L'écriture d'entrées dans les fichiers journaux est
consommatrice de ressources, mais l'importance de ces
- donn&#233;es est telle qu'il est fortement d&#233;conseill&#233; de
- d&#233;sactiver la journalisation. Pour optimiser les
+ données est telle qu'il est fortement déconseillé de
+ désactiver la journalisation. Pour optimiser les
performances, vous devez enregistrer vos journaux sur un
- disque physique diff&#233;rent de celui o&#249; se situe votre
- site web car les modes d'acc&#232;s sont tr&#232;s diff&#233;rents. La
- lecture de donn&#233;es sur un disque poss&#232;de un caract&#232;re
- essentiellement al&#233;atoire, alors que l'&#233;criture dans les
- fichiers journaux s'effectue de mani&#232;re s&#233;quentielle.
+ disque physique différent de celui où se situe votre
+ site web car les modes d'accès sont très différents. La
+ lecture de données sur un disque possède un caractère
+ essentiellement aléatoire, alors que l'écriture dans les
+ fichiers journaux s'effectue de manière séquentielle.
</p>
<p>
- Ne d&#233;finissez jamais la directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> &#224; debug pour un
+ Ne définissez jamais la directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> à debug pour un
serveur en production. En effet, lorsque ce niveau de
- journalisation est d&#233;fini, une grande quantit&#233; de
- donn&#233;es est &#233;crite dans le journal des erreurs, y
- compris, dans le cas d'un acc&#232;s SSL, toutes les
- op&#233;rations de lecture/&#233;criture de la n&#233;gociation de la
- connexion. Les implications en mati&#232;re de performances
- sont donc importantes et vous devez plut&#244;t utiliser le
+ journalisation est défini, une grande quantité de
+ données est écrite dans le journal des erreurs, y
+ compris, dans le cas d'un accès SSL, toutes les
+ opérations de lecture/écriture de la négociation de la
+ connexion. Les implications en matière de performances
+ sont donc importantes et vous devez plutôt utiliser le
niveau de journalisation warn.
</p>
- <p>Si votre serveur poss&#232;de plus d'un serveur virtuel,
- il est conseill&#233; d'attribuer un journal des acc&#232;s s&#233;par&#233; &#224;
+ <p>Si votre serveur possède plus d'un serveur virtuel,
+ il est conseillé d'attribuer un journal des accès séparé à
chacun d'entre eux, ce qui a pour effet de faciliter son
- exploitation ult&#233;rieure. Par contre, si votre serveur
- poss&#232;de un grand nombre de serveurs virtuels, le nombre
- de fichiers journaux &#224; ouvrir va repr&#233;senter une
+ exploitation ultérieure. Par contre, si votre serveur
+ possède un grand nombre de serveurs virtuels, le nombre
+ de fichiers journaux à ouvrir va représenter une
consommation de ressources importante pour votre
- syst&#232;me, et il sera peut-&#234;tre alors plus judicieux
- d'utiliser un seul fichier journal avec l'am&#233;nagement
- suivant : utiliser l'&#233;l&#233;ment de format <code>%v</code>
- en t&#234;te de votre directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> (et de
+ système, et il sera peut-être alors plus judicieux
+ d'utiliser un seul fichier journal avec l'aménagement
+ suivant : utiliser l'élément de format <code>%v</code>
+ en tête de votre directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> (et de
votre directive <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code> depuis la version
2.3.8) afin que httpd enregistre le nom du serveur
- virtuel qui traite la requ&#234;te ou l'erreur au d&#233;but de
- chaque entr&#233;e du journal. Un simple script Perl peut
- alors &#233;clater le journal en fichiers sp&#233;cifiques &#224;
- chaque serveur virtuel apr&#232;s sa rotation ; Apache
- fournit un tel script dans le r&#233;pertoire
+ virtuel qui traite la requête ou l'erreur au début de
+ chaque entrée du journal. Un simple script Perl peut
+ alors éclater le journal en fichiers spécifiques à
+ chaque serveur virtuel après sa rotation ; Apache
+ fournit un tel script dans le répertoire
<code>support/split-logfile</code>.
</p>
<p>
Vous pouvez aussi utiliser la directive <code class="directive"><a href="../mod/mod_log_config.html#bufferedlogs">BufferedLogs</a></code>
- pour qu'Apache conserve en m&#233;moire plusieurs entr&#233;es
- de journal avant de les &#233;crire sur disque. Gardez
- cependant &#224; l'esprit que si les performances peuvent
- s'en trouver am&#233;lior&#233;es, la chronologie des
- &#233;v&#232;nements enregistr&#233;s peut quant &#224; elle s'en
- trouver affect&#233;e.
+ pour qu'Apache conserve en mémoire plusieurs entrées
+ de journal avant de les écrire sur disque. Gardez
+ cependant à l'esprit que si les performances peuvent
+ s'en trouver améliorées, la chronologie des
+ évènements enregistrés peut quant à elle s'en
+ trouver affectée.
</p>
@@ -766,48 +766,48 @@ Swap: 3903784 12540 3891244</pre></div>
</a></h3>
<p>Il est interessant de mettre en oeuvre une charge de test
- afin d'&#233;valuer les performances du syst&#232;me en conditions
- r&#233;elles de fonctionnement. A cet effet, il existe des
+ afin d'évaluer les performances du système en conditions
+ réelles de fonctionnement. A cet effet, il existe des
paquets commerciaux comme <a href="http://learnloadrunner.com/">LoadRunner</a>, mais
- aussi de nombreux outils libres permettant de g&#233;n&#233;rer une
+ aussi de nombreux outils libres permettant de générer une
charge de test pour votre serveur web.
</p>
<ul>
- <li>Apache est fourni avec un programme de test nomm&#233; ab
- (initiales de Apache Bench). Ce dernier peut g&#233;n&#233;rer une
- charge de serveur web consistant &#224; demander le m&#234;me
- fichier de mani&#232;re r&#233;p&#233;titive &#224; un rythme rapide. Vous
- pouvez sp&#233;cifier le nombre de connexions simultan&#233;es, et
- choisir entre une dur&#233;e de fonctionnement ou un nombre
- de requ&#234;tes.
+ <li>Apache est fourni avec un programme de test nommé ab
+ (initiales de Apache Bench). Ce dernier peut générer une
+ charge de serveur web consistant à demander le même
+ fichier de manière répétitive à un rythme rapide. Vous
+ pouvez spécifier le nombre de connexions simultanées, et
+ choisir entre une durée de fonctionnement ou un nombre
+ de requêtes.
</li>
- <li>http load11 est un autre exemple de g&#233;n&#233;rateur de
+ <li>http load11 est un autre exemple de générateur de
charge libre. Ce programme fonctionne avec un ficher
- d'URLs et peut &#234;tre compil&#233; avec le support SSL.
+ d'URLs et peut être compilé avec le support SSL.
</li>
- <li>L'Apache Software Foundation propose un outil nomm&#233;
- flood12. Flood est un programme assez sophistiqu&#233; que
+ <li>L'Apache Software Foundation propose un outil nommé
+ flood12. Flood est un programme assez sophistiqué que
l'on configure via un fichier XML.
</li>
<li>Pour finir, JMeter13, un sous-projet de Jakarta, est
- un outil de test en charge enti&#232;rement en Java. Alors
- que les premi&#232;res versions de cette application &#233;taient
+ un outil de test en charge entièrement en Java. Alors
+ que les premières versions de cette application étaient
lentes et difficiles d'utilisation, la version 2.1.1
- actuelle semble &#234;tre plus souple d'utilisation et
+ actuelle semble être plus souple d'utilisation et
efficace.
</li>
<li>
- <p>Des projets externes &#224; l'ASF et r&#233;put&#233;s
+ <p>Des projets externes à l'ASF et réputés
relativement corrects : grinder, httperf, tsung, <a href="http://funkload.nuxeo.org/">FunkLoad</a>.
</p>
</li>
</ul>
- <p>Lorsque vous appliquez une charge de test &#224; votre serveur
- web, gardez &#224; l'esprit que si ce dernier est en production,
- la charge de test peut en affecter n&#233;gativement les
- performances. En outre, le transfert de donn&#233;es
- suppl&#233;mentaires induit peut &#234;tre comptabilis&#233; dans le
- quota mensuel qui vous a &#233;t&#233; &#233;ventuellement allou&#233;.
+ <p>Lorsque vous appliquez une charge de test à votre serveur
+ web, gardez à l'esprit que si ce dernier est en production,
+ la charge de test peut en affecter négativement les
+ performances. En outre, le transfert de données
+ supplémentaires induit peut être comptabilisé dans le
+ quota mensuel qui vous a été éventuellement alloué.
</p>
@@ -822,46 +822,46 @@ Swap: 3903784 12540 3891244</pre></div>
<h3><a name="apache-configuration" id="apache-configuration">Configuration de httpd
</a></h3>
- <p>httpd version 2.2 est par d&#233;faut un serveur web avec des
- processus enfants lanc&#233;s au pr&#233;alable. Au d&#233;marrage du
+ <p>httpd version 2.2 est par défaut un serveur web avec des
+ processus enfants lancés au préalable. Au démarrage du
serveur, le processus parent lance un certain nombre de
- processus enfants et ce sont eux qui seront charg&#233;s de traiter les
- requ&#234;tes. Mais avec httpd version 2.0 est apparu le concept
- de module multi-process (MPM). Les d&#233;veloppeurs purent alors
- &#233;crire des MPMs qui pouvaient fonctionner avec l'architecture
- &#224; base de processus ou de threads de leur syst&#232;me
- d'exploitation sp&#233;cifique. Apache 2 est fourni avec des MPMs
- sp&#233;cifiques pour Windows, OS/2, Netware et BeOS. Pour les
+ processus enfants et ce sont eux qui seront chargés de traiter les
+ requêtes. Mais avec httpd version 2.0 est apparu le concept
+ de module multi-process (MPM). Les développeurs purent alors
+ écrire des MPMs qui pouvaient fonctionner avec l'architecture
+ à base de processus ou de threads de leur système
+ d'exploitation spécifique. Apache 2 est fourni avec des MPMs
+ spécifiques pour Windows, OS/2, Netware et BeOS. Pour les
plateformes de style unix, les deux MPMS les plus connus
- sont Prefork et Worker. Le MPM Prefork offre le m&#234;me mod&#232;le
- de processus enfants pr&#233;lanc&#233;s que celui d'Apache 1.3. Le
- MPM Worker quant &#224; lui, lance un nombre de processus enfants
- moins important, mais attribue &#224; chacun d'entre eux un
- certain nombre de threads pour traiter les requ&#234;tes. Avec la
- version 2.4, le MPM n'est plus d&#233;fini &#224; la compilation,
- mais peut &#234;tre charg&#233; &#224; l'ex&#233;cution via la directive
+ sont Prefork et Worker. Le MPM Prefork offre le même modèle
+ de processus enfants prélancés que celui d'Apache 1.3. Le
+ MPM Worker quant à lui, lance un nombre de processus enfants
+ moins important, mais attribue à chacun d'entre eux un
+ certain nombre de threads pour traiter les requêtes. Avec la
+ version 2.4, le MPM n'est plus défini à la compilation,
+ mais peut être chargé à l'exécution via la directive
<code class="directive"><a href="../mod/core.html#loadmodule">LoadModule</a></code>. Le MPM par
- d&#233;faut pour la version 2.4 est le MPM event.
+ défaut pour la version 2.4 est le MPM event.
</p>
- <p>Le nombre maximum de process, &#224; savoir le nombre de processus
- enfants pr&#233;lanc&#233;s et/ou de threads, donne une approximation
- du nombre de requ&#234;tes que votre serveur peut traiter
- simultan&#233;ment. Ce n'est cependant qu'une estimation car le
+ <p>Le nombre maximum de process, à savoir le nombre de processus
+ enfants prélancés et/ou de threads, donne une approximation
+ du nombre de requêtes que votre serveur peut traiter
+ simultanément. Ce n'est cependant qu'une estimation car le
noyau peut mettre en file d'attente des tentatives de
- connexion &#224; votre serveur. Lorsque votre site approche de la
+ connexion à votre serveur. Lorsque votre site approche de la
saturation et si le nombre maximum de process est atteint, la
machine n'impose pas de limite absolue au
- del&#224; de laquelle les clients se verront refuser l'acc&#232;s.
- Cependant, lorsque les requ&#234;tes commencent &#224; &#234;tre mises en
- file d'attente, les performances du syst&#232;me se d&#233;gradent
+ delà de laquelle les clients se verront refuser l'accès.
+ Cependant, lorsque les requêtes commencent à être mises en
+ file d'attente, les performances du système se dégradent
rapidement.
</p>
- <p>Enfin, si le serveur httpd en question n'ex&#233;cute aucun
+ <p>Enfin, si le serveur httpd en question n'exécute aucun
code tiers via <code>mod_php</code>, <code>mod_perl</code>,
etc..., nous recommandons l'utilisation de
- <code class="module">mpm_event</code>. Ce MPM est id&#233;al pour les
- situations o&#249; httpd sert d'interm&#233;diaire entre les clients
- et des serveurs d'arri&#232;re-plan qui accomplissent le travail
+ <code class="module">mpm_event</code>. Ce MPM est idéal pour les
+ situations où httpd sert d'intermédiaire entre les clients
+ et des serveurs d'arrière-plan qui accomplissent le travail
proprement dit (par exemple en mode mandataire ou cache).
</p>
@@ -870,14 +870,14 @@ Swap: 3903784 12540 3891244</pre></div>
</a></h4>
<p>La directive <code>MaxClients</code> permet de
- sp&#233;cifier le nombre maximum de process que votre serveur
- pourra cr&#233;er. Deux autres directives lui sont associ&#233;es
+ spécifier le nombre maximum de process que votre serveur
+ pourra créer. Deux autres directives lui sont associées
: <code>MinSpareServers</code> et
<code>MaxSpareServers</code>, qui permettent d'encadrer
- le nombre de process que httpd garde en r&#233;serve pour
- traiter les requ&#234;tes. Le nombre total de process que
- httpd peut cr&#233;er peut
- &#234;tre d&#233;fini via la directive <code>ServerLimit</code>.
+ le nombre de process que httpd garde en réserve pour
+ traiter les requêtes. Le nombre total de process que
+ httpd peut créer peut
+ être défini via la directive <code>ServerLimit</code>.
</p>
@@ -885,18 +885,18 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="spinning-threads" id="spinning-threads">Rotation des threads
</a></h4>
- <p>Les directives ci-dessus suffisent pour d&#233;finir les
+ <p>Les directives ci-dessus suffisent pour définir les
limites des nombres de process dans le cas du MPM Prefork.
- Cependant, si vous utilisez un MPM &#224; base de threads, la
- situation est un peu plus compliqu&#233;e. Les MPMs &#224; base de
+ Cependant, si vous utilisez un MPM à base de threads, la
+ situation est un peu plus compliquée. Les MPMs à base de
threads supportent la directive
<code>ThreadsPerChild</code>. httpd impose le fait que
- <code>MaxClients</code> doit &#234;tre divisible par
+ <code>MaxClients</code> doit être divisible par
<code>ThreadsPerChild</code>. Si les valeurs que vous
- attribuez &#224; ces deux directives ne respectent pas cette
- r&#232;gle, httpd affichera un message d'erreur et corrigera
+ attribuez à ces deux directives ne respectent pas cette
+ règle, httpd affichera un message d'erreur et corrigera
la valeur de la directive <code>ThreadsPerChild</code>
- en la diminuant jusqu'&#224; ce que la valeur de la directive
+ en la diminuant jusqu'à ce que la valeur de la directive
<code>MaxClients</code> soit divisible par elle.
</p>
@@ -905,68 +905,68 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="sizing-maxClients" id="sizing-maxClients">Choix de la valeur de MaxClients
</a></h4>
- <p>Id&#233;alement, le nombre maximum de processus devrait
- &#234;tre choisi de fa&#231;on &#224; ce que toute la m&#233;moire syst&#232;me
- soit utilis&#233;e, sans la d&#233;passer. En effet, si votre
- syst&#232;me est surcharg&#233; au point de devoir faire appel de
- mani&#232;re intensive au swap (utilisation de la m&#233;moire
- disque), les performances vont se d&#233;grader rapidement.
- La formule permettant de d&#233;terminer la valeur de
+ <p>Idéalement, le nombre maximum de processus devrait
+ être choisi de façon à ce que toute la mémoire système
+ soit utilisée, sans la dépasser. En effet, si votre
+ système est surchargé au point de devoir faire appel de
+ manière intensive au swap (utilisation de la mémoire
+ disque), les performances vont se dégrader rapidement.
+ La formule permettant de déterminer la valeur de
<code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxClients</a></code>
est assez simple :
</p>
<div class="example"><p><code>
- MaxClients = (RAM totale &#8722; RAM syst&#232;me &#8722; RAM pour
- les programmes externes) divis&#233; par la RAM n&#233;cessaire pour
+ MaxClients = (RAM totale &#8722; RAM système &#8722; RAM pour
+ les programmes externes) divisé par la RAM nécessaire pour
chaque processus enfant.
</code></p></div>
- <p>L'observation est la meilleure mani&#232;re de d&#233;terminer
- les diff&#233;rentes quantit&#233;s de m&#233;moire allou&#233;es au
- syst&#232;me, aux programmes externes et aux processus httpd
- : &#224; cet effet, vous pouvez utiliser les commandes top et
- free d&#233;crites plus haut pour &#233;tudier l'empreinte m&#233;moire
- du syst&#232;me lorsque le serveur web n'est pas en cours
- d'ex&#233;cution. Vous pouvez aussi &#233;tudier l'empreinte d'un
+ <p>L'observation est la meilleure manière de déterminer
+ les différentes quantités de mémoire allouées au
+ système, aux programmes externes et aux processus httpd
+ : à cet effet, vous pouvez utiliser les commandes top et
+ free décrites plus haut pour étudier l'empreinte mémoire
+ du système lorsque le serveur web n'est pas en cours
+ d'exécution. Vous pouvez aussi étudier l'empreinte d'un
processus type du serveur web via la commande top ; en
- effet, la plupart des impl&#233;mentations de cette commande
- pr&#233;sentent une colonne M&#233;moire r&#233;sidente (RSS - Resident
- Size) et M&#233;moire partag&#233;e (Shared Memory).
- </p>
- <p>La diff&#233;rence entre ces deux colonnes est la
- quantit&#233; de m&#233;moire par processus. Le segment de m&#233;moire
- partag&#233;e n'existe effectivement qu'une seule fois, et
- est utilis&#233; par le code et les biblioth&#232;ques charg&#233;es et
- la concurrence inter-processus (ou tableau de r&#233;sultat -
- scoreboard) g&#233;r&#233; par Apache. La quantit&#233; de m&#233;moire
- utilis&#233;e par chaque processus d&#233;pend fortement du nombre
- et du type de modules utilis&#233;s. La meilleure fa&#231;on d'en
- d&#233;terminer les besoins consiste &#224; g&#233;n&#233;rer une charge
- type pour votre site web et &#224; observer l'importance que
+ effet, la plupart des implémentations de cette commande
+ présentent une colonne Mémoire résidente (RSS - Resident
+ Size) et Mémoire partagée (Shared Memory).
+ </p>
+ <p>La différence entre ces deux colonnes est la
+ quantité de mémoire par processus. Le segment de mémoire
+ partagée n'existe effectivement qu'une seule fois, et
+ est utilisé par le code et les bibliothèques chargées et
+ la concurrence inter-processus (ou tableau de résultat -
+ scoreboard) géré par Apache. La quantité de mémoire
+ utilisée par chaque processus dépend fortement du nombre
+ et du type de modules utilisés. La meilleure façon d'en
+ déterminer les besoins consiste à générer une charge
+ type pour votre site web et à observer l'importance que
prennent les processus httpd.
</p>
<p>La RAM pour les programmes externes comprend
- principalement la m&#233;moire utilis&#233;e pour les programmes
- CGI et les scripts qui s'ex&#233;cutent ind&#233;pendamment des
+ principalement la mémoire utilisée pour les programmes
+ CGI et les scripts qui s'exécutent indépendamment des
processus httpd. Par contre, si vous utilisez une
- machine virtuelle Java qui ex&#233;cute Tomcat sur le m&#234;me
- serveur, cette derni&#232;re va aussi n&#233;cessiter une quantit&#233;
- de m&#233;moire significative. En cons&#233;quence, la formule
- ci-dessus qui sert &#224; calculer la valeur maximale de
- <code>MaxClients</code> permet d'effectuer une premi&#232;re approche,
+ machine virtuelle Java qui exécute Tomcat sur le même
+ serveur, cette dernière va aussi nécessiter une quantité
+ de mémoire significative. En conséquence, la formule
+ ci-dessus qui sert à calculer la valeur maximale de
+ <code>MaxClients</code> permet d'effectuer une première approche,
mais ne constitue en aucun cas une science exacte. En
cas de doute, soyez pragmatique et utilisez une valeur assez
basse pour <code>MaxClients</code>. Le noyau Linux
- r&#233;serve une certaine quantit&#233; de m&#233;moire pour la mise en
- cache des acc&#232;s disque. Sous Solaris par contre, il faut disposer
- de suffisamment de m&#233;moire RAM pour cr&#233;er un processus,
- et si ce n'est pas le cas, httpd va d&#233;marrer avec un
+ réserve une certaine quantité de mémoire pour la mise en
+ cache des accès disque. Sous Solaris par contre, il faut disposer
+ de suffisamment de mémoire RAM pour créer un processus,
+ et si ce n'est pas le cas, httpd va démarrer avec un
message d'erreur du style "No space left on device" dans
- le journal des erreurs, et sera incapable de cr&#233;er
+ le journal des erreurs, et sera incapable de créer
d'autres processus httpd enfants ; une valeur trop
- &#233;lev&#233;e pour <code>MaxClients</code> constituera alors
- r&#233;ellement un d&#233;savantage.
+ élevée pour <code>MaxClients</code> constituera alors
+ réellement un désavantage.
</p>
@@ -974,46 +974,46 @@ Swap: 3903784 12540 3891244</pre></div>
</a></h4>
<p>La commutation entre threads est plus
- ais&#233;e pour le syst&#232;me, et ceux-ci consomment moins de
+ aisée pour le système, et ceux-ci consomment moins de
ressources que les processus ; c'est la raison
- principale pour laquelle il est recommand&#233; de choisir un
- MPM thread&#233;. Et
- ceci est encore plus flagrant pour certains syst&#232;mes
+ principale pour laquelle il est recommandé de choisir un
+ MPM threadé. Et
+ ceci est encore plus flagrant pour certains systèmes
d'exploitation que pour d'autres. Par exemple, sous
Solaris ou AIX, la manipulation des processus est assez
- lourde en termes de ressources syst&#232;me ; l'utilisation
- d'un MPM thread&#233; est donc tout &#224; fait indiqu&#233;e pour ces
- syst&#232;mes. Sous Linux en revanche, l'impl&#233;mentation des
+ lourde en termes de ressources système ; l'utilisation
+ d'un MPM threadé est donc tout à fait indiquée pour ces
+ systèmes. Sous Linux en revanche, l'implémentation des
threads utilise en fait un processus par thread. Les
- processus Linux sont assez l&#233;gers, mais cela signifie qu'un
- MPM thread&#233; pr&#233;sentera ici un gain en performance
- moindre que sous d'autres syst&#232;mes.
+ processus Linux sont assez légers, mais cela signifie qu'un
+ MPM threadé présentera ici un gain en performance
+ moindre que sous d'autres systèmes.
</p>
<p>Dans certaines situations cependant, l'utilisation
- d'un MPM thread&#233; peut induire des probl&#232;mes de
- stabilit&#233;. Par exemple, si un processus enfant du MPM
+ d'un MPM threadé peut induire des problèmes de
+ stabilité. Par exemple, si un processus enfant du MPM
prefork se crashe, au plus une connexion client sera
- affect&#233;e ; par contre, si un processus enfant thread&#233; se
+ affectée ; par contre, si un processus enfant threadé se
crashe, ce sont tous les threads de ce processus qui
- vont se crasher &#224; leur tour, ce qui signifie que tous
- les clients qui &#233;taient servis par ce processus verront
- leur connexion interrompue. De plus, certains probl&#232;mes
- de s&#233;curit&#233; des threads ("thread-safety")
- peuvent appara&#238;tre, particuli&#232;rement avec les
- biblioth&#232;ques tierces. Avec les applications thread&#233;es,
- les diff&#233;rents threads peuvent avoir acc&#232;s aux m&#234;mes
+ vont se crasher à leur tour, ce qui signifie que tous
+ les clients qui étaient servis par ce processus verront
+ leur connexion interrompue. De plus, certains problèmes
+ de sécurité des threads ("thread-safety")
+ peuvent apparaître, particulièrement avec les
+ bibliothèques tierces. Avec les applications threadées,
+ les différents threads peuvent avoir accès aux mêmes
variables sans distinction, sans savoir si une variable
- n'a pas &#233;t&#233; modifi&#233;e par un autre thread.
+ n'a pas été modifiée par un autre thread.
</p>
- <p>Ce probl&#232;me a fait l'objet d'un point sensible au
- sein de la communaut&#233; PHP car Le processeur PHP repose
- fortement sur des biblioth&#232;ques tierces, et il n'est pas
- garanti que la totalit&#233; d'entre elles soient
+ <p>Ce problème a fait l'objet d'un point sensible au
+ sein de la communauté PHP car Le processeur PHP repose
+ fortement sur des bibliothèques tierces, et il n'est pas
+ garanti que la totalité d'entre elles soient
"thread-safe". Bonne nouvelle cependant : si vous
- ex&#233;cutez Apache sous Linux, vous pouvez utiliser PHP
+ exécutez Apache sous Linux, vous pouvez utiliser PHP
avec le MPM prefork sans craindre une diminution de
- performance trop importante par rapport &#224; une option
- thread&#233;e.
+ performance trop importante par rapport à une option
+ threadée.
</p>
@@ -1021,24 +1021,24 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="spinning-locks" id="spinning-locks">Verrous tournants</a></h4>
<p>Apache httpd maintient un verrou inter-processus du
- point de vue de son &#233;coute du r&#233;seau. Dans les faits,
- cela signifie qu'un seul processus httpd enfant &#224; la
- fois peut recevoir une requ&#234;te. Ainsi, soient les autres
- processus en profitent alors pour traiter les requ&#234;tes
- qu'ils ont d&#233;j&#224; re&#231;ues, soient ils attendent de pouvoir
- &#224; leur tour r&#233;cup&#233;rer le verrou et ainsi &#233;couter le
- r&#233;seau pour recevoir une nouvelle requ&#234;te. Ceci peut se
+ point de vue de son écoute du réseau. Dans les faits,
+ cela signifie qu'un seul processus httpd enfant à la
+ fois peut recevoir une requête. Ainsi, soient les autres
+ processus en profitent alors pour traiter les requêtes
+ qu'ils ont déjà reçues, soient ils attendent de pouvoir
+ à leur tour récupérer le verrou et ainsi écouter le
+ réseau pour recevoir une nouvelle requête. Ceci peut se
voir comme une porte tournante par laquelle un seul
- processus peut passer &#224; la fois. Sur un serveur web
- fortement charg&#233; o&#249; les requ&#234;tes arrivent constamment,
- la porte tourne rapidement et les requ&#234;tes sont
- accept&#233;es &#224; un rythme soutenu. Sur un serveur faiblement
- charg&#233; en revanche, le processus qui "d&#233;tient"
+ processus peut passer à la fois. Sur un serveur web
+ fortement chargé où les requêtes arrivent constamment,
+ la porte tourne rapidement et les requêtes sont
+ acceptées à un rythme soutenu. Sur un serveur faiblement
+ chargé en revanche, le processus qui "détient"
le verrou est suceptible de garder sa porte ouverte un
certain temps durant lequel tous les autres processus
seront inactifs, attendant de pouvoir s'approprier le
verrou. Dans une telle situation, le processus parent
- pourra d&#233;cider d'arr&#234;ter quelques processus enfants en
+ pourra décider d'arrêter quelques processus enfants en
fonction de la valeur de la directive
<code>MaxSpareServers</code>.</p>
@@ -1046,70 +1046,70 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="the-thundering-herd" id="the-thundering-herd">L'assaut de la foule
</a></h4>
- <p>La fonction de l'"accept mutex" (c'est le nom donn&#233; au
- verrou inter-processus) consiste &#224; g&#233;rer la r&#233;ception
- des requ&#234;tes de mani&#232;re ordonn&#233;e. Si ce verrou est
+ <p>La fonction de l'"accept mutex" (c'est le nom donné au
+ verrou inter-processus) consiste à gérer la réception
+ des requêtes de manière ordonnée. Si ce verrou est
absent, le syndrome de l'"assaut de la foule" peut
- appara&#238;tre.
+ apparaître.
</p>
- <p>Imaginez une &#233;quipe de football am&#233;ricain en attente
+ <p>Imaginez une équipe de football américain en attente
devant la ligne de remise en jeu. Si les joueurs se
comportaient comme des processus Apache, ils se
- pr&#233;cipiteraient tous &#224; la fois pour r&#233;cup&#233;rer la balle au
+ précipiteraient tous à la fois pour récupérer la balle au
signal de la reprise. Un seul d'entre eux y
- parviendrait, et tous les autres n'auraient plus qu'&#224; se
- regrouper &#224; nouveau sur la ligne jusqu'&#224; la reprise
- suivante. Dans cette m&#233;taphore, c'est le quaterback qui
- va jouer le r&#244;le d'"accept mutex" en donnant la balle
- au joueur appropri&#233;.
- </p>
- <p>La transmission d'une telle quantit&#233; d'informations
- repr&#233;sente naturellement beaucoup de travail et, comme
+ parviendrait, et tous les autres n'auraient plus qu'à se
+ regrouper à nouveau sur la ligne jusqu'à la reprise
+ suivante. Dans cette métaphore, c'est le quaterback qui
+ va jouer le rôle d'"accept mutex" en donnant la balle
+ au joueur approprié.
+ </p>
+ <p>La transmission d'une telle quantité d'informations
+ représente naturellement beaucoup de travail et, comme
une personne intelligente, un serveur intelligent
- tentera d'&#233;viter cette surcharge dans la mesure du
- possible, d'o&#249; l'id&#233;e de la porte tournante. Dans les
- derni&#232;res ann&#233;es, de nombreux syst&#232;mes d'exploitation,
- comme Linux et Solaris, ont d&#233;velopp&#233; du code pour
- &#233;viter le syndrome de l'"assaut de la foule". Apache
- reconna&#238;t ce code, et si vous n'effectuez qu'une seule
- &#233;coute du r&#233;seau, autrement dit si vous n'utilisez que
+ tentera d'éviter cette surcharge dans la mesure du
+ possible, d'où l'idée de la porte tournante. Dans les
+ dernières années, de nombreux systèmes d'exploitation,
+ comme Linux et Solaris, ont développé du code pour
+ éviter le syndrome de l'"assaut de la foule". Apache
+ reconnaît ce code, et si vous n'effectuez qu'une seule
+ écoute du réseau, autrement dit si vous n'utilisez que
le serveur principal ou un seul serveur virtuel, Apache
n'utilisera pas d'"accept mutex" ; par contre, si vous
- effectuez plusieurs &#233;coutes du r&#233;seau (par exemple si
- un serveur virtuel sert les requ&#234;tes SSL), Apache
- utilisera un "accept mutex" afin d'&#233;viter les conflits
+ effectuez plusieurs écoutes du réseau (par exemple si
+ un serveur virtuel sert les requêtes SSL), Apache
+ utilisera un "accept mutex" afin d'éviter les conflits
internes.
</p>
<p>Vous pouvez manipuler l'"accept mutex" via la
- directive <code>AcceptMutex</code>. Cette derni&#232;re
+ directive <code>AcceptMutex</code>. Cette dernière
permet en particulier de fermer l'"accept mutex", mais
- aussi de s&#233;lectionner le m&#233;canisme de verrouillage. Les
- m&#233;canismes de verrouillage courants comprennent fcntl,
- les s&#233;maphores System V et le verrouillage par threads.
- Tous ne sont pas support&#233;s par toutes les plateformes,
- et leur disponibilit&#233; d&#233;pend aussi des options de
- compilation. Les diff&#233;rents m&#233;canismes de verrouillage
- peuvent avoir des exigences particuli&#232;res en mati&#232;re de
- ressources syst&#232;me ; il est donc recommand&#233; de les
- utiliser avec pr&#233;cautions.
- </p>
- <p>Il n'existe aucune raison particuli&#232;re pour
- d&#233;sactiver l'"accept mutex". Apache d&#233;termine
+ aussi de sélectionner le mécanisme de verrouillage. Les
+ mécanismes de verrouillage courants comprennent fcntl,
+ les sémaphores System V et le verrouillage par threads.
+ Tous ne sont pas supportés par toutes les plateformes,
+ et leur disponibilité dépend aussi des options de
+ compilation. Les différents mécanismes de verrouillage
+ peuvent avoir des exigences particulières en matière de
+ ressources système ; il est donc recommandé de les
+ utiliser avec précautions.
+ </p>
+ <p>Il n'existe aucune raison particulière pour
+ désactiver l'"accept mutex". Apache détermine
automatiquement s'il doit utiliser ou non mutex sur
- votre plateforme en fonction du nombre d'&#233;coutes r&#233;seau
- de votre serveur, comme d&#233;crit pr&#233;c&#233;demment.
+ votre plateforme en fonction du nombre d'écoutes réseau
+ de votre serveur, comme décrit précédemment.
</p>
- <h3><a name="tuning-the-operating-system" id="tuning-the-operating-system">Optimisation du syst&#232;me d'exploitation
+ <h3><a name="tuning-the-operating-system" id="tuning-the-operating-system">Optimisation du système d'exploitation
</a></h3>
- <p>Souvent, les utilisateurs recherchent le param&#232;tre magique qui va
- multiplier par quatre les performances de leur syst&#232;me. En
- fait, les syst&#232;mes de type Unix actuels sont d&#233;j&#224; optimis&#233;s
- &#224; l'origine, et il n'y a plus grand chose &#224; faire pour
- am&#233;liorer leurs performances. L'administrateur peut
+ <p>Souvent, les utilisateurs recherchent le paramètre magique qui va
+ multiplier par quatre les performances de leur système. En
+ fait, les systèmes de type Unix actuels sont déjà optimisés
+ à l'origine, et il n'y a plus grand chose à faire pour
+ améliorer leurs performances. L'administrateur peut
cependant encore effectuer quelques modifications qui
permettront de peaufiner la configuration.
</p>
@@ -1118,61 +1118,61 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="ram-and-swap-space" id="ram-and-swap-space">RAM et swap
</a></h4>
- <p>Le leitmotiv en mati&#232;re de m&#233;moire est souvent "plus
+ <p>Le leitmotiv en matière de mémoire est souvent "plus
on en a, mieux c'est". En effet, comme nous avons dit
- plus haut, la m&#233;moire inutilis&#233;e peut &#234;tre
- avantageusement utilis&#233;e comme cache du syst&#232;me de
+ plus haut, la mémoire inutilisée peut être
+ avantageusement utilisée comme cache du système de
fichiers. Plus vous chargez de modules, plus les processus
Apache grossissent, et ceci d'autant plus si vous
- utilisez des modules qui g&#233;n&#232;rent des contenus
+ utilisez des modules qui génèrent des contenus
dynamiques comme PHP et mod_perl. Un gros fichier de
configuration - avec de nombreux serveurs virtuels - a
- aussi tendance &#224; augmenter l'empreinte m&#233;moire des
- processus. Une quantit&#233; de m&#233;moire importante vous
- permettra d'ex&#233;cuter Apache avec plus de processus
- enfants, et donc de traiter d'avantage de requ&#234;tes
- simultan&#233;ment.
- </p>
- <p>M&#234;me si les diff&#233;rentes plateformes traitent leur
- m&#233;moire virtuelle de diff&#233;rentes mani&#232;res, il est
- d&#233;conseill&#233; de configurer un espace disque de swap
- inf&#233;rieur &#224; la m&#233;moire RAM. En effet, le syst&#232;me de m&#233;moire
- virtuelle a &#233;t&#233; con&#231;u de mani&#232;re &#224; prendre le relai
- lorsque la m&#233;moire RAM fait d&#233;faut, et lorsque l'espace
- disque, et donc l'espace de swap vient &#224; manquer, votre
- serveur risque de s'arr&#234;ter. Vous devrez alors
- red&#233;marrer physiquement votre serveur, et votre
- h&#233;bergeur pourra vous facturer le service.
- </p>
- <p>Evidemment, ce genre probl&#232;me survient au moment le
- plus d&#233;favorable : lorsque le monde vient d&#233;couvrir votre
- site web et se pr&#233;sente avec insistance &#224; votre porte.
- Si votre espace de swap est suffisant, m&#234;me si la
- machine sera de plus en plus surcharg&#233;e et deviendra
- tr&#232;s tr&#232;s lente car le syst&#232;me devra swapper les pages
- entre la m&#233;moire et le disque, lorsque la charge diminuera &#224;
- nouveau, le syst&#232;me reviendra dans son mode de
+ aussi tendance à augmenter l'empreinte mémoire des
+ processus. Une quantité de mémoire importante vous
+ permettra d'exécuter Apache avec plus de processus
+ enfants, et donc de traiter d'avantage de requêtes
+ simultanément.
+ </p>
+ <p>Même si les différentes plateformes traitent leur
+ mémoire virtuelle de différentes manières, il est
+ déconseillé de configurer un espace disque de swap
+ inférieur à la mémoire RAM. En effet, le système de mémoire
+ virtuelle a été conçu de manière à prendre le relai
+ lorsque la mémoire RAM fait défaut, et lorsque l'espace
+ disque, et donc l'espace de swap vient à manquer, votre
+ serveur risque de s'arrêter. Vous devrez alors
+ redémarrer physiquement votre serveur, et votre
+ hébergeur pourra vous facturer le service.
+ </p>
+ <p>Evidemment, ce genre problème survient au moment le
+ plus défavorable : lorsque le monde vient découvrir votre
+ site web et se présente avec insistance à votre porte.
+ Si votre espace de swap est suffisant, même si la
+ machine sera de plus en plus surchargée et deviendra
+ très très lente car le système devra swapper les pages
+ entre la mémoire et le disque, lorsque la charge diminuera à
+ nouveau, le système reviendra dans son mode de
fonctionnement normal. Rappelez-vous que vous disposez
- de la directive <code>MaxClients</code> pour garder le contr&#244;le.
+ de la directive <code>MaxClients</code> pour garder le contrôle.
</p>
- <p>La plupart des syst&#232;mes de type Unix utilisent des
- partitions d&#233;di&#233;es au swap. Au d&#233;marrage du syst&#232;me,
+ <p>La plupart des systèmes de type Unix utilisent des
+ partitions dédiées au swap. Au démarrage du système,
celui-ci enregistre toutes les partitions de swap du ou
des disques en fonction du type de la partition ou du
contenu du fichier <code>/etc/fstab</code> et les
- active de mani&#232;re automatique. Lorsque vous ajoutez un
- disque, ou lorsque vous installez le syst&#232;me
+ active de manière automatique. Lorsque vous ajoutez un
+ disque, ou lorsque vous installez le système
d'exploitation, assurez-vous d'allouer suffisamment
- d'espace de swap afin de rester en ad&#233;quation avec une
- &#233;ventuelle augmentation de la m&#233;moire RAM. La
- r&#233;allocation d'espace disque sur un syst&#232;me en
- production est en effet p&#233;nible et fastidieuse.
- </p>
- <p>Pr&#233;voyez un espace de swap de deux fois la taille de
- votre m&#233;moire RAM, et m&#234;me jusqu'&#224; quatre fois lorsque
- les surcharges peuvent s'av&#233;rer fr&#233;quentes. Assurez-vous
- de r&#233;ajuster ces valeurs lorsque vous augmentez la
- quantit&#233; de m&#233;moire RAM de votre syst&#232;me. En secours,
+ d'espace de swap afin de rester en adéquation avec une
+ éventuelle augmentation de la mémoire RAM. La
+ réallocation d'espace disque sur un système en
+ production est en effet pénible et fastidieuse.
+ </p>
+ <p>Prévoyez un espace de swap de deux fois la taille de
+ votre mémoire RAM, et même jusqu'à quatre fois lorsque
+ les surcharges peuvent s'avérer fréquentes. Assurez-vous
+ de réajuster ces valeurs lorsque vous augmentez la
+ quantité de mémoire RAM de votre système. En secours,
vous pouvez aussi utilisez un fichier comme espace de
swap. Pour ce faire, vous trouverez les instructions
dans les pages de manuel de <code>mkswap</code> et
@@ -1185,17 +1185,17 @@ Swap: 3903784 12540 3891244</pre></div>
<h4><a name="ulimit-files-and-processes" id="ulimit-files-and-processes">ulimit: fichiers et processus
</a></h4>
- <p>Supposons que vous disposiez d'une machine poss&#233;dant
- une &#233;norme quantit&#233; de m&#233;moire RAM et un processeur aux
- performances astronomiques ; vous pourrez alors ex&#233;cuter
+ <p>Supposons que vous disposiez d'une machine possédant
+ une énorme quantité de mémoire RAM et un processeur aux
+ performances astronomiques ; vous pourrez alors exécuter
des centaines de processus Apache selon vos besoins,
- mais tout en restant en de&#231;&#224; des limites impos&#233;es par le
- noyau de votre syst&#232;me.
+ mais tout en restant en deçà des limites imposées par le
+ noyau de votre système.
</p>
- <p>Consid&#233;rez maintenant une situation o&#249; plusieurs
- centaines de serveurs web sont en cours d'ex&#233;cution ; si
- certains d'entre eux doivent &#224; leur tour lancer des
- processus CGI, le nombre maximum de processus autoris&#233;
+ <p>Considérez maintenant une situation où plusieurs
+ centaines de serveurs web sont en cours d'exécution ; si
+ certains d'entre eux doivent à leur tour lancer des
+ processus CGI, le nombre maximum de processus autorisé
par le noyau sera vite atteint.
</p>
<p>Dans ce cas, vous pouvez modifier cette limite avec
@@ -1206,15 +1206,15 @@ Swap: 3903784 12540 3891244</pre></div>
ulimit [-H|-S] -u [nouvelle valeur]
</code></p></div>
- <p>Cette modification doit &#234;tre effectu&#233;e avant le
- d&#233;marrage du serveur, car la nouvelle valeur ne sera
+ <p>Cette modification doit être effectuée avant le
+ démarrage du serveur, car la nouvelle valeur ne sera
prise en compte que dans le shell courant et pour les
- programmes lanc&#233;s depuis ce dernier. Dans les derniers
- noyaux Linux, la valeur par d&#233;faut a &#233;t&#233; fix&#233;e &#224; 2048.
- Sous FreeBSD, ce nombre semble &#234;tre limit&#233; &#224; la valeur
- inhabituelle de 513. Dans le shell par d&#233;faut de ce
- syst&#232;me, <code>csh</code>, la commande &#233;quivalente est
- <code>limit</code> et poss&#232;de une syntaxe analogue &#224;
+ programmes lancés depuis ce dernier. Dans les derniers
+ noyaux Linux, la valeur par défaut a été fixée à 2048.
+ Sous FreeBSD, ce nombre semble être limité à la valeur
+ inhabituelle de 513. Dans le shell par défaut de ce
+ système, <code>csh</code>, la commande équivalente est
+ <code>limit</code> et possède une syntaxe analogue à
celle de la commande de style Bourne <code>ulimit</code> :
</p>
@@ -1223,12 +1223,12 @@ Swap: 3903784 12540 3891244</pre></div>
</code></p></div>
<p>En outre, le noyau peut limiter le nombre de fichiers
- ouverts par processus. Ce n'est g&#233;n&#233;ralement pas un
- probl&#232;me pour les serveurs dont les processus sont lanc&#233;s
- &#224; l'avance, et o&#249; chacun de ceux-ci ne traite qu'une
- requ&#234;te &#224; la fois. Les processus des serveurs thread&#233;s,
- quant &#224; eux, traitent plusieurs requ&#234;tes simultan&#233;ment,
- et sont d'avantage susceptibles de d&#233;passer la limite du
+ ouverts par processus. Ce n'est généralement pas un
+ problème pour les serveurs dont les processus sont lancés
+ à l'avance, et où chacun de ceux-ci ne traite qu'une
+ requête à la fois. Les processus des serveurs threadés,
+ quant à eux, traitent plusieurs requêtes simultanément,
+ et sont d'avantage susceptibles de dépasser la limite du
nombre de descripteurs de fichiers. Vous pouvez alors
augmenter cette valeur limite du nombre de fichiers
ouverts avec la commande :
@@ -1237,23 +1237,23 @@ Swap: 3903784 12540 3891244</pre></div>
<div class="example"><p><code>ulimit -n [newvalue]
</code></p></div>
- <p>L&#224; encore, cette modification doit &#234;tre effectu&#233;e
- avant le d&#233;marrage du serveur Apache.
+ <p>Là encore, cette modification doit être effectuée
+ avant le démarrage du serveur Apache.
</p>
- <h4><a name="setting-user-limits-on-system-startup" id="setting-user-limits-on-system-startup">D&#233;finition des limites en fonction de l'utilisateur ou du
- groupe au d&#233;marrage du syst&#232;me
+ <h4><a name="setting-user-limits-on-system-startup" id="setting-user-limits-on-system-startup">Définition des limites en fonction de l'utilisateur ou du
+ groupe au démarrage du système
</a></h4>
- <p>Sous Linux, vous pouvez d&#233;finir les param&#232;tres de
- ulimit au d&#233;marrage en &#233;ditant le fichier
+ <p>Sous Linux, vous pouvez définir les paramètres de
+ ulimit au démarrage en éditant le fichier
<code>/etc/security/limits.conf</code>. Ce fichier vous
- permet de d&#233;finir des limites "soft" et "hard"
+ permet de définir des limites "soft" et "hard"
en fonction de l'utilisateur ou du groupe ;
vous y trouverez aussi des commentaires explicatifs des
- diff&#233;rentes options. Pour que ce fichier soit pris en
+ différentes options. Pour que ce fichier soit pris en
compte, le fichier <code>/etc/pam.d/login</code> doit
contenir la ligne :
</p>
@@ -1261,26 +1261,26 @@ Swap: 3903784 12540 3891244</pre></div>
<div class="example"><p><code>session required /lib/security/pam_limits.so
</code></p></div>
- <p>Chaque item peut poss&#233;der une valeur "soft" et
- "hard" : la premi&#232;re est la valeur
- par d&#233;faut, et la seconde la valeur maximale de cet
+ <p>Chaque item peut posséder une valeur "soft" et
+ "hard" : la première est la valeur
+ par défaut, et la seconde la valeur maximale de cet
item.
</p>
<p>Dans le fichier <code>/etc/login.conf</code> de
- FreeBSD, ces valeurs peuvent &#234;tre limit&#233;es ou &#233;tendues &#224;
- tout le syst&#232;me de mani&#232;re analogue au fichier
+ FreeBSD, ces valeurs peuvent être limitées ou étendues à
+ tout le système de manière analogue au fichier
<code>limits.conf</code>. Les limites "soft" sont
- sp&#233;cifi&#233;es via le param&#232;tre <code>-cur</code>, et les
- limites "hard" via le param&#232;tre <code>-max</code>.
+ spécifiées via le paramètre <code>-cur</code>, et les
+ limites "hard" via le paramètre <code>-max</code>.
</p>
- <p>Solaris poss&#232;de un m&#233;canisme similaire pour manipuler
- les valeurs limites au d&#233;marrage du syst&#232;me : dans le
- fichier <code>/etc/system</code>, vous pouvez d&#233;finir au
- d&#233;marrage des param&#232;tres du noyau valables pour
- l'ensemble du syst&#232;me. Ce sont les m&#234;mes param&#232;tres que
- ceux d&#233;finis &#224; l'ex&#233;cution par le d&#233;bogueur de noyau
- <code>mdb</code>. Les commandes &#233;quivalentes &#224; ulimit -u
- pour d&#233;finir les limites hard et soft seront du style :
+ <p>Solaris possède un mécanisme similaire pour manipuler
+ les valeurs limites au démarrage du système : dans le
+ fichier <code>/etc/system</code>, vous pouvez définir au
+ démarrage des paramètres du noyau valables pour
+ l'ensemble du système. Ce sont les mêmes paramètres que
+ ceux définis à l'exécution par le débogueur de noyau
+ <code>mdb</code>. Les commandes équivalentes à ulimit -u
+ pour définir les limites hard et soft seront du style :
</p>
<div class="example"><p><code>
@@ -1289,8 +1289,8 @@ Swap: 3903784 12540 3891244</pre></div>
</code></p></div>
<p>Solaris calcule le nombre maximal de processus
- autoris&#233; par utilisateur (<code>maxuprc</code>) en
- fonction de la m&#233;moire syst&#232;me disponible
+ autorisé par utilisateur (<code>maxuprc</code>) en
+ fonction de la mémoire système disponible
(<code>maxusers</code>). Vous pouvez obtenir ces valeurs
avec la commande :
</p>
@@ -1298,44 +1298,44 @@ Swap: 3903784 12540 3891244</pre></div>
<div class="example"><p><code>sysdef -i | grep maximum
</code></p></div>
- <p>Il est cependant d&#233;conseill&#233; de les modifier.
+ <p>Il est cependant déconseillé de les modifier.
</p>
- <h4><a name="turn-off-unused-services-and-modules" id="turn-off-unused-services-and-modules">D&#233;sactiver les services et modules non utilis&#233;s
+ <h4><a name="turn-off-unused-services-and-modules" id="turn-off-unused-services-and-modules">Désactiver les services et modules non utilisés
</a></h4>
<p>Dans la plupart des distributions Unix et Linux, de
- nombreux services sont activ&#233;s par d&#233;faut, et vous n'
- avez probablement besoin que d'une minorit&#233; d'entre eux.
+ nombreux services sont activés par défaut, et vous n'
+ avez probablement besoin que d'une minorité d'entre eux.
Par exemple, votre serveur web n'a pas besoin de
- sendmail, de fournir le service NFS, etc... D&#233;sactivez
+ sendmail, de fournir le service NFS, etc... Désactivez
les tout simplement.
</p>
<p>Pour ce faire, sous RedHat Linux, vous
disposez de l'utilitaire chkconfig en ligne de commande.
Sous Solaris, les commandes <code>svcs</code> et
<code>svcadm</code> vous permettent respectivement
- de lister les services activ&#233;s et de d&#233;sactiver ceux
+ de lister les services activés et de désactiver ceux
dont vous n'avez pas besoin.
</p>
- <p>Vous devez aussi pr&#234;ter attention aux modules Apache
- charg&#233;s par d&#233;faut. La plupart des distributions binaires
- d'Apache httpd et des versions pr&#233;install&#233;es fournies
+ <p>Vous devez aussi prêter attention aux modules Apache
+ chargés par défaut. La plupart des distributions binaires
+ d'Apache httpd et des versions préinstallées fournies
avec les distributions de Linux chargent les modules
Apache via la directive
<code class="directive">LoadModule</code>.
</p>
- <p>Les modules inutilis&#233;s peuvent &#234;tre d&#233;sactiv&#233;s : si
- vous n'avez pas besoin de leurs fonctionnalit&#233;s et des
- directives de configuration qu'ils impl&#233;mentent,
- d&#233;sactivez-les en commentant les lignes
+ <p>Les modules inutilisés peuvent être désactivés : si
+ vous n'avez pas besoin de leurs fonctionnalités et des
+ directives de configuration qu'ils implémentent,
+ désactivez-les en commentant les lignes
<code class="directive">LoadModule</code> correspondantes. Vous
- devez cependant lire la documentation relative &#224; ces
- modules avant de les d&#233;sactiver, et garder &#224; l'esprit que
- la d&#233;sactivation d'un module tr&#232;s peu gourmand en
- ressources n'est pas absolument n&#233;cessaire.
+ devez cependant lire la documentation relative à ces
+ modules avant de les désactiver, et garder à l'esprit que
+ la désactivation d'un module très peu gourmand en
+ ressources n'est pas absolument nécessaire.
</p>
@@ -1346,23 +1346,23 @@ Swap: 3903784 12540 3891244</pre></div>
<h2><a name="caching-content" id="caching-content">Mise en cache des contenus
</a><a title="Lien permanent" href="#caching-content" class="permalink">&para;</a></h2>
- <p>Les requ&#234;tes impliquant des contenus dynamiques n&#233;cessitent
- en g&#233;n&#233;ral d'avantage de ressources que les
- requ&#234;tes pour des contenus statiques. Les contenus statiques
+ <p>Les requêtes impliquant des contenus dynamiques nécessitent
+ en général d'avantage de ressources que les
+ requêtes pour des contenus statiques. Les contenus statiques
consistent en simples pages issues de documents ou images
- sur disque, et sont servis tr&#232;s rapidement. En outre, de
- nombreux syst&#232;mes d'exploitation mettent automatiquement en
- cache en m&#233;moire les contenus des fichiers fr&#233;quemment acc&#233;d&#233;s.
+ sur disque, et sont servis très rapidement. En outre, de
+ nombreux systèmes d'exploitation mettent automatiquement en
+ cache en mémoire les contenus des fichiers fréquemment accédés.
</p>
- <p>Comme indiqu&#233; pr&#233;c&#233;demment, le traitement des requ&#234;tes dynamiques peut
- n&#233;cessiter beaucoup plus de ressources. L'ex&#233;cution de scripts
- CGI, le transfert de requ&#234;tes &#224; un serveur d'applications
- externe, ou les acc&#232;s &#224; une base de donn&#233;es peuvent impliquer
+ <p>Comme indiqué précédemment, le traitement des requêtes dynamiques peut
+ nécessiter beaucoup plus de ressources. L'exécution de scripts
+ CGI, le transfert de requêtes à un serveur d'applications
+ externe, ou les accès à une base de données peuvent impliquer
des temps d'attente et charges de travail significatifs pour un
- serveur web fortement sollicit&#233;. Dans de nombreuses
- circonstances, vous pourrez alors am&#233;liorer les performances en
- transformant les requ&#234;tes dynamiques courantes en requ&#234;tes
- statiques. Pour ce faire, deux approches seront discut&#233;es dans
+ serveur web fortement sollicité. Dans de nombreuses
+ circonstances, vous pourrez alors améliorer les performances en
+ transformant les requêtes dynamiques courantes en requêtes
+ statiques. Pour ce faire, deux approches seront discutées dans
la suite de cette section.
</p>
@@ -1371,20 +1371,20 @@ Swap: 3903784 12540 3891244</pre></div>
statiques
</a></h3>
- <p>En g&#233;n&#233;rant &#224; l'avance les r&#233;ponses pour les requ&#234;tes les
- plus courantes de votre application, vous pouvez am&#233;liorer
- de mani&#232;re significative les performances de votre serveur
- sans abandonner la flexibilit&#233; des contenus g&#233;n&#233;r&#233;s
+ <p>En générant à l'avance les réponses pour les requêtes les
+ plus courantes de votre application, vous pouvez améliorer
+ de manière significative les performances de votre serveur
+ sans abandonner la flexibilité des contenus générés
dynamiquement. Par exemple, si votre application est un
- service de livraison de fleurs, vous aurez tout int&#233;r&#234;t &#224;
- g&#233;n&#233;rer &#224; l'avance les pages de votre catalogue concernant
- les roses rouges dans les semaines pr&#233;c&#233;dant le jour de la
+ service de livraison de fleurs, vous aurez tout intérêt à
+ générer à l'avance les pages de votre catalogue concernant
+ les roses rouges dans les semaines précédant le jour de la
Saint Valentin. Lorsqu'un utilisateur cherchera des roses
- rouges, il t&#233;l&#233;chargera alors les pages g&#233;n&#233;r&#233;es &#224;
+ rouges, il téléchargera alors les pages générées à
l'avance. Par contre, les recherches de roses jaunes seront
- quant &#224; elles trait&#233;es directement via une requ&#234;te vers la
- base de donn&#233;es. Pour effectuer ces aiguillages de requ&#234;tes,
- vous disposez d'un outil particuli&#232;rement appropri&#233; fourni
+ quant à elles traitées directement via une requête vers la
+ base de données. Pour effectuer ces aiguillages de requêtes,
+ vous disposez d'un outil particulièrement approprié fourni
avec Apache : le module mod_rewrite.
</p>
@@ -1395,39 +1395,39 @@ Swap: 3903784 12540 3891244</pre></div>
<p>Blosxom est un programme CGI de journalisation web
- l&#233;ger. Il est &#233;crit en Perl et utilise des fichiers
- texte pour ses entr&#233;es. Outre sa qualit&#233; de programme
- CGI, Blosxom peut &#234;tre ex&#233;cut&#233; en ligne de commande pour
- g&#233;n&#233;rer &#224; l'avance des pages de blog. Lorsque votre blog
- commence &#224; &#234;tre lu par un grand nombre de personnes, la
- g&#233;n&#233;ration &#224; l'avance de pages en HTML satique peut
- am&#233;liorer de mani&#232;re significative les performances de
+ léger. Il est écrit en Perl et utilise des fichiers
+ texte pour ses entrées. Outre sa qualité de programme
+ CGI, Blosxom peut être exécuté en ligne de commande pour
+ générer à l'avance des pages de blog. Lorsque votre blog
+ commence à être lu par un grand nombre de personnes, la
+ génération à l'avance de pages en HTML satique peut
+ améliorer de manière significative les performances de
votre serveur.
</p>
- <p>Pour g&#233;n&#233;rer des pages statiques avec blosxom, &#233;ditez
- le script CGI selon la documentation. D&#233;finissez la
- variable $static dir &#224; la valeur de
+ <p>Pour générer des pages statiques avec blosxom, éditez
+ le script CGI selon la documentation. Définissez la
+ variable $static dir à la valeur de
<code class="directive">DocumentRoot</code> de votre serveur
- web, et ex&#233;cutez le script en ligne de commande comme
+ web, et exécutez le script en ligne de commande comme
suit :
</p>
<div class="example"><p><code>$ perl blosxom.cgi -password='whateveryourpassword'
</code></p></div>
- <p>Vous pouvez ex&#233;cuter ce script p&#233;riodiquement via
- cron, &#224; chaque fois que vous ajoutez un nouveau contenu. Pour
+ <p>Vous pouvez exécuter ce script périodiquement via
+ cron, à chaque fois que vous ajoutez un nouveau contenu. Pour
faire en sorte qu'Apache substitue les pages
statiques au contenu dynamique, nous
utiliserons mod_rewrite. Ce module est fourni avec le
- code source d'Apache, mais n'est pas compil&#233; par d&#233;faut.
+ code source d'Apache, mais n'est pas compilé par défaut.
Pour le compiler avec la distribution d'Apache, vous
pouvez utiliser l'option de la commande configure
<code>--enable-rewrite[=shared]</code>. De nombreuses
distributions binaires d'Apache sont fournies avec
<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> inclus. Dans l'exemple
suivant, un serveur virtuel Apache utilise les pages de
- blog g&#233;n&#233;r&#233;es &#224; l'avance :
+ blog générées à l'avance :
</p>
<pre class="prettyprint lang-config">Listen *:8001
@@ -1458,26 +1458,26 @@ Swap: 3903784 12540 3891244</pre></div>
<p>
Si les directives <code class="directive">RewriteCond</code>
- indiquent que la ressource demand&#233;e n'existe ni en tant que
- fichier, ni en tant que r&#233;pertoire, son
- chemin sera redirig&#233; par la directive
+ indiquent que la ressource demandée n'existe ni en tant que
+ fichier, ni en tant que répertoire, son
+ chemin sera redirigé par la directive
<code class="directive">RewriteRule</code> vers le programme
- CGI Blosxom qui va g&#233;n&#233;rer la r&#233;ponse. Blosxom
- utilise Path Info pour sp&#233;cifier les entr&#233;es de blog
+ CGI Blosxom qui va générer la réponse. Blosxom
+ utilise Path Info pour spécifier les entrées de blog
en tant que pages d'index, et si un chemin dans
- Blosxom existe en tant que fichier statique dans le syst&#232;me de
- fichiers, c'est ce dernier qui sera par cons&#233;quent privil&#233;gi&#233;.
- Toute requ&#234;te dont la r&#233;ponse n'a pas &#233;t&#233; g&#233;n&#233;r&#233;e &#224;
- l'avance sera trait&#233;e par le programme CGI. Cela
- signifie que les entr&#233;es individuelles comme les
+ Blosxom existe en tant que fichier statique dans le système de
+ fichiers, c'est ce dernier qui sera par conséquent privilégié.
+ Toute requête dont la réponse n'a pas été générée à
+ l'avance sera traitée par le programme CGI. Cela
+ signifie que les entrées individuelles comme les
commentaires seront toujours servies par le
programme CGI, et seront donc toujours visibles.
Cette configuration permet aussi de ne pas faire
- appara&#238;tre le programme CGI Blosxom dans l'URL de la barre
- d'adresse. Enfin, mod_rewrite est un module extr&#234;mement
+ apparaître le programme CGI Blosxom dans l'URL de la barre
+ d'adresse. Enfin, mod_rewrite est un module extrêmement
souple et puissant ; prenez le temps de bien
- l'&#233;tudier afin de parvenir &#224; la configuration qui
- correspondra le mieux &#224; votre situation.
+ l'étudier afin de parvenir à la configuration qui
+ correspondra le mieux à votre situation.
</p>
@@ -1486,42 +1486,42 @@ Swap: 3903784 12540 3891244</pre></div>
<h3><a name="caching-content-with-mod_cache" id="caching-content-with-mod_cache">Mise en cache du contenu avec mod_cache
</a></h3>
- <p>Le module mod_cache impl&#233;mente une mise en cache
- intelligente des r&#233;ponses HTTP : il tient compte des d&#233;lais
- de p&#233;remption et des contraintes en mati&#232;re de contenu
- inh&#233;rentes &#224; la sp&#233;cification HTTP. Le module mod_cache met
- en cache les URL des contenus des r&#233;ponses. Si un contenu envoy&#233; au
- client peut &#234;tre mis en cache, il est sauvegard&#233; sur disque.
- Les requ&#234;tes ult&#233;rieures pour cette URL seront alors servies
+ <p>Le module mod_cache implémente une mise en cache
+ intelligente des réponses HTTP : il tient compte des délais
+ de péremption et des contraintes en matière de contenu
+ inhérentes à la spécification HTTP. Le module mod_cache met
+ en cache les URL des contenus des réponses. Si un contenu envoyé au
+ client peut être mis en cache, il est sauvegardé sur disque.
+ Les requêtes ultérieures pour cette URL seront alors servies
directement depuis le cache. Le module fournisseur pour
- mod_cache, mod_disk_cache, d&#233;termine la mani&#232;re dont les
- contenus sont stock&#233;s sur disque. La plupart des syst&#232;mes de
- serveur poss&#232;dent plus d'espace disque que de m&#233;moire, et il
- est bon de garder &#224; l'esprit que certains noyaux syst&#232;me mettent en
- cache de mani&#232;re transparente en m&#233;moire les contenus sur
- disque fr&#233;quemment acc&#233;d&#233;s ; il n'est donc pas tr&#232;s utile de
- r&#233;p&#233;ter cette op&#233;ration au niveau du serveur.
+ mod_cache, mod_disk_cache, détermine la manière dont les
+ contenus sont stockés sur disque. La plupart des systèmes de
+ serveur possèdent plus d'espace disque que de mémoire, et il
+ est bon de garder à l'esprit que certains noyaux système mettent en
+ cache de manière transparente en mémoire les contenus sur
+ disque fréquemment accédés ; il n'est donc pas très utile de
+ répéter cette opération au niveau du serveur.
</p>
<p>Pour mettre en oeuvre une mise en cache de contenu
- efficace et &#233;viter de pr&#233;senter &#224; l'utilisateur un contenu
- invalide ou p&#233;rim&#233;, l'application qui g&#233;n&#232;re le contenu &#224;
- jour doit envoyer les en-t&#234;tes de r&#233;ponse corrects. En
- effet, en l'absence d'en-t&#234;tes comme <code>Etag:</code>,
+ efficace et éviter de présenter à l'utilisateur un contenu
+ invalide ou périmé, l'application qui génère le contenu à
+ jour doit envoyer les en-têtes de réponse corrects. En
+ effet, en l'absence d'en-têtes comme <code>Etag:</code>,
<code>Last-Modified:</code> ou <code>Expires:</code>,
- <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> ne sera pas en mesure de d&#233;cider
- de mani&#232;re appropri&#233;e
+ <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> ne sera pas en mesure de décider
+ de manière appropriée
s'il doit mettre le contenu en cache, s'il doit le servir
directement depuis ce dernier, ou s'il doit tout simplement
ne rien faire. Lorsque vous testerez la mise en cache, vous
- devrez peut-&#234;tre modifier votre application ou, en cas
- d'impossibilit&#233;, d&#233;sactiver de mani&#232;re s&#233;lective la mise en
- cache des URLs qui posent probl&#232;me. Les modules mod_cache ne
- sont pas compil&#233;s par d&#233;faut ; pour ce faire, vous devez
+ devrez peut-être modifier votre application ou, en cas
+ d'impossibilité, désactiver de manière sélective la mise en
+ cache des URLs qui posent problème. Les modules mod_cache ne
+ sont pas compilés par défaut ; pour ce faire, vous devez
utiliser l'option <code>--enable-cache[=shared]</code> du
script configure. Si vous utilisez une distribution binaire
d'Apache httpd, ou si elle fait partie de votre portage ou
- de votre s&#233;lection de paquets, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
- sera probablement d&#233;j&#224; inclus.
+ de votre sélection de paquets, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
+ sera probablement déjà inclus.
</p>
@@ -1531,33 +1531,33 @@ Swap: 3903784 12540 3891244</pre></div>
<p>
Le Wiki de l'Apache Software Foundation est servi
- par MoinMoin. MoinMoin est &#233;crit en Python et
- s'ex&#233;cute en tant que programme CGI. A l'heure
- actuelle, toute tentative pour l'ex&#233;cuter via
- mod_python s'est sold&#233;e par un &#233;chec. Le programme
+ par MoinMoin. MoinMoin est écrit en Python et
+ s'exécute en tant que programme CGI. A l'heure
+ actuelle, toute tentative pour l'exécuter via
+ mod_python s'est soldée par un échec. Le programme
CGI induit une charge inacceptable sur le serveur,
- particuli&#232;rement lorsque le Wiki est index&#233; par des
- moteurs de recherche comme Google. Pour all&#233;ger la
- charge de la machine, l'&#233;quipe d'infrastructure
- d'Apache s'est tourn&#233;e vers mod_cache. Il s'est
- av&#233;r&#233; que <a href="/httpd/MoinMoin">MoinMoin</a>
- n&#233;cessitait un petit patch pour adopter un
- comportement appropri&#233; en aval du serveur de mise
- en cache : certaines requ&#234;tes ne pouvaient jamais
- &#234;tre mises en cache, et les modules Python
- concern&#233;s ont &#233;t&#233; mis &#224; jour pour pouvoir envoyer
- les en-t&#234;tes de r&#233;ponse HTTP corrects. Apr&#232;s cette
+ particulièrement lorsque le Wiki est indexé par des
+ moteurs de recherche comme Google. Pour alléger la
+ charge de la machine, l'équipe d'infrastructure
+ d'Apache s'est tournée vers mod_cache. Il s'est
+ avéré que <a href="/httpd/MoinMoin">MoinMoin</a>
+ nécessitait un petit patch pour adopter un
+ comportement approprié en aval du serveur de mise
+ en cache : certaines requêtes ne pouvaient jamais
+ être mises en cache, et les modules Python
+ concernés ont été mis à jour pour pouvoir envoyer
+ les en-têtes de réponse HTTP corrects. Après cette
modification, la mise en cache en amont du Wiki a
- &#233;t&#233; activ&#233;e via l'insertion des lignes suivantes
+ été activée via l'insertion des lignes suivantes
dans le fichier de configuration
<code>httpd.conf</code> :
</p>
<pre class="prettyprint lang-config">CacheRoot /raid1/cacheroot
CacheEnable disk /
-# Une page modifi&#233;e il y a 100 minutes expirera dans 10 minutes
+# Une page modifiée il y a 100 minutes expirera dans 10 minutes
CacheLastModifiedFactor .1
-# Dans tous les cas, v&#233;rifier la validit&#233; des pages apr&#232;s 6 heures
+# Dans tous les cas, vérifier la validité des pages après 6 heures
CacheMaxExpire 21600</pre>
@@ -1565,29 +1565,29 @@ CacheMaxExpire 21600</pre>
contenu de son serveur virtuel. Elle ne mettra jamais en
cache un contenu plus vieux que 6 heures (voir la
directive <code class="directive"><a href="../mod/mod_cache.html#cachemaxexpire">CacheMaxExpire</a></code>). Si
- l'en-t&#234;te <code>Expires:</code> est absent de la
- r&#233;ponse, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> va calculer une date
- d'expiration en fonction du contenu de l'en-t&#234;te
+ l'en-tête <code>Expires:</code> est absent de la
+ réponse, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> va calculer une date
+ d'expiration en fonction du contenu de l'en-tête
<code>Last-Modified:</code>. Le principe de ce calcul
qui utilise la directive <code class="directive"><a href="../mod/mod_cache.html#cachelastmodifiedfactor">CacheLastModifiedFactor</a></code>
- se base sur l'hypoth&#232;se que si une page a &#233;t&#233; modifi&#233;e
- r&#233;cemment, il y a de fortes chances pour qu'elle le soit
- &#224; nouveau dans un futur proche et devra donc &#234;tre remise
+ se base sur l'hypothèse que si une page a été modifiée
+ récemment, il y a de fortes chances pour qu'elle le soit
+ à nouveau dans un futur proche et devra donc être remise
en cache.
</p>
<p>
- Notez qu'il peut s'av&#233;rer payant de
- <em>d&#233;sactiver</em> l'en-t&#234;te <code>ETag:</code> :
- pour les fichiers inf&#233;rieurs &#224; 1 ko, le serveur
- doit calculer la somme de v&#233;rification checksum (en
- g&#233;n&#233;ral MD5) et envoyer une r&#233;ponse <code>304 Not
+ Notez qu'il peut s'avérer payant de
+ <em>désactiver</em> l'en-tête <code>ETag:</code> :
+ pour les fichiers inférieurs à 1 ko, le serveur
+ doit calculer la somme de vérification checksum (en
+ général MD5) et envoyer une réponse <code>304 Not
Modified</code>, ce qui utilise des ressources CPU
- et r&#233;seau pour le transfert (1 paquet TCP). Pour les
- ressources sup&#233;rieures &#224; 1 ko, les ressources CPU
- consomm&#233;es peuvent devenir importantes car l'en-t&#234;te
- est calcul&#233; &#224; chaque requ&#234;te. Malheureusement, il
+ et réseau pour le transfert (1 paquet TCP). Pour les
+ ressources supérieures à 1 ko, les ressources CPU
+ consommées peuvent devenir importantes car l'en-tête
+ est calculé à chaque requête. Malheureusement, il
n'existe actuellement aucun moyen pour mettre en
- cache ces en-t&#234;tes.
+ cache ces en-têtes.
</p>
<pre class="prettyprint lang-config">&lt;FilesMatch "\.(jpe?g|png|gif|js|css|x?html|xml)"&gt;
FileETag None
@@ -1595,10 +1595,10 @@ CacheMaxExpire 21600</pre>
<p>
- Dans l'exemple pr&#233;c&#233;dent: la g&#233;n&#233;ration d'un en-t&#234;te
- <code>ETag:</code> sera d&#233;sactiv&#233;e pour la plupart
- des ressources statiques. Le serveur ne g&#233;n&#232;re pas
- ces en-t&#234;tes pour les ressources dynamiques.
+ Dans l'exemple précédent: la génération d'un en-tête
+ <code>ETag:</code> sera désactivée pour la plupart
+ des ressources statiques. Le serveur ne génère pas
+ ces en-têtes pour les ressources dynamiques.
</p>
@@ -1609,19 +1609,19 @@ CacheMaxExpire 21600</pre>
<h2><a name="further-considerations" id="further-considerations">Pour aller plus loin
</a><a title="Lien permanent" href="#further-considerations" class="permalink">&para;</a></h2>
- <p>Arm&#233;s du savoir-faire pour personnaliser un syst&#232;me afin
- qu'il affiche les performances d&#233;sir&#233;es, nous d&#233;couvrirons vite
- qu'<em>1</em> syt&#232;me &#224; lui seul peut constituer un goulot
- d'&#233;tranglement. A ce sujet, la page du Wiki <a href="http://wiki.apache.org/httpd/PerformanceScalingOut">PerformanceScalingOut</a>
- d&#233;crit comment adapter un syst&#232;me &#224; mesure qu'il prend de
- l'ampleur, ou comment personnaliser plusieurs syst&#232;mes dans leur
+ <p>Armés du savoir-faire pour personnaliser un système afin
+ qu'il affiche les performances désirées, nous découvrirons vite
+ qu'<em>1</em> sytème à lui seul peut constituer un goulot
+ d'étranglement. A ce sujet, la page du Wiki <a href="http://wiki.apache.org/httpd/PerformanceScalingOut">PerformanceScalingOut</a>
+ décrit comment adapter un système à mesure qu'il prend de
+ l'ampleur, ou comment personnaliser plusieurs systèmes dans leur
ensemble.
</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/misc/perf-scaling.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/perf-scaling.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a></p>
+<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/perf-scaling.html" title="Français">&nbsp;fr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
@@ -1640,7 +1640,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/perf-scaling.
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris&#233; sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
diff --git a/docs/manual/misc/perf-tuning.html.fr b/docs/manual/misc/perf-tuning.html.fr
index fb45b207a5..e778846f6e 100644
--- a/docs/manual/misc/perf-tuning.html.fr
+++ b/docs/manual/misc/perf-tuning.html.fr
@@ -24,135 +24,135 @@
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Optimisation des performances d'Apache</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/misc/perf-tuning.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../fr/misc/perf-tuning.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../fr/misc/perf-tuning.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/perf-tuning.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="../tr/misc/perf-tuning.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
+<a href="../tr/misc/perf-tuning.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<div class="warning"><h3>Avertissement</h3>
- <p>Ce document est en partie obsol&#232;te et son contenu peut s'av&#233;rer
- inappropri&#233;.</p>
+ <p>Ce document est en partie obsolète et son contenu peut s'avérer
+ inapproprié.</p>
</div>
- <p>Apache 2.4 est un serveur web &#224; usage g&#233;n&#233;ral, con&#231;u dans un but
- d'&#233;quilibre entre souplesse, portabilit&#233; et performances. Bien que non
- con&#231;u dans le seul but d'&#233;tablir une r&#233;f&#233;rence en la mati&#232;re,
+ <p>Apache 2.4 est un serveur web à usage général, conçu dans un but
+ d'équilibre entre souplesse, portabilité et performances. Bien que non
+ conçu dans le seul but d'établir une référence en la matière,
Apache 2.4 est capable de hautes performances dans de nombreuses situations
- du monde r&#233;el.</p>
+ du monde réel.</p>
<p>Ce
- document d&#233;crit les options qu'un administrateur de serveur peut configurer
- pour am&#233;liorer les performances d'une installation d'Apache 2.4. Certaines
- de ces options de configuration permettent au d&#233;mon httpd de mieux tirer
- parti des possibilit&#233;s du mat&#233;riel et du syst&#232;me d'exploitation, tandis
- que d'autres permettent &#224; l'administrateur de privil&#233;gier la vitesse
- par rapport aux fonctionnalit&#233;s.</p>
+ document décrit les options qu'un administrateur de serveur peut configurer
+ pour améliorer les performances d'une installation d'Apache 2.4. Certaines
+ de ces options de configuration permettent au démon httpd de mieux tirer
+ parti des possibilités du matériel et du système d'exploitation, tandis
+ que d'autres permettent à l'administrateur de privilégier la vitesse
+ par rapport aux fonctionnalités.</p>
</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#hardware">Probl&#232;mes mat&#233;riels et relatifs au syst&#232;me d'exploitation</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#runtime">Optimisation de la configuration &#224; l'ex&#233;cution</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#compiletime">Optimisation de la configuration &#224; la compilation</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#trace">Appendice : Analyse d&#233;taill&#233;e d'une trace</a></li>
+<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#hardware">Problèmes matériels et relatifs au système d'exploitation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#runtime">Optimisation de la configuration à l'exécution</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#compiletime">Optimisation de la configuration à la compilation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#trace">Appendice : Analyse détaillée d'une trace</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="hardware" id="hardware">Probl&#232;mes mat&#233;riels et relatifs au syst&#232;me d'exploitation</a><a title="Lien permanent" href="#hardware" class="permalink">&para;</a></h2>
+<h2><a name="hardware" id="hardware">Problèmes matériels et relatifs au système d'exploitation</a><a title="Lien permanent" href="#hardware" class="permalink">&para;</a></h2>
- <p>Le principal probl&#232;me mat&#233;riel qui affecte les performances du serveur
- web est la m&#233;moire vive (RAM). Un serveur web ne devrait jamais avoir &#224;
- utiliser le swap, car le swapping augmente le temps de r&#233;ponse de chaque
- requ&#234;te au del&#224; du point que les utilisateurs consid&#232;rent comme
- "trop lent". Ceci incite les utilisateurs &#224; cliquer sur "Stop", puis
- "Charger &#224; nouveau", ce qui a pour effet d'augmenter encore la charge
- du serveur. Vous pouvez, et m&#234;me devez d&#233;finir la valeur de la directive
- <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> de fa&#231;on &#224; ce que
+ <p>Le principal problème matériel qui affecte les performances du serveur
+ web est la mémoire vive (RAM). Un serveur web ne devrait jamais avoir à
+ utiliser le swap, car le swapping augmente le temps de réponse de chaque
+ requête au delà du point que les utilisateurs considèrent comme
+ "trop lent". Ceci incite les utilisateurs à cliquer sur "Stop", puis
+ "Charger à nouveau", ce qui a pour effet d'augmenter encore la charge
+ du serveur. Vous pouvez, et même devez définir la valeur de la directive
+ <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> de façon à ce que
votre serveur ne lance pas un nombre de processus enfants tel qu'il
- commence &#224; faire du swapping. La m&#233;thode pour y parvenir est
- simple : d&#233;terminez la taille de votre processus Apache standard en
- consultant votre liste de processus &#224; l'aide d'un outil tel que
- <code>top</code>, et divisez votre quantit&#233; totale de m&#233;moire disponible
+ commence à faire du swapping. La méthode pour y parvenir est
+ simple : déterminez la taille de votre processus Apache standard en
+ consultant votre liste de processus à l'aide d'un outil tel que
+ <code>top</code>, et divisez votre quantité totale de mémoire disponible
par cette taille, tout en gardant un espace suffisant
pour les autres processus.</p>
- <p>Hormis ce r&#233;glage relatif &#224; la m&#233;moire, le reste est trivial : le
- processeur, la carte r&#233;seau et les disques doivent &#234;tre suffisamment
- rapides, o&#249; "suffisamment rapide" doit &#234;tre d&#233;termin&#233; par
- l'exp&#233;rience.</p>
+ <p>Hormis ce réglage relatif à la mémoire, le reste est trivial : le
+ processeur, la carte réseau et les disques doivent être suffisamment
+ rapides, où "suffisamment rapide" doit être déterminé par
+ l'expérience.</p>
- <p>Le choix du syst&#232;me d'exploitation d&#233;pend principalement du
+ <p>Le choix du système d'exploitation dépend principalement du
contexte local. Voici cependant quelques conseils qui se sont
- g&#233;n&#233;ralement av&#233;r&#233;s utiles :</p>
+ généralement avérés utiles :</p>
<ul>
<li>
- <p>Ex&#233;cutez la derni&#232;re version stable et le niveau de patches le
- plus haut du syst&#232;me d'exploitation que vous avez choisi. De nombreux
- &#233;diteurs de syst&#232;mes d'exploitation ont am&#233;lior&#233; de mani&#232;re
+ <p>Exécutez la dernière version stable et le niveau de patches le
+ plus haut du système d'exploitation que vous avez choisi. De nombreux
+ éditeurs de systèmes d'exploitation ont amélioré de manière
significative les performances de leurs piles TCP et de leurs
- biblioth&#232;ques de thread ces derni&#232;res ann&#233;es.</p>
+ bibliothèques de thread ces dernières années.</p>
</li>
<li>
- <p>Si votre syst&#232;me d'exploitation poss&#232;de un appel syst&#232;me
- <code>sendfile(2)</code>, assurez-vous d'avoir install&#233; la version
- et/ou les patches n&#233;cessaires &#224; son activation. (Pour Linux, par
+ <p>Si votre système d'exploitation possède un appel système
+ <code>sendfile(2)</code>, assurez-vous d'avoir installé la version
+ et/ou les patches nécessaires à son activation. (Pour Linux, par
exemple, cela se traduit par Linux 2.4 ou plus. Pour les versions
- anciennes de Solaris 8, vous pouvez &#234;tre amen&#233; &#224; appliquer un patch.)
- Sur les syst&#232;mes o&#249; il est disponible, <code>sendfile</code> permet
- &#224; Apache de servir les contenus statiques plus rapidement, tout en
- induisant une charge CPU inf&#233;rieure.</p>
+ anciennes de Solaris 8, vous pouvez être amené à appliquer un patch.)
+ Sur les systèmes où il est disponible, <code>sendfile</code> permet
+ à Apache de servir les contenus statiques plus rapidement, tout en
+ induisant une charge CPU inférieure.</p>
</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="runtime" id="runtime">Optimisation de la configuration &#224; l'ex&#233;cution</a><a title="Lien permanent" href="#runtime" class="permalink">&para;</a></h2>
+<h2><a name="runtime" id="runtime">Optimisation de la configuration à l'exécution</a><a title="Lien permanent" href="#runtime" class="permalink">&para;</a></h2>
- <table class="related"><tr><th>Modules Apparent&#233;s</th><th>Directives Apparent&#233;es</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code></li><li><code class="module"><a href="../mod/mpm_common.html">mpm_common</a></code></li><li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code></li><li><code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code></li><li><code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code></li><li><code class="directive"><a href="../mod/core.html#enablemmap">EnableMMAP</a></code></li><li><code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code></li><li><code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code></li><li><code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code></li><li><code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li></ul></td></tr></table>
+ <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code></li><li><code class="module"><a href="../mod/mpm_common.html">mpm_common</a></code></li><li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code></li><li><code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code></li><li><code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code></li><li><code class="directive"><a href="../mod/core.html#enablemmap">EnableMMAP</a></code></li><li><code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code></li><li><code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code></li><li><code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code></li><li><code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li></ul></td></tr></table>
- <h3><a name="dns" id="dns">HostnameLookups et autres consid&#233;rations &#224; propos du DNS</a></h3>
+ <h3><a name="dns" id="dns">HostnameLookups et autres considérations à propos du DNS</a></h3>
<p>Avant Apache 1.3, la directive
- <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> &#233;tait positionn&#233;e
- par d&#233;faut &#224; <code>On</code>, ce qui impliquait une recherche DNS et donc un temps d'attente
- suppl&#233;mentaire pour chaque requ&#234;te. Avec Apache 2.4, <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> est positionn&#233;e par d&#233;faut &#224;
+ <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> était positionnée
+ par défaut à <code>On</code>, ce qui impliquait une recherche DNS et donc un temps d'attente
+ supplémentaire pour chaque requête. Avec Apache 2.4, <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> est positionnée par défaut à
<code>Off</code>. Si vous avez besoin de convertir des adresses IP en noms
- d'h&#244;tes dans vos fichiers journaux, il est pr&#233;f&#233;rable d'effectuer un
- traitement &#224; post&#233;riori plut&#244;t que de forcer Apache &#224; le faire en temps
- r&#233;el. Il est recommand&#233; d'effectuer ce genre de traitement a posteriori
- de vos fichiers journaux sur une autre machine que celle qui h&#233;berge le
- serveur web en production, afin que cette activit&#233; n'affecte pas les
+ d'hôtes dans vos fichiers journaux, il est préférable d'effectuer un
+ traitement à postériori plutôt que de forcer Apache à le faire en temps
+ réel. Il est recommandé d'effectuer ce genre de traitement a posteriori
+ de vos fichiers journaux sur une autre machine que celle qui héberge le
+ serveur web en production, afin que cette activité n'affecte pas les
performances du serveur.</p>
<p>Si vous utilisez une directive
<code><code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>from domain</code>
ou
<code><code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> from domain</code>
- (ce qui signifie que vous utilisez un nom d'h&#244;te ou un nom de domaine &#224;
+ (ce qui signifie que vous utilisez un nom d'hôte ou un nom de domaine à
la place d'une adresse IP), vous devrez compter avec deux recherches
DNS (une recherche inverse suivie d'une recherche directe pour
- s'assurer que l'adresse IP n'a pas &#233;t&#233; usurp&#233;e). C'est pourquoi il est
- pr&#233;f&#233;rable, pour am&#233;liorer les performances, et chaque fois que c'est
- possible, d'utiliser des adresses IP plut&#244;t que des noms de domaines.</p>
+ s'assurer que l'adresse IP n'a pas été usurpée). C'est pourquoi il est
+ préférable, pour améliorer les performances, et chaque fois que c'est
+ possible, d'utiliser des adresses IP plutôt que des noms de domaines.</p>
<div class="warning"><h3>Avertissement :</h3>
<p>Veuillez utiliser la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> avec Apache 2.4 ; pour plus de
- d&#233;tails, reportez-vous au <a href="../upgrading.html">guide de mise &#224;
+ détails, reportez-vous au <a href="../upgrading.html">guide de mise à
jour</a> correspondant.</p>
</div>
- <p>Notez qu'il est possible de modifier la port&#233;e des directives, en les
- pla&#231;ant par exemple &#224; l'int&#233;rieur d'une section
+ <p>Notez qu'il est possible de modifier la portée des directives, en les
+ plaçant par exemple à l'intérieur d'une section
<code>&lt;Location "/server-status"&gt;</code>. Les recherches DNS ne
- seront alors effectu&#233;es que pour les requ&#234;tes qui satisfont aux crit&#232;res.
- Voici un exemple qui d&#233;sactive les recherches DNS sauf pour les fichiers
+ seront alors effectuées que pour les requêtes qui satisfont aux critères.
+ Voici un exemple qui désactive les recherches DNS sauf pour les fichiers
<code>.html</code> et <code>.cgi</code> :</p>
<pre class="prettyprint lang-config">&lt;Files ~ "\.(html|cgi)$"&gt;
@@ -160,9 +160,9 @@
&lt;/Files&gt;</pre>
- <p>Mais m&#234;me dans ce cas, si vous n'avez besoin de noms DNS que dans
- certains CGIs, vous pouvez effectuer l'appel &#224; <code>gethostbyname</code>
- dans les CGIs sp&#233;cifiques qui en ont besoin.</p>
+ <p>Mais même dans ce cas, si vous n'avez besoin de noms DNS que dans
+ certains CGIs, vous pouvez effectuer l'appel à <code>gethostbyname</code>
+ dans les CGIs spécifiques qui en ont besoin.</p>
@@ -172,9 +172,9 @@
<p>Chaque fois que la ligne <code>Options FollowSymLinks</code> sera
absente, ou que la ligne <code>Options SymLinksIfOwnerMatch</code> sera
- pr&#233;sente dans votre espace d'adressage, Apache devra effectuer des
- appels syst&#232;me suppl&#233;mentaires pour v&#233;rifier la pr&#233;sence de liens
- symboliques. Un appel suppl&#233;mentaire par &#233;l&#233;ment du chemin du fichier.
+ présente dans votre espace d'adressage, Apache devra effectuer des
+ appels système supplémentaires pour vérifier la présence de liens
+ symboliques. Un appel supplémentaire par élément du chemin du fichier.
Par exemple, si vous avez :</p>
<pre class="prettyprint lang-config">DocumentRoot "/www/htdocs"
@@ -183,13 +183,13 @@
&lt;/Directory&gt;</pre>
- <p>et si une requ&#234;te demande l'URI <code>/index.html</code>, Apache
- effectuera un appel &#224; <code>lstat(2)</code> pour
+ <p>et si une requête demande l'URI <code>/index.html</code>, Apache
+ effectuera un appel à <code>lstat(2)</code> pour
<code>/www</code>, <code>/www/htdocs</code>, et
- <code>/www/htdocs/index.html</code>. Les r&#233;sultats de ces appels &#224;
- <code>lstat</code> ne sont jamais mis en cache, ils devront donc &#234;tre
- g&#233;n&#233;r&#233;s &#224; nouveau pour chaque nouvelle requ&#234;te. Si vous voulez absolument
- v&#233;rifier la s&#233;curit&#233; des liens symboliques, vous pouvez utiliser une
+ <code>/www/htdocs/index.html</code>. Les résultats de ces appels à
+ <code>lstat</code> ne sont jamais mis en cache, ils devront donc être
+ générés à nouveau pour chaque nouvelle requête. Si vous voulez absolument
+ vérifier la sécurité des liens symboliques, vous pouvez utiliser une
configuration du style :</p>
<pre class="prettyprint lang-config">DocumentRoot "/www/htdocs"
@@ -202,13 +202,13 @@
&lt;/Directory&gt;</pre>
- <p>Ceci &#233;vite au moins les v&#233;rifications suppl&#233;mentaires pour le chemin
- d&#233;fini par <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Notez que
+ <p>Ceci évite au moins les vérifications supplémentaires pour le chemin
+ défini par <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Notez que
vous devrez ajouter des sections similaires si vous avez des chemins
- d&#233;finis par les directives
+ définis par les directives
<code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> ou
<code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> en dehors de
- la racine de vos documents. Pour am&#233;liorer les performances, et supprimer
+ la racine de vos documents. Pour améliorer les performances, et supprimer
toute protection des liens symboliques, ajoutez l'option
<code>FollowSymLinks</code> partout, et n'utilisez jamais l'option
<code>SymLinksIfOwnerMatch</code>.</p>
@@ -219,10 +219,10 @@
- <p>Dans toute partie de votre espace d'adressage o&#249; vous autoriserez
- la surcharge de la configuration (en g&#233;n&#233;ral &#224; l'aide de fichiers
+ <p>Dans toute partie de votre espace d'adressage où vous autoriserez
+ la surcharge de la configuration (en général à l'aide de fichiers
<code>.htaccess</code>), Apache va tenter d'ouvrir <code>.htaccess</code>
- pour chaque &#233;l&#233;ment du chemin du fichier demand&#233;. Par exemple, si vous
+ pour chaque élément du chemin du fichier demandé. Par exemple, si vous
avez : </p>
<pre class="prettyprint lang-config">DocumentRoot "/www/htdocs"
@@ -231,25 +231,25 @@
&lt;/Directory&gt;</pre>
- <p>et qu'une requ&#234;te demande l'URI <code>/index.html</code>, Apache
+ <p>et qu'une requête demande l'URI <code>/index.html</code>, Apache
tentera d'ouvrir <code>/.htaccess</code>, <code>/www/.htaccess</code>,
- et <code>/www/htdocs/.htaccess</code>. Les solutions sont similaires &#224;
- celles &#233;voqu&#233;es pr&#233;c&#233;demment pour <code>Options FollowSymLinks</code>.
- Pour am&#233;liorer les performances, utilisez <code>AllowOverride None</code>
+ et <code>/www/htdocs/.htaccess</code>. Les solutions sont similaires à
+ celles évoquées précédemment pour <code>Options FollowSymLinks</code>.
+ Pour améliorer les performances, utilisez <code>AllowOverride None</code>
pour tous les niveaux de votre espace d'adressage.</p>
- <h3><a name="negotiation" id="negotiation">N&#233;gociation</a></h3>
+ <h3><a name="negotiation" id="negotiation">Négociation</a></h3>
- <p>Dans la mesure du possible, &#233;vitez toute n&#233;gociation de contenu si
+ <p>Dans la mesure du possible, évitez toute négociation de contenu si
vous tenez au moindre gain en performances. En pratique toutefois,
- les b&#233;n&#233;fices de la n&#233;gociation l'emportent souvent sur la diminution
+ les bénéfices de la négociation l'emportent souvent sur la diminution
des performances.
- Il y a cependant un cas dans lequel vous pouvez acc&#233;l&#233;rer le serveur.
- Au lieu d'utiliser une directive g&#233;n&#233;rique comme :</p>
+ Il y a cependant un cas dans lequel vous pouvez accélérer le serveur.
+ Au lieu d'utiliser une directive générique comme :</p>
<pre class="prettyprint lang-config">DirectoryIndex index</pre>
@@ -259,60 +259,60 @@
<pre class="prettyprint lang-config">DirectoryIndex index.cgi index.pl index.shtml index.html</pre>
- <p>o&#249; vous placez le choix courant en premi&#232;re position.</p>
+ <p>où vous placez le choix courant en première position.</p>
- <p>Notez aussi que cr&#233;er explicitement un fichier de
+ <p>Notez aussi que créer explicitement un fichier de
<code>correspondances de type</code> fournit de meilleures performances
que l'utilisation des <code>MultiViews</code>, car les informations
- n&#233;cessaires peuvent &#234;tre simplement obtenues en lisant ce fichier, sans
- avoir &#224; parcourir le r&#233;pertoire &#224; la recherche de types de fichiers.</p>
+ nécessaires peuvent être simplement obtenues en lisant ce fichier, sans
+ avoir à parcourir le répertoire à la recherche de types de fichiers.</p>
- <p>Par cons&#233;quent, si la n&#233;gociation de contenu est n&#233;cessaire pour votre
- site, pr&#233;f&#233;rez les fichiers de <code>correspondances de type</code> aux
- directives <code>Options MultiViews</code> pour mener &#224; bien cette
- n&#233;gociation. Se r&#233;f&#233;rer au document sur la
- <a href="../content-negotiation.html">N&#233;gociation de contenu</a> pour une
- description compl&#232;te des m&#233;thodes de n&#233;gociation, et les instructions
- permettant de cr&#233;er des fichiers de <code>correspondances de type</code>.</p>
+ <p>Par conséquent, si la négociation de contenu est nécessaire pour votre
+ site, préférez les fichiers de <code>correspondances de type</code> aux
+ directives <code>Options MultiViews</code> pour mener à bien cette
+ négociation. Se référer au document sur la
+ <a href="../content-negotiation.html">Négociation de contenu</a> pour une
+ description complète des méthodes de négociation, et les instructions
+ permettant de créer des fichiers de <code>correspondances de type</code>.</p>
- <h3>Transfert en m&#233;moire</h3>
+ <h3>Transfert en mémoire</h3>
- <p>Dans les situations o&#249; Apache 2.x doit consulter le contenu d'un
- fichier en train d'&#234;tre servi - par exemple &#224; l'occasion du traitement
- d'une inclusion c&#244;t&#233; serveur - il transf&#232;re en g&#233;n&#233;ral le fichier en
- m&#233;moire si le syst&#232;me d'exploitation supporte une forme quelconque
+ <p>Dans les situations où Apache 2.x doit consulter le contenu d'un
+ fichier en train d'être servi - par exemple à l'occasion du traitement
+ d'une inclusion côté serveur - il transfère en général le fichier en
+ mémoire si le système d'exploitation supporte une forme quelconque
de <code>mmap(2)</code>.</p>
- <p>Sur certains syst&#232;mes, ce transfert en m&#233;moire am&#233;liore les
- performances. Dans certains cas, ce transfert peut toutefois les d&#233;grader
- et m&#234;me diminuer la stabilit&#233; du d&#233;mon httpd :</p>
+ <p>Sur certains systèmes, ce transfert en mémoire améliore les
+ performances. Dans certains cas, ce transfert peut toutefois les dégrader
+ et même diminuer la stabilité du démon httpd :</p>
<ul>
<li>
- <p>Dans certains syst&#232;mes d'exploitation, <code>mmap</code> devient
+ <p>Dans certains systèmes d'exploitation, <code>mmap</code> devient
moins efficace que <code>read(2)</code> quand le nombre de
processeurs augmente. Sur les serveurs multiprocesseurs sous Solaris,
- par exemple, Apache 2.x sert parfois les fichiers consult&#233;s par le
- serveur plus rapidement quand <code>mmap</code> est d&#233;sactiv&#233;.</p>
+ par exemple, Apache 2.x sert parfois les fichiers consultés par le
+ serveur plus rapidement quand <code>mmap</code> est désactivé.</p>
</li>
<li>
- <p>Si vous transf&#233;rez en m&#233;moire un fichier localis&#233; dans un syst&#232;me
- de fichiers mont&#233; par NFS, et si un processus sur
+ <p>Si vous transférez en mémoire un fichier localisé dans un système
+ de fichiers monté par NFS, et si un processus sur
une autre machine cliente NFS supprime ou tronque le fichier, votre
processus peut rencontrer une erreur de bus la prochaine fois qu'il
- essaiera d'acc&#233;der au contenu du fichier en m&#233;moire.</p>
+ essaiera d'accéder au contenu du fichier en mémoire.</p>
</li>
</ul>
- <p>Pour les installations o&#249; une de ces situations peut se produire,
- vous devez utiliser <code>EnableMMAP off</code> afin de d&#233;sactiver le
- transfert en m&#233;moire des fichiers servis. (Note : il est possible de
- passer outre cette directive au niveau de chaque r&#233;pertoire.)</p>
+ <p>Pour les installations où une de ces situations peut se produire,
+ vous devez utiliser <code>EnableMMAP off</code> afin de désactiver le
+ transfert en mémoire des fichiers servis. (Note : il est possible de
+ passer outre cette directive au niveau de chaque répertoire.)</p>
@@ -320,37 +320,37 @@
- <p>Dans les cas o&#249; Apache peut se permettre d'ignorer le contenu du
- fichier &#224; servir - par exemple, lorsqu'il sert un contenu de fichier
- statique - il utilise en g&#233;n&#233;ral le support sendfile du noyau si le
- syst&#232;me d'exploitation supporte l'op&#233;ration <code>sendfile(2)</code>.</p>
+ <p>Dans les cas où Apache peut se permettre d'ignorer le contenu du
+ fichier à servir - par exemple, lorsqu'il sert un contenu de fichier
+ statique - il utilise en général le support sendfile du noyau si le
+ système d'exploitation supporte l'opération <code>sendfile(2)</code>.</p>
- <p>Sur la plupart des plateformes, l'utilisation de sendfile am&#233;liore
- les performances en &#233;liminant les m&#233;canismes de lecture et envoi s&#233;par&#233;s.
- Dans certains cas cependant, l'utilisation de sendfile peut nuire &#224; la
- stabilit&#233; du d&#233;mon httpd :</p>
+ <p>Sur la plupart des plateformes, l'utilisation de sendfile améliore
+ les performances en éliminant les mécanismes de lecture et envoi séparés.
+ Dans certains cas cependant, l'utilisation de sendfile peut nuire à la
+ stabilité du démon httpd :</p>
<ul>
<li>
- <p>Certaines plateformes peuvent pr&#233;senter un support de sendfile
- d&#233;faillant que la construction du syst&#232;me n'a pas d&#233;tect&#233;, en
- particulier si les binaires ont &#233;t&#233; construits sur une autre machine
- et transf&#233;r&#233;s sur la machine o&#249; le support de sendfile est
- d&#233;faillant.</p>
+ <p>Certaines plateformes peuvent présenter un support de sendfile
+ défaillant que la construction du système n'a pas détecté, en
+ particulier si les binaires ont été construits sur une autre machine
+ et transférés sur la machine où le support de sendfile est
+ défaillant.</p>
</li>
<li>
- <p>Dans le cas d'un syst&#232;me de fichiers mont&#233;
- sous NFS, le noyau peut s'av&#233;rer incapable de servir
- les fichiers r&#233;seau de mani&#232;re fiable depuis
+ <p>Dans le cas d'un système de fichiers monté
+ sous NFS, le noyau peut s'avérer incapable de servir
+ les fichiers réseau de manière fiable depuis
son propre cache.</p>
</li>
</ul>
- <p>Pour les installations o&#249; une de ces situations peut se produire,
- vous devez utiliser <code>EnableSendfile off</code> afin de d&#233;sactiver
- la mise &#224; disposition de contenus de fichiers par sendfile. (Note : il
+ <p>Pour les installations où une de ces situations peut se produire,
+ vous devez utiliser <code>EnableSendfile off</code> afin de désactiver
+ la mise à disposition de contenus de fichiers par sendfile. (Note : il
est possible de passer outre cette directive au niveau de chaque
- r&#233;pertoire.)</p>
+ répertoire.)</p>
@@ -359,33 +359,33 @@
<p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> permet de limiter le
- nombre de connexions qu'un processus enfant peut g&#233;rer au cours de sa vie
- (par d&#233;faut, la valeur est <code>0</code>, soit aucune limite). Tous les <a href="../mpm.html#defaults">MPMs</a> sont concern&#233;s, m&#234;me ceux qui utilisent
- des threads. Par exemple, chaque processus cr&#233;&#233; par le MPM
- <code class="module"><a href="../mod/worker.html">worker</a></code> lance plusieurs threads qui g&#232;rent les connexions,
+ nombre de connexions qu'un processus enfant peut gérer au cours de sa vie
+ (par défaut, la valeur est <code>0</code>, soit aucune limite). Tous les <a href="../mpm.html#defaults">MPMs</a> sont concernés, même ceux qui utilisent
+ des threads. Par exemple, chaque processus créé par le MPM
+ <code class="module"><a href="../mod/worker.html">worker</a></code> lance plusieurs threads qui gèrent les connexions,
mais cette directive n'en affecte pas le nombre total. Cela signifie
seulement que la valeur de la directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> ne limitera que le
- nombre de requ&#234;tes trait&#233;es par les threads lanc&#233;s par un seul processus
+ nombre de requêtes traitées par les threads lancés par un seul processus
enfant.</p>
<p>Dans des conditions d'utilisation optimales, la directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> ne devrait imposer
- aucune limite, car il n'y a &#224; priori aucune raison de tuer un processus, si
- ce n'est suite &#224; un bug logiciel causant des fuites de m&#233;moire ou un usage
+ aucune limite, car il n'y a à priori aucune raison de tuer un processus, si
+ ce n'est suite à un bug logiciel causant des fuites de mémoire ou un usage
excessif du CPU.</p>
- <p>Lorsque le mode "keep-alive" est activ&#233;, un processus (ou un thread lanc&#233;
+ <p>Lorsque le mode "keep-alive" est activé, un processus (ou un thread lancé
par un processus) est
- maintenu et ne fait rien sinon attendre la prochaine requ&#234;te sur la
- connexion d&#233;j&#224; ouverte. La valeur par d&#233;faut de <code>5</code> de la
- directive <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> tend &#224;
+ maintenu et ne fait rien sinon attendre la prochaine requête sur la
+ connexion déjà ouverte. La valeur par défaut de <code>5</code> de la
+ directive <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> tend à
minimiser cet effet. Il faut trouver le bon compromis entre la bande
- passante r&#233;seau et les ressources du serveur.</p>
+ passante réseau et les ressources du serveur.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="compiletime" id="compiletime">Optimisation de la configuration &#224; la compilation</a><a title="Lien permanent" href="#compiletime" class="permalink">&para;</a></h2>
+<h2><a name="compiletime" id="compiletime">Optimisation de la configuration à la compilation</a><a title="Lien permanent" href="#compiletime" class="permalink">&para;</a></h2>
@@ -393,43 +393,43 @@
- <p>Apache 2.x supporte les mod&#232;les simultan&#233;s enfichables, appel&#233;s
+ <p>Apache 2.x supporte les modèles simultanés enfichables, appelés
<a href="../mpm.html">Modules Multi-Processus</a> (MPMs). Vous devez
choisir un MPM au moment de la construction d'Apache. Certaines
- plateformes ont des modules MPM sp&#233;cifiques :
+ plateformes ont des modules MPM spécifiques :
<code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> et
- <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>. Sur les syst&#232;mes de type Unix, vous avez le
+ <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>. Sur les systèmes de type Unix, vous avez le
choix entre un grand nombre de modules MPM. Le choix du MPM peut affecter
- la vitesse et l'&#233;volutivit&#233; du d&#233;mon httpd :</p>
+ la vitesse et l'évolutivité du démon httpd :</p>
<ul>
<li>Le MPM <code class="module"><a href="../mod/worker.html">worker</a></code> utilise plusieurs processus
- enfants poss&#233;dant chacun de nombreux threads. Chaque thread g&#232;re une
- seule connexion &#224; la fois. Worker est en g&#233;n&#233;ral un bon choix pour les
- serveurs pr&#233;sentant un traffic important car il poss&#232;de une empreinte
- m&#233;moire plus petite que le MPM prefork.</li>
+ enfants possédant chacun de nombreux threads. Chaque thread gère une
+ seule connexion à la fois. Worker est en général un bon choix pour les
+ serveurs présentant un traffic important car il possède une empreinte
+ mémoire plus petite que le MPM prefork.</li>
<li>Comme le MPM Worker, le MPM <code class="module"><a href="../mod/event.html">event</a></code> utilise
- les threads, mais il a &#233;t&#233; con&#231;u pour traiter davantage de
- requ&#234;tes simultan&#233;ment en confiant une partie du travail &#224; des
+ les threads, mais il a été conçu pour traiter davantage de
+ requêtes simultanément en confiant une partie du travail à des
threads de support, ce qui permet aux threads principaux de
- traiter de nouvelles requ&#234;tes.</li>
+ traiter de nouvelles requêtes.</li>
<li>Le MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code> utilise plusieurs processus enfants
- poss&#233;dant chacun un seul thread. Chaque processus g&#232;re une seule
- connexion &#224; la fois. Sur de nombreux syst&#232;mes, prefork est comparable
- en mati&#232;re de vitesse &#224; worker, mais il utilise plus de m&#233;moire. De par
- sa conception sans thread, prefork pr&#233;sente des avantages par rapport &#224;
- worker dans certaines situations : il peut &#234;tre utilis&#233; avec les
- modules tiers qui ne supportent pas le threading, et son d&#233;bogage est plus
- ais&#233; sur les platesformes pr&#233;sentant un support du d&#233;bogage des threads
+ possédant chacun un seul thread. Chaque processus gère une seule
+ connexion à la fois. Sur de nombreux systèmes, prefork est comparable
+ en matière de vitesse à worker, mais il utilise plus de mémoire. De par
+ sa conception sans thread, prefork présente des avantages par rapport à
+ worker dans certaines situations : il peut être utilisé avec les
+ modules tiers qui ne supportent pas le threading, et son débogage est plus
+ aisé sur les platesformes présentant un support du débogage des threads
rudimentaire.</li>
</ul>
<p>Pour plus d'informations sur ces deux MPMs et les autres, veuillez
- vous r&#233;f&#233;rer &#224; la <a href="../mpm.html">documentation sur les
+ vous référer à la <a href="../mpm.html">documentation sur les
MPM</a>.</p>
@@ -438,53 +438,53 @@
- <p>Comme le contr&#244;le de l'utilisation de la m&#233;moire est tr&#232;s important
- en mati&#232;re de performance, il est conseill&#233; d'&#233;liminer les modules que
+ <p>Comme le contrôle de l'utilisation de la mémoire est très important
+ en matière de performance, il est conseillé d'éliminer les modules que
vous n'utilisez pas vraiment. Si vous avez construit ces modules en
- tant que <a href="../dso.html">DSOs</a>, leur &#233;limination consiste
- simplement &#224; commenter la directive
- <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> associ&#233;e &#224; ce
- module. Ceci vous permet de v&#233;rifier si votre site fonctionne toujours
- apr&#232;s la suppression de tel ou tel module.</p>
+ tant que <a href="../dso.html">DSOs</a>, leur élimination consiste
+ simplement à commenter la directive
+ <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> associée à ce
+ module. Ceci vous permet de vérifier si votre site fonctionne toujours
+ après la suppression de tel ou tel module.</p>
- <p>Par contre, si les modules que vous voulez supprimer sont li&#233;s
- statiquement &#224; votre binaire Apache, vous devrez recompiler ce dernier
- afin de pouvoir les &#233;liminer.</p>
+ <p>Par contre, si les modules que vous voulez supprimer sont liés
+ statiquement à votre binaire Apache, vous devrez recompiler ce dernier
+ afin de pouvoir les éliminer.</p>
- <p>La question qui d&#233;coule de ce qui pr&#233;c&#232;de est &#233;videmment de
+ <p>La question qui découle de ce qui précède est évidemment de
savoir de quels modules vous avez besoin et desquels vous pouvez vous
- passer. La r&#233;ponse sera bien entendu diff&#233;rente d'un site web &#224;
- l'autre. Cependant, la liste <em>minimale</em> de modules n&#233;cessaire &#224;
+ passer. La réponse sera bien entendu différente d'un site web à
+ l'autre. Cependant, la liste <em>minimale</em> de modules nécessaire à
la survie de votre site contiendra certainement
<code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code>, <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code> et
<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. <code>mod_log_config</code> est bien
entendu optionnel puisque vous pouvez faire fonctionner un site web
en se passant de fichiers journaux ; ceci est cependant
- d&#233;conseill&#233;.</p>
+ déconseillé.</p>
- <h3>Op&#233;rations atomiques</h3>
+ <h3>Opérations atomiques</h3>
- <p>Certains modules, &#224; l'instar de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> et des
- versions de d&#233;veloppement r&#233;centes du MPM worker, utilisent l'API
- atomique d'APR. Cette API propose des op&#233;rations atomiques que l'on
- peut utiliser pour all&#233;ger la synchronisation des threads.</p>
-
- <p>Par d&#233;faut, APR impl&#233;mente ces op&#233;rations en utilisant les
- m&#233;canismes les plus efficaces disponibles sur chaque plateforme cible
- (Syst&#232;me d'exploitation et processeur). De nombreux processeurs modernes,
- par exemple, poss&#232;dent une instruction qui effectue une op&#233;ration
- atomique de type comparaison et &#233;change ou compare-and-swap (CAS) au
- niveau mat&#233;riel. Sur certaines platesformes cependant, APR utilise par
- d&#233;faut une impl&#233;mentation de l'API atomique plus lente, bas&#233;e sur les
- mutex, afin d'assurer la compatibilit&#233; avec les anciens mod&#232;les de
- processeurs qui ne poss&#232;dent pas ce genre d'instruction. Si vous
- construisez Apache pour une de ces platesformes, et ne pr&#233;voyez de
- l'ex&#233;cuter que sur des processeurs r&#233;cents, vous pouvez s&#233;lectionner une
- impl&#233;mentation atomique plus rapide &#224; la compilation en utilisant
+ <p>Certains modules, à l'instar de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> et des
+ versions de développement récentes du MPM worker, utilisent l'API
+ atomique d'APR. Cette API propose des opérations atomiques que l'on
+ peut utiliser pour alléger la synchronisation des threads.</p>
+
+ <p>Par défaut, APR implémente ces opérations en utilisant les
+ mécanismes les plus efficaces disponibles sur chaque plateforme cible
+ (Système d'exploitation et processeur). De nombreux processeurs modernes,
+ par exemple, possèdent une instruction qui effectue une opération
+ atomique de type comparaison et échange ou compare-and-swap (CAS) au
+ niveau matériel. Sur certaines platesformes cependant, APR utilise par
+ défaut une implémentation de l'API atomique plus lente, basée sur les
+ mutex, afin d'assurer la compatibilité avec les anciens modèles de
+ processeurs qui ne possèdent pas ce genre d'instruction. Si vous
+ construisez Apache pour une de ces platesformes, et ne prévoyez de
+ l'exécuter que sur des processeurs récents, vous pouvez sélectionner une
+ implémentation atomique plus rapide à la compilation en utilisant
l'option <code>--enable-nonportable-atomics</code> du
script configure :</p>
@@ -499,27 +499,27 @@
<ul>
<li>Solaris sur SPARC<br />
- Sur Solaris/SPARC, APR utilise par d&#233;faut les op&#233;rations
- atomiques bas&#233;es sur les mutex. Cependant, si vous ajoutez l'option
+ Sur Solaris/SPARC, APR utilise par défaut les opérations
+ atomiques basées sur les mutex. Cependant, si vous ajoutez l'option
<code>--enable-nonportable-atomics</code> au script configure, APR
- g&#233;n&#232;re un code qui utilise le code op&#233;ration SPARC v8plus pour des
- op&#233;rations de compare-and-swap mat&#233;riel plus rapides. Si vous
- utilisez cette option de configure avec Apache, les op&#233;rations
- atomiques seront plus efficaces (permettant d'all&#233;ger la charge du
- processeur et un plus haut niveau de simultan&#233;it&#233;), mais
- l'ex&#233;cutable produit ne fonctionnera que sur les processeurs
+ génère un code qui utilise le code opération SPARC v8plus pour des
+ opérations de compare-and-swap matériel plus rapides. Si vous
+ utilisez cette option de configure avec Apache, les opérations
+ atomiques seront plus efficaces (permettant d'alléger la charge du
+ processeur et un plus haut niveau de simultanéité), mais
+ l'exécutable produit ne fonctionnera que sur les processeurs
UltraSPARC.
</li>
<li>Linux sur x86<br />
- Sous Linux, APR utilise par d&#233;faut les op&#233;rations atomiques bas&#233;es
+ Sous Linux, APR utilise par défaut les opérations atomiques basées
sur les mutex. Cependant, si vous ajoutez l'option
<code>--enable-nonportable-atomics</code> au script configure,
- APR g&#233;n&#233;rera un code qui utilise un code d'op&#233;ration du 486
- pour des op&#233;rations de compare-and-swap mat&#233;riel plus rapides. Le
- code r&#233;sultant est plus efficace en mati&#232;re d'op&#233;rations atomiques,
- mais l'ex&#233;cutable produit ne fonctionnera que sur des processeurs
- 486 et sup&#233;rieurs (et non sur des 386).
+ APR générera un code qui utilise un code d'opération du 486
+ pour des opérations de compare-and-swap matériel plus rapides. Le
+ code résultant est plus efficace en matière d'opérations atomiques,
+ mais l'exécutable produit ne fonctionnera que sur des processeurs
+ 486 et supérieurs (et non sur des 386).
</li>
</ul>
@@ -530,42 +530,42 @@
- <p>Si vous incluez le module <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> &#224; la
- construction d'Apache et ajoutez <code>ExtendedStatus On</code> &#224; sa
- configuration, Apache va effectuer pour chaque requ&#234;te deux appels &#224;
+ <p>Si vous incluez le module <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> à la
+ construction d'Apache et ajoutez <code>ExtendedStatus On</code> à sa
+ configuration, Apache va effectuer pour chaque requête deux appels à
<code>gettimeofday(2)</code> (ou <code>times(2)</code> selon votre
- syst&#232;me d'exploitation), et (pour les versions ant&#233;rieures &#224; 1.3) de
- nombreux appels suppl&#233;mentaires &#224; <code>time(2)</code>. Tous ces
- appels sont effectu&#233;s afin que le rapport de statut puisse contenir
- des indications temporelles. Pour am&#233;liorer les performances, utilisez
- <code>ExtendedStatus off</code> (qui est le r&#233;glage par d&#233;faut).</p>
+ système d'exploitation), et (pour les versions antérieures à 1.3) de
+ nombreux appels supplémentaires à <code>time(2)</code>. Tous ces
+ appels sont effectués afin que le rapport de statut puisse contenir
+ des indications temporelles. Pour améliorer les performances, utilisez
+ <code>ExtendedStatus off</code> (qui est le réglage par défaut).</p>
- <h3>accept Serialization - points de connexion &#224; un programme (sockets) multiples</h3>
+ <h3>accept Serialization - points de connexion à un programme (sockets) multiples</h3>
<div class="warning"><h3>Mise en garde :</h3>
- <p>Cette section n'a pas &#233;t&#233; totalement mise &#224; jour car elle ne tient pas
+ <p>Cette section n'a pas été totalement mise à jour car elle ne tient pas
compte des changements intervenus dans la version 2.x du Serveur HTTP
Apache. Certaines informations sont encore pertinentes, il vous est
- cependant conseill&#233; de les utiliser avec prudence.</p>
+ cependant conseillé de les utiliser avec prudence.</p>
</div>
- <p>Ce qui suit est une br&#232;ve discussion &#224; propos de l'API des sockets
+ <p>Ce qui suit est une brève discussion à propos de l'API des sockets
Unix. Supposons que votre serveur web utilise plusieurs directives
- <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> afin d'&#233;couter
+ <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> afin d'écouter
plusieurs ports ou de multiples adresses. Afin de tester chaque socket
pour voir s'il a une connexion en attente, Apache utilise
<code>select(2)</code>. <code>select(2)</code> indique si un socket a
- <em>z&#233;ro</em> ou <em>au moins une</em> connexion en attente. Le mod&#232;le
+ <em>zéro</em> ou <em>au moins une</em> connexion en attente. Le modèle
d'Apache comporte plusieurs processus enfants, et tous ceux qui sont
- inactifs testent la pr&#233;sence de nouvelles connexions au m&#234;me moment.
- Une impl&#233;mentation rudimentaire de ceci pourrait ressembler &#224;
+ inactifs testent la présence de nouvelles connexions au même moment.
+ Une implémentation rudimentaire de ceci pourrait ressembler à
l'exemple suivant
(ces exemples ne sont pas extraits du code d'Apache, ils ne sont
- propos&#233;s qu'&#224; des fins p&#233;dagogiques) :</p>
+ proposés qu'à des fins pédagogiques) :</p>
<pre class="prettyprint lang-c"> for (;;) {
for (;;) {
@@ -590,42 +590,42 @@
}</pre>
- <p>Mais cette impl&#233;mentation rudimentaire pr&#233;sente une s&#233;rieuse lacune.
- Rappelez-vous que les processus enfants ex&#233;cutent cette boucle au m&#234;me
+ <p>Mais cette implémentation rudimentaire présente une sérieuse lacune.
+ Rappelez-vous que les processus enfants exécutent cette boucle au même
moment ; ils vont ainsi bloquer sur <code>select</code> s'ils se trouvent
- entre deux requ&#234;tes. Tous ces processus bloqu&#233;s vont se r&#233;activer et
- sortir de <code>select</code> quand une requ&#234;te va appara&#238;tre sur un des
- sockets (le nombre de processus enfants qui se r&#233;activent varie en
- fonction du syst&#232;me d'exploitation et des r&#233;glages de synchronisation).
+ entre deux requêtes. Tous ces processus bloqués vont se réactiver et
+ sortir de <code>select</code> quand une requête va apparaître sur un des
+ sockets (le nombre de processus enfants qui se réactivent varie en
+ fonction du système d'exploitation et des réglages de synchronisation).
Ils vont alors tous entrer dans la boucle et tenter un
<code>"accept"</code> de la connexion. Mais seulement un d'entre eux y
parviendra (en supposant qu'il ne reste q'une seule connexion en
attente), les autres vont se bloquer au niveau de <code>accept</code>.
Ceci verrouille vraiment ces processus de telle sorte qu'ils ne peuvent
- plus servir de requ&#234;tes que par cet unique socket, et il en sera ainsi
- jusqu'&#224; ce que suffisamment de nouvelles requ&#234;tes apparaissent sur ce
- socket pour les r&#233;activer tous. Cette lacune a &#233;t&#233; document&#233;e pour la
- premi&#232;re fois dans
+ plus servir de requêtes que par cet unique socket, et il en sera ainsi
+ jusqu'à ce que suffisamment de nouvelles requêtes apparaissent sur ce
+ socket pour les réactiver tous. Cette lacune a été documentée pour la
+ première fois dans
<a href="http://bugs.apache.org/index/full/467">PR#467</a>. Il existe
au moins deux solutions.</p>
- <p>La premi&#232;re consiste &#224; rendre les sockets non blocants. Dans ce cas,
+ <p>La première consiste à rendre les sockets non blocants. Dans ce cas,
<code>accept</code> ne bloquera pas les processus enfants, et ils
- pourront continuer &#224; s'ex&#233;cuter imm&#233;diatement. Mais ceci consomme des
+ pourront continuer à s'exécuter immédiatement. Mais ceci consomme des
ressources processeur. Supposons que vous ayez dix processus enfants
inactifs dans <code>select</code>, et qu'une connexion arrive.
- Neuf des dix processus vont se r&#233;activer, tenter un <code>accept</code>
- de la connexion, &#233;chouer, et boucler dans <code>select</code>, tout en
+ Neuf des dix processus vont se réactiver, tenter un <code>accept</code>
+ de la connexion, échouer, et boucler dans <code>select</code>, tout en
n'ayant finalement rien accompli. Pendant ce temps, aucun de ces processus
- ne traite les requ&#234;tes qui arrivent sur d'autres sockets jusqu'&#224; ce
+ ne traite les requêtes qui arrivent sur d'autres sockets jusqu'à ce
qu'ils retournent dans <code>select</code>. Finalement, cette solution
- ne semble pas tr&#232;s efficace, &#224; moins que vous ne disposiez d'autant de
+ ne semble pas très efficace, à moins que vous ne disposiez d'autant de
processeurs inactifs (dans un serveur multiprocesseur) que de processus
- enfants inactifs, ce qui n'est pas une situation tr&#232;s courante.</p>
+ enfants inactifs, ce qui n'est pas une situation très courante.</p>
- <p>Une autre solution, celle qu'utilise Apache, consiste &#224; s&#233;rialiser les
- entr&#233;es dans la boucle interne. La boucle ressemble &#224; ceci (les
- diff&#233;rences sont mises en surbrillance) :</p>
+ <p>Une autre solution, celle qu'utilise Apache, consiste à sérialiser les
+ entrées dans la boucle interne. La boucle ressemble à ceci (les
+ différences sont mises en surbrillance) :</p>
<pre class="prettyprint lang-c"> for (;;) {
<strong>accept_mutex_on ();</strong>
@@ -654,74 +654,74 @@
<p><a id="serialize" name="serialize">Les fonctions</a>
<code>accept_mutex_on</code> et <code>accept_mutex_off</code>
- impl&#233;mentent un s&#233;maphore permettant une exclusion mutuelle. Un seul
- processus enfant &#224; la fois peut poss&#233;der le mutex. Plusieurs choix se
- pr&#233;sentent pour impl&#233;menter ces mutex. Ce choix est d&#233;fini dans
- <code>src/conf.h</code> (versions ant&#233;rieures &#224; 1.3) ou
- <code>src/include/ap_config.h</code> (versions 1.3 ou sup&#233;rieures).
+ implémentent un sémaphore permettant une exclusion mutuelle. Un seul
+ processus enfant à la fois peut posséder le mutex. Plusieurs choix se
+ présentent pour implémenter ces mutex. Ce choix est défini dans
+ <code>src/conf.h</code> (versions antérieures à 1.3) ou
+ <code>src/include/ap_config.h</code> (versions 1.3 ou supérieures).
Certaines architectures ne font pas ce choix du mode de verrouillage ;
l'utilisation de directives
<code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> multiples sur ces
- architectures est donc peu s&#251;r.</p>
+ architectures est donc peu sûr.</p>
<p>La directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code> permet
- de modifier l'impl&#233;mentation du mutex <code>mpm-accept</code> &#224;
- l'ex&#233;cution. Des consid&#233;rations sp&#233;cifiques aux diff&#233;rentes
- impl&#233;mentations de mutex sont document&#233;es avec cette directive.</p>
-
- <p>Une autre solution qui a &#233;t&#233; imagin&#233;e mais jamais impl&#233;ment&#233;e, consiste
- &#224; s&#233;rialiser partiellement la boucle -- c'est &#224; dire y faire entrer un
- certain nombre de processus. Ceci ne pr&#233;senterait un int&#233;r&#234;t que sur les
- machines multiprocesseurs o&#249; plusieurs processus enfants peuvent
- s'ex&#233;cuter simultan&#233;ment, et encore, la s&#233;rialisation ne tire pas
- vraiment parti de toute la bande passante. C'est une possibilit&#233;
- d'investigation future, mais demeure de priorit&#233; basse car les serveurs
- web &#224; architecture hautement parall&#232;le ne sont pas la norme.</p>
+ de modifier l'implémentation du mutex <code>mpm-accept</code> à
+ l'exécution. Des considérations spécifiques aux différentes
+ implémentations de mutex sont documentées avec cette directive.</p>
+
+ <p>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
+ machines multiprocesseurs où plusieurs processus enfants peuvent
+ s'exécuter simultanément, et encore, la sérialisation ne tire pas
+ vraiment parti de toute la bande passante. C'est une possibilité
+ d'investigation future, mais demeure de priorité basse car les serveurs
+ web à architecture hautement parallèle ne sont pas la norme.</p>
<p>Pour bien faire, vous devriez faire fonctionner votre serveur sans
directives <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> multiples
- si vous visez les performances les plus &#233;lev&#233;es.
+ si vous visez les performances les plus élevées.
Mais lisez ce qui suit.</p>
- <h3>accept Serialization - point de connexion &#224; un programme (sockets) unique</h3>
+ <h3>accept Serialization - point de connexion à un programme (sockets) unique</h3>
- <p>Ce qui pr&#233;c&#232;de convient pour les serveurs &#224; sockets multiples, mais
- qu'en est-il des serveurs &#224; socket unique ? En th&#233;orie, ils ne
- devraient pas rencontrer les m&#234;mes probl&#232;mes car tous les processus
- enfants peuvent se bloquer dans <code>accept(2)</code> jusqu'&#224; ce qu'une
- connexion arrive, et ils ne sont pas utilis&#233;s &#224; ne rien faire. En
- pratique, ceci dissimule un m&#234;me comportement de bouclage
- discut&#233; plus haut dans la solution non-blocante. De la mani&#232;re dont
- sont impl&#233;ment&#233;es les piles TCP, le noyau r&#233;active v&#233;ritablement tous les
- processus bloqu&#233;s dans <code>accept</code> quand une seule connexion
+ <p>Ce qui précède convient pour les serveurs à sockets multiples, mais
+ qu'en est-il des serveurs à socket unique ? En théorie, ils ne
+ devraient pas rencontrer les mêmes problèmes car tous les processus
+ enfants peuvent se bloquer dans <code>accept(2)</code> jusqu'à ce qu'une
+ connexion arrive, et ils ne sont pas utilisés à ne rien faire. En
+ pratique, ceci dissimule un même comportement de bouclage
+ discuté plus haut dans la solution non-blocante. De la manière dont
+ sont implémentées les piles TCP, le noyau réactive véritablement tous les
+ processus bloqués dans <code>accept</code> quand une seule connexion
arrive. Un de ces processus prend la connexion en compte et retourne
dans l'espace utilisateur, les autres bouclant dans l'espace du
- noyau et se d&#233;sactivant quand ils s'aper&#231;oivent qu'il n'y a pas de
+ noyau et se désactivant quand ils s'aperçoivent qu'il n'y a pas de
connexion pour eux. Ce bouclage est invisible depuis le code de l'espace
- utilisateur, mais il est quand-m&#234;me pr&#233;sent. Ceci peut conduire &#224; la
- m&#234;me augmentation de charge &#224; perte que la solution non blocante au cas
+ utilisateur, mais il est quand-même présent. Ceci peut conduire à la
+ même augmentation de charge à perte que la solution non blocante au cas
des sockets multiples peut induire.</p>
- <p>Pour cette raison, il appara&#238;t que de nombreuses architectures se
- comportent plus "proprement" si on s&#233;rialise m&#234;me dans le cas d'une socket
- unique. Il s'agit en fait du comportement par d&#233;faut dans la plupart des
- cas. Des exp&#233;riences pouss&#233;es sous Linux (noyau 2.0.30 sur un
- biprocesseur Pentium pro 166 avec 128 Mo de RAM) ont montr&#233; que la
- s&#233;rialisation d'une socket unique provoque une diminution inf&#233;rieure &#224; 3%
- du nombre de requ&#234;tes par secondes par rapport au traitement non
- s&#233;rialis&#233;. Mais le traitement non s&#233;rialis&#233; des sockets uniques induit
- un temps de r&#233;ponse suppl&#233;mentaire de 100 ms pour chaque requ&#234;te. Ce
- temps de r&#233;ponse est probablement provoqu&#233; par une limitation sur les
- lignes &#224; haute charge, et ne constitue un probl&#232;me que sur les r&#233;seaux
- locaux. Si vous voulez vous passer de la s&#233;rialisation des sockets
- uniques, vous pouvez d&#233;finir
+ <p>Pour cette raison, il apparaît que de nombreuses architectures se
+ comportent plus "proprement" si on sérialise même dans le cas d'une socket
+ unique. Il s'agit en fait du comportement par défaut dans la plupart des
+ cas. Des expériences poussées sous Linux (noyau 2.0.30 sur un
+ biprocesseur Pentium pro 166 avec 128 Mo de RAM) ont montré que la
+ sérialisation d'une socket unique provoque une diminution inférieure à 3%
+ du nombre de requêtes par secondes par rapport au traitement non
+ sérialisé. Mais le traitement non sérialisé des sockets uniques induit
+ un temps de réponse supplémentaire de 100 ms pour chaque requête. Ce
+ temps de réponse est probablement provoqué par une limitation sur les
+ lignes à haute charge, et ne constitue un problème que sur les réseaux
+ locaux. Si vous voulez vous passer de la sérialisation des sockets
+ uniques, vous pouvez définir
<code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code> et les
- serveurs &#224; socket unique ne pratiqueront plus du tout la
- s&#233;rialisation.</p>
+ serveurs à socket unique ne pratiqueront plus du tout la
+ sérialisation.</p>
@@ -729,37 +729,37 @@
- <p>Comme discut&#233; dans <a href="http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt">
- draft-ietf-http-connection-00.txt</a> section 8, pour impl&#233;menter de
- mani&#232;re <strong>fiable</strong> le protocole, un serveur HTTP doit fermer
- les deux directions d'une communication ind&#233;pendamment (rappelez-vous
- qu'une connexion TCP est bidirectionnelle, chaque direction &#233;tant
- ind&#233;pendante de l'autre).</p>
-
- <p>Quand cette fonctionnalit&#233; fut ajout&#233;e &#224; Apache, elle causa une
- avalanche de probl&#232;mes sur plusieurs versions d'Unix &#224; cause d'une
- impl&#233;mentation &#224; courte vue. La sp&#233;cification TCP ne pr&#233;cise pas que
- l'&#233;tat <code>FIN_WAIT_2</code> poss&#232;de un temps de r&#233;ponse mais elle ne
- l'exclut pas. Sur les syst&#232;mes qui n'introduisent pas ce temps de
- r&#233;ponse, Apache 1.2 induit de nombreux blocages d&#233;finitifs de socket
- dans l'&#233;tat <code>FIN_WAIT_2</code>. On peut eviter ceci dans de nombreux
- cas tout simplement en mettant &#224; jour TCP/IP avec le dernier patch mis &#224;
- disposition par le fournisseur. Dans les cas o&#249; le fournisseur n'a
+ <p>Comme discuté dans <a href="http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt">
+ draft-ietf-http-connection-00.txt</a> section 8, pour implémenter de
+ manière <strong>fiable</strong> 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).</p>
+
+ <p>Quand cette fonctionnalité fut ajoutée à Apache, elle causa une
+ avalanche de problèmes sur plusieurs versions d'Unix à cause d'une
+ implémentation à courte vue. La spécification TCP ne précise pas que
+ l'état <code>FIN_WAIT_2</code> possède un temps de réponse mais elle ne
+ l'exclut pas. Sur les systèmes qui n'introduisent pas ce temps de
+ réponse, Apache 1.2 induit de nombreux blocages définitifs de socket
+ dans l'état <code>FIN_WAIT_2</code>. On peut eviter ceci dans de nombreux
+ cas tout simplement en mettant à jour TCP/IP avec le dernier patch mis à
+ disposition par le fournisseur. Dans les cas où le fournisseur n'a
jamais fourni de patch (par exemple, SunOS4 -- bien que les utilisateurs
- poss&#233;dant une license source puissent le patcher eux-m&#234;mes), nous avons
- d&#233;cid&#233; de d&#233;sactiver cette fonctionnalit&#233;.</p>
+ possédant une license source puissent le patcher eux-mêmes), nous avons
+ décidé de désactiver cette fonctionnalité.</p>
- <p>Il y a deux m&#233;thodes pour arriver &#224; ce r&#233;sultat. La premi&#232;re est
+ <p>Il y a deux méthodes pour arriver à ce résultat. La première est
l'option de socket <code>SO_LINGER</code>. Mais le sort a voulu que cette
- solution ne soit jamais impl&#233;ment&#233;e correctement dans la plupart des
- piles TCP/IP. Et m&#234;me dans les rares cas o&#249; cette solution a &#233;t&#233;
- impl&#233;ment&#233;e correctement (par exemple Linux 2.0.31), elle se
+ solution ne soit jamais implémentée correctement dans la plupart des
+ piles TCP/IP. Et même dans les rares cas où cette solution a été
+ implémentée correctement (par exemple Linux 2.0.31), elle se
montre beaucoup plus gourmande (en temps processeur) que la solution
suivante.</p>
- <p>Pour la plus grande partie, Apache impl&#233;mente cette solution &#224; l'aide
- d'une fonction appel&#233;e <code>lingering_close</code> (d&#233;finie dans
- <code>http_main.c</code>). La fonction ressemble approximativement &#224;
+ <p>Pour la plus grande partie, Apache implémente cette solution à l'aide
+ d'une fonction appelée <code>lingering_close</code> (définie dans
+ <code>http_main.c</code>). La fonction ressemble approximativement à
ceci :</p>
<pre class="prettyprint lang-c"> void lingering_close (int s)
@@ -787,18 +787,18 @@
}</pre>
- <p>Ceci ajoute naturellement un peu de charge &#224; la fin d'une connexion,
- mais s'av&#232;re n&#233;cessaire pour une impl&#233;mentation fiable. Comme HTTP/1.1
- est de plus en plus pr&#233;sent et que toutes les connexions sont
- persistentes, la charge sera amortie par la multiplicit&#233; des requ&#234;tes.
- Si vous voulez jouer avec le feu en d&#233;sactivant cette fonctionnalit&#233;,
- vous pouvez d&#233;finir <code>NO_LINGCLOSE</code>, mais c'est fortement
- d&#233;conseill&#233;. En particulier, comme les connexions persistantes en
- pipeline de HTTP/1.1 commencent &#224; &#234;tre utilis&#233;es,
- <code>lingering_close</code> devient une absolue n&#233;cessit&#233; (et les
+ <p>Ceci ajoute naturellement un peu de charge à la fin d'une connexion,
+ mais s'avère nécessaire pour une implémentation fiable. Comme HTTP/1.1
+ est de plus en plus présent et que toutes les connexions sont
+ persistentes, la charge sera amortie par la multiplicité des requêtes.
+ Si vous voulez jouer avec le feu en désactivant cette fonctionnalité,
+ vous pouvez définir <code>NO_LINGCLOSE</code>, mais c'est fortement
+ déconseillé. En particulier, comme les connexions persistantes en
+ pipeline de HTTP/1.1 commencent à être utilisées,
+ <code>lingering_close</code> devient une absolue nécessité (et les
<a href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">
connexions en pipeline sont plus rapides</a> ; vous avez donc tout
- int&#233;r&#234;t &#224; les supporter).</p>
+ intérêt à les supporter).</p>
@@ -806,28 +806,28 @@
- <p>Les processus parent et enfants d'Apache communiquent entre eux &#224;
- l'aide d'un objet appel&#233; "Tableau de bord" (Scoreboard). Id&#233;alement, cet
- &#233;change devrait s'effectuer en m&#233;moire partag&#233;e. Pour les syst&#232;mes
- d'exploitation auxquels nous avons eu acc&#232;s, ou pour lesquels nous avons
- obtenu des informations suffisamment d&#233;taill&#233;es pour effectuer un
- portage, cet &#233;change est en g&#233;n&#233;ral impl&#233;ment&#233; en utilisant la m&#233;moire
- partag&#233;e. Pour les autres, on utilise par d&#233;faut un fichier d'&#233;change sur
- disque. Le fichier d'&#233;change sur disque est non seulement lent, mais
- aussi peu fiable (et propose moins de fonctionnalit&#233;s). Recherchez dans
- le fichier <code>src/main/conf.h</code> correspondant &#224; votre
+ <p>Les processus parent et enfants d'Apache communiquent entre eux à
+ l'aide d'un objet appelé "Tableau de bord" (Scoreboard). Idéalement, cet
+ échange devrait s'effectuer en mémoire partagée. Pour les systèmes
+ d'exploitation auxquels nous avons eu accès, ou pour lesquels nous avons
+ obtenu des informations suffisamment détaillées pour effectuer un
+ portage, cet échange est en général implémenté en utilisant la mémoire
+ partagée. Pour les autres, on utilise par défaut un fichier d'échange sur
+ disque. Le fichier d'échange sur disque est non seulement lent, mais
+ aussi peu fiable (et propose moins de fonctionnalités). Recherchez dans
+ le fichier <code>src/main/conf.h</code> correspondant à votre
architecture soit <code>USE_MMAP_SCOREBOARD</code>, soit
- <code>USE_SHMGET_SCOREBOARD</code>. La d&#233;finition de l'un des deux
+ <code>USE_SHMGET_SCOREBOARD</code>. La définition de l'un des deux
(ainsi que leurs compagnons respectifs <code>HAVE_MMAP</code> et
- <code>HAVE_SHMGET</code>), active le code fourni pour la m&#233;moire
- partag&#233;e. Si votre syst&#232;me propose une autre solution pour la gestion de
- la m&#233;moire partag&#233;e, &#233;ditez le fichier <code>src/main/http_main.c</code>
- et ajoutez la portion de code n&#233;cessaire pour pouvoir l'utiliser dans
+ <code>HAVE_SHMGET</code>), active le code fourni pour la mémoire
+ partagée. Si votre système propose une autre solution pour la gestion de
+ la mémoire partagée, éditez le fichier <code>src/main/http_main.c</code>
+ et ajoutez la portion de code nécessaire pour pouvoir l'utiliser dans
Apache (Merci de nous envoyer aussi le patch correspondant).</p>
- <div class="note">Note &#224; caract&#232;re historique : le portage d'Apache sous Linux
- n'utilisait pas la m&#233;moire partag&#233;e avant la version 1.2. Ceci entra&#238;nait
- un comportement tr&#232;s rudimentaire et peu fiable des versions ant&#233;rieures
+ <div class="note">Note à caractère historique : le portage d'Apache sous Linux
+ n'utilisait pas la mémoire partagée avant la version 1.2. Ceci entraînait
+ un comportement très rudimentaire et peu fiable des versions antérieures
d'Apache sous Linux.</div>
@@ -836,81 +836,81 @@
- <p>Si vous n'avez pas l'intention d'utiliser les modules charg&#233;s
- dynamiquement (ce qui est probablement le cas si vous &#234;tes en train de
+ <p>Si vous n'avez pas l'intention d'utiliser les modules chargés
+ dynamiquement (ce qui est probablement le cas si vous êtes en train de
lire ce document afin de personnaliser votre serveur en recherchant le
- moindre des gains en performances), vous pouvez ajouter la d&#233;finition
- <code>-DDYNAMIC_MODULE_LIMIT=0</code> &#224; la construction de votre serveur.
- Ceci aura pour effet de lib&#233;rer la m&#233;moire RAM allou&#233;e pour le
+ moindre des gains en performances), vous pouvez ajouter la définition
+ <code>-DDYNAMIC_MODULE_LIMIT=0</code> à la construction de votre serveur.
+ Ceci aura pour effet de libérer la mémoire RAM allouée pour le
chargement dynamique des modules.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="trace" id="trace">Appendice : Analyse d&#233;taill&#233;e d'une trace</a><a title="Lien permanent" href="#trace" class="permalink">&para;</a></h2>
+<h2><a name="trace" id="trace">Appendice : Analyse détaillée d'une trace</a><a title="Lien permanent" href="#trace" class="permalink">&para;</a></h2>
- <p>Voici la trace d'un appel syst&#232;me d'Apache 2.0.38 avec le MPM worker
- sous Solaris 8. Cette trace a &#233;t&#233; collect&#233;e &#224; l'aide de la commande :</p>
+ <p>Voici la trace d'un appel système d'Apache 2.0.38 avec le MPM worker
+ sous Solaris 8. Cette trace a été collectée à l'aide de la commande :</p>
<div class="example"><p><code>
truss -l -p <var>httpd_child_pid</var>.
</code></p></div>
- <p>L'option <code>-l</code> demande &#224; truss de tracer l'ID du LWP
+ <p>L'option <code>-l</code> demande à truss de tracer l'ID du LWP
(lightweight process--la version de Solaris des threads niveau noyau) qui
- invoque chaque appel syst&#232;me.</p>
+ invoque chaque appel système.</p>
- <p>Les autres syst&#232;mes peuvent proposer des utilitaires de tra&#231;age
- des appels syst&#232;me diff&#233;rents comme <code>strace</code>,
+ <p>Les autres systèmes peuvent proposer des utilitaires de traçage
+ des appels système différents comme <code>strace</code>,
<code>ktrace</code>, ou <code>par</code>. Ils produisent cependant tous une
trace similaire.</p>
- <p>Dans cette trace, un client a demand&#233; un fichier statique de 10 ko au
- d&#233;mon httpd. Le tra&#231;age des requ&#234;tes pour des contenus non statiques
- ou comportant une n&#233;gociation de contenu a une pr&#233;sentation
- diff&#233;rente (et m&#234;me assez laide dans certains cas).</p>
+ <p>Dans cette trace, un client a demandé un fichier statique de 10 ko au
+ démon httpd. Le traçage des requêtes pour des contenus non statiques
+ ou comportant une négociation de contenu a une présentation
+ différente (et même assez laide dans certains cas).</p>
<div class="example"><pre>/67: accept(3, 0x00200BEC, 0x00200C0C, 1) (sleeping...)
/67: accept(3, 0x00200BEC, 0x00200C0C, 1) = 9</pre></div>
- <p>Dans cette trace, le thread &#224; l'&#233;coute s'ex&#233;cute &#224; l'int&#233;rieur de
+ <p>Dans cette trace, le thread à l'écoute s'exécute à l'intérieur de
LWP #67.</p>
- <div class="note">Notez l'absence de la s&#233;rialisation d'<code>accept(2)</code>. Sur
- cette plateforme sp&#233;cifique, le MPM worker utilise un accept non s&#233;rialis&#233;
- par d&#233;faut sauf s'il est en &#233;coute sur des ports multiples.</div>
+ <div class="note">Notez l'absence de la sérialisation d'<code>accept(2)</code>. Sur
+ cette plateforme spécifique, le MPM worker utilise un accept non sérialisé
+ par défaut sauf s'il est en écoute sur des ports multiples.</div>
<div class="example"><pre>/65: lwp_park(0x00000000, 0) = 0
/67: lwp_unpark(65, 1) = 0</pre></div>
- <p>Apr&#232;s avoir accept&#233; la connexion, le thread &#224; l'&#233;coute r&#233;active un
- thread du worker pour effectuer le traitement de la requ&#234;te. Dans cette
- trace, le thread du worker qui traite la requ&#234;te est associ&#233; &#224;
+ <p>Après avoir accepté la connexion, le thread à l'écoute réactive un
+ thread du worker pour effectuer le traitement de la requête. Dans cette
+ trace, le thread du worker qui traite la requête est associé à
LWP #65.</p>
<div class="example"><pre>/65: getsockname(9, 0x00200BA4, 0x00200BC4, 1) = 0</pre></div>
- <p>Afin de pouvoir impl&#233;menter les h&#244;tes virtuels, Apache doit conna&#238;tre
- l'adresse du socket local utilis&#233; pour accepter la connexion. On pourrait
+ <p>Afin de pouvoir implémenter les hôtes virtuels, Apache doit connaître
+ l'adresse du socket local utilisé pour accepter la connexion. On pourrait
supprimer cet appel dans de nombreuses situations (par exemple dans le cas
- o&#249; il n'y a pas d'h&#244;te virtuel ou dans le cas o&#249; les directives
+ où il n'y a pas d'hôte virtuel ou dans le cas où les directives
<code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> contiennent des adresses
- sans caract&#232;res de substitution). Mais aucun effort n'a &#233;t&#233; accompli &#224; ce
+ sans caractères de substitution). Mais aucun effort n'a été accompli à ce
jour pour effectuer ces optimisations.</p>
<div class="example"><pre>/65: brk(0x002170E8) = 0
/65: brk(0x002190E8) = 0</pre></div>
- <p>L'appel <code>brk(2)</code> alloue de la m&#233;moire dans le tas. Ceci est
- rarement visible dans une trace d'appel syst&#232;me, car le d&#233;mon httpd
- utilise des allocateurs m&#233;moire de son cru (<code>apr_pool</code> et
- <code>apr_bucket_alloc</code>) pour la plupart des traitements de requ&#234;tes.
- Dans cette trace, le d&#233;mon httpd vient juste de d&#233;marrer, et il doit
- appeler <code>malloc(3)</code> pour r&#233;server les blocs de m&#233;moire
- n&#233;cessaires &#224; la cr&#233;ation de ses propres allocateurs de m&#233;moire.</p>
+ <p>L'appel <code>brk(2)</code> alloue de la mémoire dans le tas. Ceci est
+ rarement visible dans une trace d'appel système, car le démon httpd
+ utilise des allocateurs mémoire de son cru (<code>apr_pool</code> et
+ <code>apr_bucket_alloc</code>) pour la plupart des traitements de requêtes.
+ Dans cette trace, le démon httpd vient juste de démarrer, et il doit
+ appeler <code>malloc(3)</code> pour réserver les blocs de mémoire
+ nécessaires à la création de ses propres allocateurs de mémoire.</p>
<div class="example"><pre>/65: fcntl(9, F_GETFL, 0x00000000) = 2
/65: fstat64(9, 0xFAF7B818) = 0
@@ -922,42 +922,42 @@
<p>Ensuite, le thread de worker passe la connexion du client (descripteur
de fichier 9) en mode non blocant. Les appels <code>setsockopt(2)</code>
- et <code>getsockopt(2)</code> constituent un effet de bord de la mani&#232;re
+ et <code>getsockopt(2)</code> constituent un effet de bord de la manière
dont la libc de Solaris utilise <code>fcntl(2)</code> pour les sockets.</p>
<div class="example"><pre>/65: read(9, " G E T / 1 0 k . h t m".., 8000) = 97</pre></div>
- <p>Le thread de worker lit la requ&#234;te du client.</p>
+ <p>Le thread de worker lit la requête du client.</p>
<div class="example"><pre>/65: stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
/65: open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10</pre></div>
- <p>Ce d&#233;mon httpd a &#233;t&#233; configur&#233; avec les options
+ <p>Ce démon httpd a été configuré avec les options
<code>Options FollowSymLinks</code> et <code>AllowOverride None</code>. Il
- n'a donc ni besoin d'appeler <code>lstat(2)</code> pour chaque r&#233;pertoire
- du chemin du fichier demand&#233;, ni besoin de v&#233;rifier la pr&#233;sence de fichiers
+ n'a donc ni besoin d'appeler <code>lstat(2)</code> pour chaque répertoire
+ du chemin du fichier demandé, ni besoin de vérifier la présence de fichiers
<code>.htaccess</code>. Il appelle simplement <code>stat(2)</code> pour
- v&#233;rifier d'une part que le fichier existe, et d'autre part que c'est un
- fichier r&#233;gulier, et non un r&#233;pertoire.</p>
+ vérifier d'une part que le fichier existe, et d'autre part que c'est un
+ fichier régulier, et non un répertoire.</p>
<div class="example"><pre>/65: sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C) = 10269</pre></div>
- <p>Dans cet exemple, le d&#233;mon httpd peut envoyer l'en-t&#234;te de la r&#233;ponse
- HTTP et le fichier demand&#233; &#224; l'aide d'un seul appel syst&#232;me
- <code>sendfilev(2)</code>. La s&#233;mantique de sendfile varie en fonction des
- syst&#232;mes d'exploitation. Sur certains autres syst&#232;mes, il faut faire un
- appel &#224; <code>write(2)</code> ou <code>writev(2)</code> pour envoyer les
- en-t&#234;tes avant d'appeler <code>sendfile(2)</code>.</p>
+ <p>Dans cet exemple, le démon httpd peut envoyer l'en-tête de la réponse
+ HTTP et le fichier demandé à l'aide d'un seul appel système
+ <code>sendfilev(2)</code>. La sémantique de sendfile varie en fonction des
+ systèmes d'exploitation. Sur certains autres systèmes, il faut faire un
+ appel à <code>write(2)</code> ou <code>writev(2)</code> pour envoyer les
+ en-têtes avant d'appeler <code>sendfile(2)</code>.</p>
<div class="example"><pre>/65: write(4, " 1 2 7 . 0 . 0 . 1 - ".., 78) = 78</pre></div>
- <p>Cet appel &#224; <code>write(2)</code> enregistre la requ&#234;te dans le journal
- des acc&#232;s. Notez qu'une des choses manquant &#224; cette trace est un appel &#224;
- <code>time(2)</code>. A la diff&#233;rence d'Apache 1.3, Apache 2.x utilise
- <code>gettimeofday(3)</code> pour consulter l'heure. Sur certains syst&#232;mes
+ <p>Cet appel à <code>write(2)</code> enregistre la requête dans le journal
+ des accès. Notez qu'une des choses manquant à cette trace est un appel à
+ <code>time(2)</code>. A la différence d'Apache 1.3, Apache 2.x utilise
+ <code>gettimeofday(3)</code> pour consulter l'heure. Sur certains systèmes
d'exploitation, comme Linux ou Solaris, <code>gettimeofday</code> est
- impl&#233;ment&#233; de mani&#232;re optimis&#233;e de telle sorte qu'il consomme moins de
- ressources qu'un appel syst&#232;me habituel.</p>
+ implémenté de manière optimisée de telle sorte qu'il consomme moins de
+ ressources qu'un appel système habituel.</p>
<div class="example"><pre>/65: shutdown(9, 1, 1) = 0
/65: poll(0xFAF7B980, 1, 2000) = 1
@@ -970,27 +970,27 @@
<div class="example"><pre>/65: close(10) = 0
/65: lwp_park(0x00000000, 0) (sleeping...)</pre></div>
- <p>Enfin, le thread de worker ferme le fichier qu'il vient de d&#233;livrer et
- se bloque jusqu'&#224; ce que le thread en &#233;coute lui assigne une autre
+ <p>Enfin, le thread de worker ferme le fichier qu'il vient de délivrer et
+ se bloque jusqu'à ce que le thread en écoute lui assigne une autre
connexion.</p>
<div class="example"><pre>/67: accept(3, 0x001FEB74, 0x001FEB94, 1) (sleeping...)</pre></div>
- <p>Pendant ce temps, le thread &#224; l'&#233;coute peut accepter une autre connexion
- &#224; partir du moment o&#249; il a assign&#233; la connexion pr&#233;sente &#224; un thread de
- worker (selon une certaine logique de contr&#244;le de flux dans le MPM worker
- qui impose des limites au thread &#224; l'&#233;coute si tous les threads de worker
- sont occup&#233;s). Bien que cela n'apparaisse pas dans cette trace,
- l'<code>accept(2)</code> suivant peut (et le fait en g&#233;n&#233;ral, en situation
- de charge &#233;lev&#233;e) s'ex&#233;cuter en parall&#232;le avec le traitement de la
- connexion qui vient d'&#234;tre accept&#233;e par le thread de worker.</p>
+ <p>Pendant ce temps, le thread à l'écoute peut accepter une autre connexion
+ à partir du moment où il a assigné la connexion présente à un thread de
+ worker (selon une certaine logique de contrôle de flux dans le MPM worker
+ qui impose des limites au thread à l'écoute si tous les threads de worker
+ sont occupés). Bien que cela n'apparaisse pas dans cette trace,
+ l'<code>accept(2)</code> suivant peut (et le fait en général, en situation
+ de charge élevée) s'exécuter en parallèle avec le traitement de la
+ connexion qui vient d'être acceptée par le thread de worker.</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/misc/perf-tuning.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../fr/misc/perf-tuning.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../fr/misc/perf-tuning.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/perf-tuning.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="../tr/misc/perf-tuning.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
+<a href="../tr/misc/perf-tuning.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
@@ -1009,7 +1009,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/perf-tuning.h
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris&#233; sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
diff --git a/docs/manual/misc/relevant_standards.html.fr b/docs/manual/misc/relevant_standards.html.fr
index a27adc3ec8..9f4af8ad16 100644
--- a/docs/manual/misc/relevant_standards.html.fr
+++ b/docs/manual/misc/relevant_standards.html.fr
@@ -24,21 +24,21 @@
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Standards applicables</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/misc/relevant_standards.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../fr/misc/relevant_standards.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../fr/misc/relevant_standards.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/relevant_standards.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<p>Cette page documente tous les standards applicables que suit le
- serveur HTTP Apache, accompagn&#233;s d'une br&#232;ve description.</p>
+ serveur HTTP Apache, accompagnés d'une brève description.</p>
- <p>Pour compl&#233;ter les informations fournies ci-dessous, vous pouvez
+ <p>Pour compléter les informations fournies ci-dessous, vous pouvez
consulter les ressources suivantes :</p>
<ul>
<li>
<a href="http://purl.org/NET/http-errata">
http://purl.org/NET/http-errata</a> - Corrections de la
- sp&#233;cification HTTP/1.1
+ spécification HTTP/1.1
</li>
<li>
<a href="http://www.rfc-editor.org/errata.php">
@@ -47,12 +47,12 @@
<li>
<a href="http://ftp.ics.uci.edu/pub/ietf/http/#RFC">
http://ftp.ics.uci.edu/pub/ietf/http/#RFC</a> - Une liste
- pr&#233;compil&#233;e des RFCs en rapport avec HTTP
+ précompilée des RFCs en rapport avec HTTP
</li>
</ul>
<div class="warning"><h3>Avertissement</h3>
- <p>Ce document n'est pas encore finalis&#233;.</p>
+ <p>Ce document n'est pas encore finalisé.</p>
</div>
</div>
@@ -66,7 +66,7 @@
<div class="section">
<h2><a name="http_recommendations" id="http_recommendations">Recommandations HTTP</a><a title="Lien permanent" href="#http_recommendations" class="permalink">&para;</a></h2>
- <p>Sans tenir compte des modules compil&#233;s et utilis&#233;s, Apache en
+ <p>Sans tenir compte des modules compilés et utilisés, Apache en
tant que serveur web de base respecte les recommandations IETF
suivantes :</p>
@@ -76,31 +76,31 @@
<dd>Le Protocole de Transfert Hypertexte (Hypertext Transfer
Protocol - HTTP) est un protocole de niveau application avec la
- clart&#233; et la vitesse n&#233;cessaires pour les syst&#232;mes d'informations
- distribu&#233;s, collaboratifs et hyperm&#233;dia. Cette RFC documente le
+ clarté et la vitesse nécessaires pour les systèmes d'informations
+ distribués, collaboratifs et hypermédia. Cette RFC documente le
protocole HTTP/1.0.</dd>
<dt><a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC 2616</a>
- (S&#233;rie de standards)</dt>
+ (Série de standards)</dt>
<dd>Le Protocole de Transfert Hypertexte (Hypertext Transfer
Protocol - HTTP) est un protocole de niveau application pour les
- syst&#232;mes d'informations distribu&#233;s, collaboratifs et hyperm&#233;dia.
+ systèmes d'informations distribués, collaboratifs et hypermédia.
Cette RFC documente le protocole HTTP/1.1.</dd>
<dt><a href="http://www.rfc-editor.org/rfc/rfc2396.txt">RFC 2396</a>
- (S&#233;rie de standards)</dt>
+ (Série de standards)</dt>
<dd>Un Identificateur de Ressource Uniforme (Uniform Resource
- Identifier - URI) est une cha&#238;ne de caract&#232;res compacte permettant
+ Identifier - URI) est une chaîne de caractères compacte permettant
d'identifier une ressource physique ou abstraite.</dd>
<dt><a href="http://www.rfc-editor.org/rfc/rfc4346.txt">RFC 4346</a>
- (S&#233;rie de standards)</dt>
+ (Série de standards)</dt>
<dd>Le protocole TLS permet l'utilisation de communications
- s&#233;curis&#233;es sur l'Internet. Il fournit le chiffrement, et a &#233;t&#233;
- con&#231;u pour se pr&#233;munir contre l'interception, la modification et
+ sécurisées sur l'Internet. Il fournit le chiffrement, et a été
+ conçu pour se prémunir contre l'interception, la modification et
la falsification de messages.</dd>
</dl>
@@ -115,26 +115,26 @@
<dt><a href="http://www.rfc-editor.org/rfc/rfc2854.txt">RFC 2854</a>
(Informations)</dt>
- <dd>Ce document r&#233;sume l'historique du d&#233;veloppement de HTML, et
- d&#233;finit le type MIME "text/html" en pointant les recommandations
+ <dd>Ce document résume l'historique du développement de HTML, et
+ définit le type MIME "text/html" en pointant les recommandations
W3C correspondantes.</dd>
- <dt><a href="http://www.w3.org/TR/html401">Sp&#233;cification HTML
+ <dt><a href="http://www.w3.org/TR/html401">Spécification HTML
4.01</a>
(<a href="http://www.w3.org/MarkUp/html4-updates/errata">Corrections
Erreurs</a>)
</dt>
- <dd>Cette sp&#233;cification d&#233;finit le Langage &#224; Balises HyperTexte
+ <dd>Cette spécification définit le Langage à Balises HyperTexte
(HyperText Markup Language - HTML), le langage de publication du
- World Wide Web. Elle d&#233;finit HTML 4.01, qui est une sous-version
+ World Wide Web. Elle définit HTML 4.01, qui est une sous-version
de HTML 4.</dd>
- <dt><a href="http://www.w3.org/TR/REC-html32">R&#233;f&#233;rence HTML
+ <dt><a href="http://www.w3.org/TR/REC-html32">Référence HTML
3.2</a></dt>
- <dd>Le langage &#224; Balises HyperTexte (HyperText Markup Language -
- HTML) est un langage &#224; balises simple permettant de cr&#233;er des
+ <dd>Le langage à Balises HyperTexte (HyperText Markup Language -
+ HTML) est un langage à balises simple permettant de créer des
documents hypertextes portables. Les documents HTML sont aussi des
documents SGML.</dd>
@@ -144,35 +144,35 @@
d'erreurs</a>)
</dt>
- <dd>Cette recommandation d&#233;finit un nouveau type de document XHTML
- bas&#233; sur le cadre de d&#233;veloppement des modules et les modules
- d&#233;finis dans la modularisation de XHTML.</dd>
+ <dd>Cette recommandation définit un nouveau type de document XHTML
+ basé sur le cadre de développement des modules et les modules
+ définis dans la modularisation de XHTML.</dd>
- <dt><a href="http://www.w3.org/TR/xhtml1">XHTML 1.0, le Langage &#224;
+ <dt><a href="http://www.w3.org/TR/xhtml1">XHTML 1.0, le Langage à
Balises Hypertexte Extensible (Extensible HyperText Markup
- Language) - Seconde &#233;dition</a>
+ Language) - Seconde édition</a>
(<a href="http://www.w3.org/2002/08/REC-xhtml1-20020801-errata/">Corrections
d'erreurs</a>)
</dt>
- <dd>Cette sp&#233;cification d&#233;finit la seconde &#233;dition de XHTML 1.0,
+ <dd>Cette spécification définit la seconde édition de XHTML 1.0,
une reformulation de HTML 4 en tant qu'application XML 1.0, ainsi
- que trois DTDs correspondant &#224; celles d&#233;finies par HTML 4.</dd>
+ que trois DTDs correspondant à celles définies par HTML 4.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="authentication" id="authentication">Authentification</a><a title="Lien permanent" href="#authentication" class="permalink">&para;</a></h2>
- <p>En ce qui concerne les diff&#233;rentes m&#233;thodes d'authentification,
+ <p>En ce qui concerne les différentes méthodes d'authentification,
Apache respecte les recommandations IETF suivantes :</p>
<dl>
<dt><a href="http://www.rfc-editor.org/rfc/rfc2617.txt">RFC 2617</a>
(Le track des standards)</dt>
- <dd>"HTTP/1.0", y compris la sp&#233;cification d'un protocole
- d'authentification et de contr&#244;le d'acc&#232;s basique.</dd>
+ <dd>"HTTP/1.0", y compris la spécification d'un protocole
+ d'authentification et de contrôle d'accès basique.</dd>
</dl>
@@ -181,50 +181,50 @@
<h2><a name="language_country_codes" id="language_country_codes">Codes de langages et de
pays</a><a title="Lien permanent" href="#language_country_codes" class="permalink">&para;</a></h2>
- <p>Les liens suivants fournissent des informations &#224; propos des
+ <p>Les liens suivants fournissent des informations à propos des
codes de langages et de pays aux normes ISO ou autres :</p>
<dl>
<dt><a href="http://www.loc.gov/standards/iso639-2/">ISO 639-2</a></dt>
<dd>ISO 639 fournit deux jeux de codes de langages permettant de
- repr&#233;senter les noms des langues ; le premier est
+ représenter les noms des langues ; le premier est
un jeu de codes sur deux lettres (639-1), le second (celui
- pr&#233;sent&#233; dans le lien ci-dessus), est un jeu de codes sur trois
+ présenté dans le lien ci-dessus), est un jeu de codes sur trois
lettres (639-2).</dd>
<dt><a href="http://www.iso.org/iso/country_codes">
ISO 3166-1</a></dt>
- <dd>Ce document pr&#233;sente les noms de pays (les noms raccourcis
- officiels en anglais) dans l'ordre alphab&#233;tique, tels qu'ils sont
- pr&#233;sent&#233;s dans la norme ISO 3166-1 et les &#233;l&#233;ments de codes
+ <dd>Ce document présente les noms de pays (les noms raccourcis
+ officiels en anglais) dans l'ordre alphabétique, tels qu'ils sont
+ présentés dans la norme ISO 3166-1 et les éléments de codes
correspondants de la norme ISO 3166-1-alpha-2.</dd>
<dt><a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">BCP 47</a>
(Les meilleurs pratiques courantes),
<a href="http://www.rfc-editor.org/rfc/rfc3066.txt">RFC 3066</a></dt>
- <dd>Ce document d&#233;crit une balise de langue permettant de
- sp&#233;cifier la langue utilis&#233;e dans un objet contenant des
- informations, la mani&#232;re d'enregistrer des valeurs &#224; utiliser dans
- cette balise de langue, et une m&#233;thode pour comparer les balises
+ <dd>Ce document décrit une balise de langue permettant de
+ spécifier la langue utilisée dans un objet contenant des
+ informations, la manière d'enregistrer des valeurs à utiliser dans
+ cette balise de langue, et une méthode pour comparer les balises
de langue de ce style.</dd>
<dt><a href="http://www.rfc-editor.org/rfc/rfc3282.txt">RFC 3282</a>
- (S&#233;rie de standards)</dt>
+ (Série de standards)</dt>
- <dd>Ce document d&#233;finit une en-t&#234;te "Content-language:" permettant
- de sp&#233;cifier la langue d'un &#233;l&#233;ment poss&#233;dant des en-t&#234;tes du
+ <dd>Ce document définit une en-tête "Content-language:" permettant
+ de spécifier la langue d'un élément possédant des en-têtes du
style RFC 822, comme les portions de corps MIME ou les documents
- Web, et un en-t&#234;te "Accept-Language:" permettant de sp&#233;cifier des
- pr&#233;f&#233;rences en mati&#232;re de langue.</dd>
+ Web, et un en-tête "Accept-Language:" permettant de spécifier des
+ préférences en matière de langue.</dd>
</dl>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/misc/relevant_standards.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../fr/misc/relevant_standards.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../fr/misc/relevant_standards.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/relevant_standards.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
@@ -244,7 +244,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/relevant_stan
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris&#233; sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
diff --git a/docs/manual/misc/security_tips.html.fr b/docs/manual/misc/security_tips.html.fr
index ad01edbfad..8ef2b17e94 100644
--- a/docs/manual/misc/security_tips.html.fr
+++ b/docs/manual/misc/security_tips.html.fr
@@ -7,7 +7,7 @@
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
-<title>Conseils sur la s&#233;curit&#233; - Serveur HTTP Apache Version 2.5</title>
+<title>Conseils sur la sécurité - Serveur HTTP Apache Version 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
@@ -21,155 +21,155 @@
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
-<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Conseils sur la s&#233;curit&#233;</h1>
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Documentations diverses</a></div><div id="page-content"><div id="preamble"><h1>Conseils sur la sécurité</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/security_tips.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/security_tips.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
+<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<p>Ce document propose quelques conseils et astuces concernant les
- probl&#232;mes de s&#233;curit&#233; li&#233;s
- &#224; l'installation d'un serveur web. Certaines suggestions seront &#224; caract&#232;re
- g&#233;n&#233;ral, tandis que d'autres seront sp&#233;cifiques &#224; Apache.</p>
+ problèmes de sécurité liés
+ à l'installation d'un serveur web. Certaines suggestions seront à caractère
+ général, tandis que d'autres seront spécifiques à Apache.</p>
</div>
-<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#uptodate">Maintenez votre serveur &#224; jour</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#dos">Attaques de type "D&#233;ni de service"
+<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#uptodate">Maintenez votre serveur à jour</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#dos">Attaques de type "Déni de service"
(Denial of Service - DoS)</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#serverroot">Permissions sur les r&#233;pertoires de la racine du serveur</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#ssi">Inclusions c&#244;t&#233; serveur</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#cgi">Les CGI en g&#233;n&#233;ral</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#serverroot">Permissions sur les répertoires de la racine du serveur</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#ssi">Inclusions côté serveur</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#cgi">Les CGI en général</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#nsaliasedcgi">CGI sans alias de script</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#saliasedcgi">CGI avec alias de script</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#dynamic">Autres sources de contenu dynamique</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#systemsettings">Protection de la configuration du syst&#232;me</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#protectserverfiles">Protection par d&#233;faut des fichiers du serveur</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#systemsettings">Protection de la configuration du système</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#protectserverfiles">Protection par défaut des fichiers du serveur</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#watchyourlogs">Surveillez vos journaux</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#merging">Fusion des sections de configuration</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="uptodate" id="uptodate">Maintenez votre serveur &#224; jour</a><a title="Lien permanent" href="#uptodate" class="permalink">&para;</a></h2>
+<h2><a name="uptodate" id="uptodate">Maintenez votre serveur à jour</a><a title="Lien permanent" href="#uptodate" class="permalink">&para;</a></h2>
- <p>Le serveur HTTP Apache a une bonne r&#233;putation en mati&#232;re de s&#233;curit&#233;
- et poss&#232;de une communaut&#233; de d&#233;veloppeurs tr&#232;s sensibilis&#233;s aux probl&#232;mes
- de s&#233;curit&#233;. Mais il est in&#233;vitable de trouver certains probl&#232;mes
- -- petits ou grands -- une fois le logiciel mis &#224; disposition. C'est pour
- cette raison qu'il est crucial de se tenir inform&#233; des mises &#224; jour. Si
+ <p>Le serveur HTTP Apache a une bonne réputation en matière de sécurité
+ et possède une communauté de développeurs très sensibilisés aux problèmes
+ de sécurité. Mais il est inévitable de trouver certains problèmes
+ -- petits ou grands -- une fois le logiciel mis à disposition. C'est pour
+ cette raison qu'il est crucial de se tenir informé des mises à jour. Si
vous avez obtenu votre version du serveur HTTP directement depuis Apache,
- nous vous conseillons grandement de vous abonner &#224; la <a href="http://httpd.apache.org/lists.html#http-announce">Liste de diffusion
+ nous vous conseillons grandement de vous abonner à la <a href="http://httpd.apache.org/lists.html#http-announce">Liste de diffusion
des annonces du serveur HTTP</a> qui vous informera de
- la parution des nouvelles versions et des mises &#224; jour de s&#233;curit&#233;. La
+ la parution des nouvelles versions et des mises à jour de sécurité. La
plupart des distributeurs tiers d'Apache fournissent des services
similaires.</p>
- <p>Gardez cependant &#224; l'esprit que lorsqu'un serveur web est compromis, le
- code du serveur HTTP n'est la plupart du temps pas en cause. Les probl&#232;mes
- proviennent plut&#244;t de code ajout&#233;, de scripts CGI, ou du syst&#232;me
- d'exploitation sous-jacent. Vous devez donc vous tenir inform&#233; des
- probl&#232;mes et mises &#224; jour concernant tous les logiciels pr&#233;sents sur
- votre syst&#232;me.</p>
+ <p>Gardez cependant à l'esprit que lorsqu'un serveur web est compromis, le
+ code du serveur HTTP n'est la plupart du temps pas en cause. Les problèmes
+ proviennent plutôt de code ajouté, de scripts CGI, ou du système
+ d'exploitation sous-jacent. Vous devez donc vous tenir informé des
+ problèmes et mises à jour concernant tous les logiciels présents sur
+ votre système.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="dos" id="dos">Attaques de type "D&#233;ni de service"
+<h2><a name="dos" id="dos">Attaques de type "Déni de service"
(Denial of Service - DoS)</a><a title="Lien permanent" href="#dos" class="permalink">&para;</a></h2>
- <p>Tous les services r&#233;seau peuvent faire l'objet d'attaques de type
- "D&#233;ni de service" qui tentent de les emp&#234;cher de r&#233;pondre aux clients en
- saturant leurs ressources. Il est impossible de se pr&#233;munir totalement
+ <p>Tous les services réseau peuvent faire l'objet d'attaques de type
+ "Déni de service" qui tentent de les empêcher de répondre aux clients en
+ saturant leurs ressources. Il est impossible de se prémunir totalement
contre ce type d'attaques, mais vous pouvez accomplir certaines actions
- afin de minimiser les probl&#232;mes qu'elles cr&#233;ent.</p>
+ afin de minimiser les problèmes qu'elles créent.</p>
- <p>Souvent, l'outil anti-DoS le plus efficace sera constitu&#233; par le
- pare-feu ou certaines configurations du syst&#232;me d'exploitation. Par
- exemple, la plupart des pare-feu peuvent &#234;tre configur&#233;s de fa&#231;on &#224;
- limiter le nombre de connexions simultan&#233;es depuis une adresse IP ou un
- r&#233;seau, ce qui permet de pr&#233;venir toute une gamme d'attaques simples.
- Bien s&#251;r, ceci n'est d'aucun secours contre les attaques de type
- "D&#233;ni de service" distribu&#233;es (DDoS).</p>
+ <p>Souvent, l'outil anti-DoS le plus efficace sera constitué par le
+ pare-feu ou certaines configurations du système d'exploitation. Par
+ exemple, la plupart des pare-feu peuvent être configurés de façon à
+ limiter le nombre de connexions simultanées depuis une adresse IP ou un
+ réseau, ce qui permet de prévenir toute une gamme d'attaques simples.
+ Bien sûr, ceci n'est d'aucun secours contre les attaques de type
+ "Déni de service" distribuées (DDoS).</p>
- <p>Certains r&#233;glages de la configuration d'Apache peuvent aussi
- minimiser les probl&#232;mes :</p>
+ <p>Certains réglages de la configuration d'Apache peuvent aussi
+ minimiser les problèmes :</p>
<ul>
<li>La directive <code class="directive"><a href="../mod/mod_reqtimeout.html#requestreadtimeout">RequestReadTimeout</a></code> permet de
- limiter le temps que met le client pour envoyer sa requ&#234;te.</li>
+ limiter le temps que met le client pour envoyer sa requête.</li>
<li>La valeur de la directive
- <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> doit &#234;tre diminu&#233;e sur les
+ <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code> doit être diminuée sur les
sites sujets aux attaques DoS. Une valeur de quelques secondes devrait
convenir. Cependant, comme <code class="directive"><a href="../mod/core.html#timeout">TimeOut</a></code>
- est actuellement concern&#233; par de nombreuses op&#233;rations diff&#233;rentes, lui
- attribuer une valeur trop faible peut provoquer des probl&#232;mes avec les
- scripts CGI qui pr&#233;sentent un long temps de r&#233;ponse.</li>
+ est actuellement concerné par de nombreuses opérations différentes, lui
+ attribuer une valeur trop faible peut provoquer des problèmes avec les
+ scripts CGI qui présentent un long temps de réponse.</li>
<li>La valeur de la directive
- <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> doit aussi &#234;tre
- diminu&#233;e sur les sites sujets aux attaques DoS. Certains sites
- d&#233;sactivent m&#234;me compl&#232;tement le "maintien en vie" (keepalives)
- &#224; l'aide de la directive
- <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code>, ce qui bien s&#251;r
- pr&#233;sente des inconv&#233;nients en mati&#232;re de performances.</li>
+ <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code> doit aussi être
+ diminuée sur les sites sujets aux attaques DoS. Certains sites
+ désactivent même complètement le "maintien en vie" (keepalives)
+ à l'aide de la directive
+ <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code>, ce qui bien sûr
+ présente des inconvénients en matière de performances.</li>
- <li>Les valeurs des diff&#233;rentes directives fournies par d'autres modules
- et en rapport avec des d&#233;lais doivent aussi &#234;tre v&#233;rifi&#233;es.</li>
+ <li>Les valeurs des différentes directives fournies par d'autres modules
+ et en rapport avec des délais doivent aussi être vérifiées.</li>
<li>Les directives
<code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>,
<code class="directive"><a href="../mod/core.html#limitrequestfields">LimitRequestFields</a></code>,
<code class="directive"><a href="../mod/core.html#limitrequestfieldsize">LimitRequestFieldSize</a></code>,
<code class="directive"><a href="../mod/core.html#limitrequestline">LimitRequestLine</a></code>, et
- <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> doivent &#234;tre
- configur&#233;es avec prudence afin de limiter la consommation de ressources
+ <code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code> doivent être
+ configurées avec prudence afin de limiter la consommation de ressources
induite par les demandes des clients.
</li>
- <li>Sur les syst&#232;mes d'exploitation qui le supportent, assurez-vous que
+ <li>Sur les systèmes d'exploitation qui le supportent, assurez-vous que
la directive <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code> est
- activ&#233;e afin de d&#233;l&#233;guer une partie du traitement des requ&#234;tes au
- syst&#232;me d'exploitation. Elle est activ&#233;e par d&#233;faut dans le d&#233;mon httpd
- d'Apache, mais peut n&#233;cessiter une reconfiguration de votre noyau.</li>
+ activée afin de déléguer une partie du traitement des requêtes au
+ système d'exploitation. Elle est activée par défaut dans le démon httpd
+ d'Apache, mais peut nécessiter une reconfiguration de votre noyau.</li>
- <li>Optimisez la directive <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> de fa&#231;on &#224; d&#233;finir le nombre
- maximum de connexions simultan&#233;es au dessus duquel les ressources
- s'&#233;puisent. Voir aussi la <a href="perf-tuning.html">documentation sur l'optimisation des
+ <li>Optimisez la directive <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> de façon à définir le nombre
+ maximum de connexions simultanées au dessus duquel les ressources
+ s'épuisent. Voir aussi la <a href="perf-tuning.html">documentation sur l'optimisation des
performances</a>.</li>
- <li>L'utilisation d'un <a href="../mpm.html">module mpm</a> thread&#233;
- vous permet de traiter d'avantage de connexions simultan&#233;es, ce qui
+ <li>L'utilisation d'un <a href="../mpm.html">module mpm</a> threadé
+ vous permet de traiter d'avantage de connexions simultanées, ce qui
minimise l'effet des attaques DoS. Dans le futur, le module mpm
<code class="module"><a href="../mod/event.html">event</a></code> utilisera un traitement asynchrone afin de ne pas
- d&#233;dier un thread &#224; chaque connexion. De par la
- nature de la biblioth&#232;que OpenSSL, le module mpm <code class="module"><a href="../mod/event.html">event</a></code> est actuellement incompatible
+ dédier un thread à chaque connexion. De par la
+ nature de la bibliothèque OpenSSL, le module mpm <code class="module"><a href="../mod/event.html">event</a></code> est actuellement incompatible
avec le module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ainsi que d'autres filtres
- en entr&#233;e. Dans ces cas, son comportement se ram&#232;ne &#224; celui
+ en entrée. Dans ces cas, son comportement se ramène à celui
du module mpm <code class="module"><a href="../mod/worker.html">worker</a></code>.</li>
- <li>Il existe de nombreux modules tiers disponibles &#224; <a href="http://modules.apache.org/">http://modules.apache.org/</a> qui
+ <li>Il existe de nombreux modules tiers disponibles à <a href="http://modules.apache.org/">http://modules.apache.org/</a> qui
peuvent retreindre les comportements de certains clients et ainsi
- minimiser les probl&#232;mes de DoS.</li>
+ minimiser les problèmes de DoS.</li>
</ul>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="serverroot" id="serverroot">Permissions sur les r&#233;pertoires de la racine du serveur</a><a title="Lien permanent" href="#serverroot" class="permalink">&para;</a></h2>
+<h2><a name="serverroot" id="serverroot">Permissions sur les répertoires de la racine du serveur</a><a title="Lien permanent" href="#serverroot" class="permalink">&para;</a></h2>
- <p>Typiquement, Apache est d&#233;marr&#233; par l'utilisateur root, puis il devient
- la propri&#233;t&#233; de l'utilisateur d&#233;fini par la directive <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> afin de r&#233;pondre aux demandes. Comme
- pour toutes les commandes ex&#233;cut&#233;es par root, vous devez vous assurer
+ <p>Typiquement, Apache est démarré par l'utilisateur root, puis il devient
+ la propriété de l'utilisateur défini par la directive <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> afin de répondre aux demandes. Comme
+ pour toutes les commandes exécutées par root, vous devez vous assurer
qu'elle n'est pas modifiable par les utilisateurs autres que root. Les
- fichiers eux-m&#234;mes, mais aussi les r&#233;pertoires ainsi que leurs parents ne
- doivent &#234;tre modifiables que par root. Par exemple, si vous avez choisi de
- placer la racine du serveur dans <code>/usr/local/apache</code>, il est conseill&#233; de
- cr&#233;er le r&#233;pertoire en tant que root, avec des commandes du style :</p>
+ fichiers eux-mêmes, mais aussi les répertoires ainsi que leurs parents ne
+ doivent être modifiables que par root. Par exemple, si vous avez choisi de
+ placer la racine du serveur dans <code>/usr/local/apache</code>, il est conseillé de
+ créer le répertoire en tant que root, avec des commandes du style :</p>
<div class="example"><p><code>
mkdir /usr/local/apache <br />
@@ -182,8 +182,8 @@
<p>Nous supposerons que <code>/</code>, <code>/usr</code> et
<code>/usr/local</code> ne sont modifiables que par
- root. Quand vous installez l'ex&#233;cutable <code class="program"><a href="../programs/httpd.html">httpd</a></code>, vous
- devez vous assurer qu'il poss&#232;de des protections similaires :</p>
+ root. Quand vous installez l'exécutable <code class="program"><a href="../programs/httpd.html">httpd</a></code>, vous
+ devez vous assurer qu'il possède des protections similaires :</p>
<div class="example"><p><code>
cp httpd /usr/local/apache/bin <br />
@@ -192,91 +192,91 @@
chmod 511 /usr/local/apache/bin/httpd
</code></p></div>
- <p>Vous pouvez cr&#233;er un sous-r&#233;pertoire htdocs modifiable par d'autres
- utilisateurs -- car root ne cr&#233;e ni ex&#233;cute aucun fichier dans ce
- sous-r&#233;pertoire.</p>
+ <p>Vous pouvez créer un sous-répertoire htdocs modifiable par d'autres
+ utilisateurs -- car root ne crée ni exécute aucun fichier dans ce
+ sous-répertoire.</p>
- <p>Si vous permettez &#224; des utilisateurs non root de modifier des fichiers
- que root &#233;crit ou ex&#233;cute, vous exposez votre syst&#232;me &#224; une compromission
+ <p>Si vous permettez à des utilisateurs non root de modifier des fichiers
+ que root écrit ou exécute, vous exposez votre système à une compromission
de l'utilisateur root. Par exemple, quelqu'un pourrait remplacer le binaire
- <code class="program"><a href="../programs/httpd.html">httpd</a></code> de fa&#231;on &#224; ce que la prochaine fois que vous le
- red&#233;marrerez, il ex&#233;cutera un code arbitraire. Si le r&#233;pertoire des
- journaux a les droits en &#233;criture (pour un utilisateur non root), quelqu'un
+ <code class="program"><a href="../programs/httpd.html">httpd</a></code> de façon à ce que la prochaine fois que vous le
+ redémarrerez, il exécutera un code arbitraire. Si le répertoire des
+ journaux a les droits en écriture (pour un utilisateur non root), quelqu'un
pourrait remplacer un fichier journal par un lien symbolique vers un autre
- fichier syst&#232;me, et root pourrait alors &#233;craser ce fichier avec des donn&#233;es
- arbitraires. Si les fichiers journaux eux-m&#234;mes ont des droits en
- &#233;criture (pour un utilisateur non root), quelqu'un pourrait
- modifier les journaux eux-m&#234;mes avec des donn&#233;es fausses.</p>
+ fichier système, et root pourrait alors écraser ce fichier avec des données
+ arbitraires. Si les fichiers journaux eux-mêmes ont des droits en
+ écriture (pour un utilisateur non root), quelqu'un pourrait
+ modifier les journaux eux-mêmes avec des données fausses.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="ssi" id="ssi">Inclusions c&#244;t&#233; serveur</a><a title="Lien permanent" href="#ssi" class="permalink">&para;</a></h2>
+<h2><a name="ssi" id="ssi">Inclusions côté serveur</a><a title="Lien permanent" href="#ssi" class="permalink">&para;</a></h2>
- <p>Les inclusions c&#244;t&#233; serveur (Server Side Includes - SSI) exposent
- l'administrateur du serveur &#224; de nombreux risques potentiels en mati&#232;re de
- s&#233;curit&#233;.</p>
+ <p>Les inclusions côté serveur (Server Side Includes - SSI) exposent
+ l'administrateur du serveur à de nombreux risques potentiels en matière de
+ sécurité.</p>
<p>Le premier risque est l'augmentation de la charge du serveur. Tous les
- fichiers o&#249; SSI est activ&#233; doivent &#234;tre analys&#233;s par Apache, qu'ils
+ fichiers où SSI est activé doivent être analysés par Apache, qu'ils
contiennent des directives SSI ou non. L'augmentation de la charge induite
est minime, mais peut devenir significative dans le contexte d'un
- serveur partag&#233;.</p>
+ serveur partagé.</p>
- <p>Les fichiers SSI pr&#233;sentent les m&#234;mes risques que les scripts CGI en
- g&#233;n&#233;ral. Les fichiers o&#249; SSI est activ&#233; peuvent ex&#233;cuter tout script CGI
- ou autre programme &#224; l'aide de la commande <code>"exec cmd"</code> avec les permissions
- des utilisateur et groupe sous lesquels Apache s'ex&#233;cute, comme d&#233;fini
+ <p>Les fichiers SSI présentent les mêmes risques que les scripts CGI en
+ général. Les fichiers où SSI est activé peuvent exécuter tout script CGI
+ ou autre programme à l'aide de la commande <code>"exec cmd"</code> avec les permissions
+ des utilisateur et groupe sous lesquels Apache s'exécute, comme défini
dans <code>httpd.conf</code>.</p>
- <p>Des m&#233;thodes existent pour am&#233;liorer la s&#233;curit&#233; des fichiers SSI, tout
- en tirant parti des b&#233;n&#233;fices qu'ils apportent.</p>
+ <p>Des méthodes existent pour améliorer la sécurité des fichiers SSI, tout
+ en tirant parti des bénéfices qu'ils apportent.</p>
<p>Pour limiter les dommages qu'un fichier SSI agressif pourrait causer,
l'administrateur du serveur peut activer<a href="../suexec.html">suexec</a>
- comme d&#233;crit dans la section <a href="#cgi">Les CGI en g&#233;n&#233;ral</a>.</p>
+ comme décrit dans la section <a href="#cgi">Les CGI en général</a>.</p>
- <p>L'activation des SSI pour des fichiers poss&#233;dant des extensions
+ <p>L'activation des SSI pour des fichiers possédant des extensions
<code>.html</code> ou
- <code>.htm</code> peut s'av&#233;rer dangereux. Ceci est particuli&#232;rement vrai dans un
- environnement de serveur partag&#233; ou &#233;tant le si&#232;ge d'un traffic &#233;lev&#233;. Les
- fichiers o&#249; SSI est activ&#233; doivent poss&#233;der une extension sp&#233;cifique, telle
+ <code>.htm</code> peut s'avérer dangereux. Ceci est particulièrement vrai dans un
+ environnement de serveur partagé ou étant le siège d'un traffic élevé. Les
+ fichiers où SSI est activé doivent posséder une extension spécifique, telle
que la conventionnelle <code>.shtml</code>. Ceci permet de limiter la charge du serveur
- &#224; un niveau minimum et de simplifier la gestion des risques.</p>
+ à un niveau minimum et de simplifier la gestion des risques.</p>
- <p>Une autre solution consiste &#224; interdire l'ex&#233;cution de scripts et
- programmes &#224; partir de pages SSI. Pour ce faire, remplacez
+ <p>Une autre solution consiste à interdire l'exécution de scripts et
+ programmes à partir de pages SSI. Pour ce faire, remplacez
<code>Includes</code> par <code>IncludesNOEXEC</code> dans la directive
<code class="directive"><a href="../mod/core.html#options">Options</a></code>. Notez que les utilisateurs
- pourront encore utiliser <code>&lt;--#include virtual="..." --&gt;</code> pour ex&#233;cuter
- des scripts CGI si ces scripts sont situ&#233;s dans des r&#233;pertoires sp&#233;cifi&#233;s
+ pourront encore utiliser <code>&lt;--#include virtual="..." --&gt;</code> pour exécuter
+ des scripts CGI si ces scripts sont situés dans des répertoires spécifiés
par une directive
<code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="cgi" id="cgi">Les CGI en g&#233;n&#233;ral</a><a title="Lien permanent" href="#cgi" class="permalink">&para;</a></h2>
+<h2><a name="cgi" id="cgi">Les CGI en général</a><a title="Lien permanent" href="#cgi" class="permalink">&para;</a></h2>
- <p>Tout d'abord, vous devez toujours garder &#224; l'esprit que vous devez
- faire confiance aux d&#233;veloppeurs de scripts ou programmes CGI ainsi qu'&#224;
- vos comp&#233;tences pour d&#233;celer les trous de s&#233;curit&#233; potentiels dans les
- CGI, que ceux-ci soient d&#233;lib&#233;r&#233;s ou accidentels. Les scripts CGI peuvent
- essentiellement ex&#233;cuter des commandes arbitraires sur votre syst&#232;me avec
- les droits de l'utilisateur du serveur web, et peuvent par cons&#233;quent &#234;tre
- extr&#232;mement dangereux s'ils ne sont pas v&#233;rifi&#233;s avec soin.</p>
-
- <p>Tous les scripts CGI s'ex&#233;cutent sous le m&#234;me utilisateur, il peuvent
- donc entrer en conflit (accidentellement ou d&#233;lib&#233;r&#233;ment) avec d'autres
- scripts. Par exemple, l'utilisateur A hait l'utilisateur B, il &#233;crit donc
- un script qui efface la base de donn&#233;es CGI de l'utilisateur B. Vous pouvez
+ <p>Tout d'abord, vous devez toujours garder à l'esprit que vous devez
+ faire confiance aux développeurs de scripts ou programmes CGI ainsi qu'à
+ vos compétences pour déceler les trous de sécurité potentiels dans les
+ CGI, que ceux-ci soient délibérés ou accidentels. Les scripts CGI peuvent
+ essentiellement exécuter des commandes arbitraires sur votre système avec
+ les droits de l'utilisateur du serveur web, et peuvent par conséquent être
+ extrèmement dangereux s'ils ne sont pas vérifiés avec soin.</p>
+
+ <p>Tous les scripts CGI s'exécutent sous le même utilisateur, il peuvent
+ donc entrer en conflit (accidentellement ou délibérément) avec d'autres
+ scripts. Par exemple, l'utilisateur A hait l'utilisateur B, il écrit donc
+ un script qui efface la base de données CGI de l'utilisateur B. Vous pouvez
utiliser le programme <a href="../suexec.html">suEXEC</a> pour faire en
- sorte que les scripts s'ex&#233;cutent sous des utilisateurs diff&#233;rents. Ce
+ sorte que les scripts s'exécutent sous des utilisateurs différents. Ce
programme est inclus dans la distribution d'Apache depuis la version 1.2
- et est appel&#233; &#224; partir de certaines portions de code du serveur Apache. Une
- autre m&#233;thode plus connue est l'utilisation de
+ et est appelé à partir de certaines portions de code du serveur Apache. Une
+ autre méthode plus connue est l'utilisation de
<a href="http://cgiwrap.sourceforge.net/">CGIWrap</a>.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -285,17 +285,17 @@
- <p>Vous ne devez permettre aux utilisateurs d'ex&#233;cuter des scripts CGI
- depuis n'importe quel r&#233;pertoire que dans l'&#233;ventualit&#233; o&#249; :</p>
+ <p>Vous ne devez permettre aux utilisateurs d'exécuter des scripts CGI
+ depuis n'importe quel répertoire que dans l'éventualité où :</p>
<ul>
- <li>Vous faites confiance &#224; vos utilisateurs pour ne pas &#233;crire de
- scripts qui vont d&#233;lib&#233;r&#233;ment ou accidentellement exposer votre
- syst&#232;me &#224; une attaque.</li>
- <li>Vous estimez que le niveau de s&#233;curit&#233; dans les autres parties de
- votre site est si faible qu'un trou de s&#233;curit&#233; de plus ou de moins
- n'est pas tr&#232;s important.</li>
- <li>Votre syst&#232;me ne comporte aucun utilisateur, et personne ne visite
+ <li>Vous faites confiance à vos utilisateurs pour ne pas écrire de
+ scripts qui vont délibérément ou accidentellement exposer votre
+ système à une attaque.</li>
+ <li>Vous estimez que le niveau de sécurité dans les autres parties de
+ votre site est si faible qu'un trou de sécurité de plus ou de moins
+ n'est pas très important.</li>
+ <li>Votre système ne comporte aucun utilisateur, et personne ne visite
jamais votre site.</li>
</ul>
@@ -305,15 +305,15 @@
- <p>Le confinement des CGI dans des r&#233;pertoires sp&#233;cifiques permet &#224;
- l'administrateur de contr&#244;ler ce que l'on met dans ces r&#233;pertoires. Ceci
- est bien entendu mieux s&#233;curis&#233; que les CGI sans alias de script, mais
- seulement &#224; condition que les utilisateurs avec les droits en &#233;criture sur
- les r&#233;pertoires soient dignes de confiance, et que l'administrateur ait la
- volont&#233; de tester chaque programme ou script CGI &#224; la recherche d'&#233;ventuels
- trous de s&#233;curit&#233;.</p>
+ <p>Le confinement des CGI dans des répertoires spécifiques permet à
+ l'administrateur de contrôler ce que l'on met dans ces répertoires. Ceci
+ est bien entendu mieux sécurisé que les CGI sans alias de script, mais
+ seulement à condition que les utilisateurs avec les droits en écriture sur
+ les répertoires soient dignes de confiance, et que l'administrateur ait la
+ volonté de tester chaque programme ou script CGI à la recherche d'éventuels
+ trous de sécurité.</p>
- <p>La plupart des sites choisissent cette approche au d&#233;triment des CGI
+ <p>La plupart des sites choisissent cette approche au détriment des CGI
sans alias de script.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
@@ -323,25 +323,25 @@
<p>
- Les options de scripting int&#233;gr&#233;es qui s'ex&#233;cutent en tant que partie du
- serveur lui-m&#234;me, comme <code>mod_php</code>, <code>mod_perl</code>,
+ Les options de scripting intégrées qui s'exécutent en tant que partie du
+ serveur lui-même, comme <code>mod_php</code>, <code>mod_perl</code>,
<code>mod_tcl</code>, et <code>mod_python</code>,
- s'ex&#233;cutent sous le m&#234;me utilisateur que le serveur (voir la directive
- <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>), et par cons&#233;quent,
- les scripts que ces moteurs ex&#233;cutent peuvent acc&#233;der aux m&#234;mes ressources
+ s'exécutent sous le même utilisateur que le serveur (voir la directive
+ <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>), et par conséquent,
+ les scripts que ces moteurs exécutent peuvent accéder aux mêmes ressources
que le serveur. Certains moteurs de scripting peuvent proposer des
- restrictions, mais pour plus de s&#251;ret&#233;, il vaut mieux partir du principe
+ restrictions, mais pour plus de sûreté, il vaut mieux partir du principe
que ce n'est pas le cas.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="systemsettings" id="systemsettings">Protection de la configuration du syst&#232;me</a><a title="Lien permanent" href="#systemsettings" class="permalink">&para;</a></h2>
+<h2><a name="systemsettings" id="systemsettings">Protection de la configuration du système</a><a title="Lien permanent" href="#systemsettings" class="permalink">&para;</a></h2>
- <p>Pour contr&#244;ler &#233;troitement votre serveur, vous pouvez interdire
+ <p>Pour contrôler étroitement votre serveur, vous pouvez interdire
l'utilisation des fichiers <code>.htaccess</code> qui permettent de
- passer outre les fonctionnalit&#233;s de s&#233;curit&#233; que vous avez configur&#233;es.
+ passer outre les fonctionnalités de sécurité que vous avez configurées.
Voici un moyen pour y parvenir :</p>
<p>Ajoutez dans le fichier de configuration du serveur</p>
@@ -352,32 +352,32 @@
<p>Ceci interdit l'utilisation des fichiers <code>.htaccess</code> dans
- tous les r&#233;pertoires, sauf ceux pour lesquels c'est explicitement
- autoris&#233;.</p>
+ tous les répertoires, sauf ceux pour lesquels c'est explicitement
+ autorisé.</p>
- <p>Notez que c'est la configuration par d&#233;faut depuis Apache 2.3.9.</p>
+ <p>Notez que c'est la configuration par défaut depuis Apache 2.3.9.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
-<h2><a name="protectserverfiles" id="protectserverfiles">Protection par d&#233;faut des fichiers du serveur</a><a title="Lien permanent" href="#protectserverfiles" class="permalink">&para;</a></h2>
+<h2><a name="protectserverfiles" id="protectserverfiles">Protection par défaut des fichiers du serveur</a><a title="Lien permanent" href="#protectserverfiles" class="permalink">&para;</a></h2>
- <p>Le concept d'acc&#232;s par d&#233;faut est un aspect d'Apache qui est parfois mal
- compris. C'est &#224; dire que, &#224; moins que vous ne changiez explicitement ce
+ <p>Le concept d'accès par défaut est un aspect d'Apache qui est parfois mal
+ compris. C'est à dire que, à moins que vous ne changiez explicitement ce
comportement, si le serveur trouve son chemin vers un fichier en suivant
- les r&#232;gles normales de correspondance URL - fichier, il peut le retourner
+ les règles normales de correspondance URL - fichier, il peut le retourner
aux clients.</p>
- <p>Consid&#233;rons l'exemple suivant :</p>
+ <p>Considérons l'exemple suivant :</p>
<div class="example"><p><code>
# cd /; ln -s / public_html <br />
- puis acc&#232;s &#224; <code>http://localhost/~root/</code>
+ puis accès à <code>http://localhost/~root/</code>
</code></p></div>
- <p>Ceci permettrait aux clients de parcourir l'ensemble du syst&#232;me de
- fichiers. Pour l'&#233;viter, ajoutez le bloc suivant &#224; la configuration
+ <p>Ceci permettrait aux clients de parcourir l'ensemble du système de
+ fichiers. Pour l'éviter, ajoutez le bloc suivant à la configuration
de votre serveur :</p>
<pre class="prettyprint lang-config">&lt;Directory "/"&gt;
@@ -385,10 +385,10 @@
&lt;/Directory&gt;</pre>
- <p>ceci va interdire l'acc&#232;s par d&#233;faut &#224; tous les fichiers du syst&#232;me de
+ <p>ceci va interdire l'accès par défaut à tous les fichiers du système de
fichiers. Vous devrez ensuite ajouter les blocs
- <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> appropri&#233;s correspondant
- aux r&#233;pertoires auxquels vous voulez autorisez l'acc&#232;s. Par exemple,</p>
+ <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> appropriés correspondant
+ aux répertoires auxquels vous voulez autorisez l'accès. Par exemple,</p>
<pre class="prettyprint lang-config">&lt;Directory "/usr/users/*/public_html"&gt;
Require all granted
@@ -398,15 +398,15 @@
&lt;/Directory&gt;</pre>
- <p>Portez une attention particuli&#232;re aux interactions entre les directives
+ <p>Portez une attention particulière aux interactions entre les directives
<code class="directive"><a href="../mod/core.html#location">Location</a></code> et
<code class="directive"><a href="../mod/core.html#directory">Directory</a></code> ; par exemple, si une
- directive <code>&lt;Directory "/"&gt;</code> interdit un acc&#232;s, une
+ directive <code>&lt;Directory "/"&gt;</code> interdit un accès, une
directive <code>&lt;Location "/"&gt;</code> pourra passer outre.</p>
- <p>De m&#234;me, soyez m&#233;fiant en jouant avec la directive
- <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> ; la positionner &#224;
- <code>"./"</code> aurait le m&#234;me effet, pour root, que le premier exemple plus haut.
+ <p>De même, soyez méfiant en jouant avec la directive
+ <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> ; la positionner à
+ <code>"./"</code> aurait le même effet, pour root, que le premier exemple plus haut.
Nous vous conseillons
fortement d'inclure la ligne suivante dans le fichier de configuration de
votre serveur :</p>
@@ -420,12 +420,12 @@
- <p>Pour vous tenir inform&#233; de ce qui se passe r&#233;ellement dans votre
+ <p>Pour vous tenir informé de ce qui se passe réellement dans votre
serveur, vous devez consulter vos
- <a href="../logs.html">fichiers journaux</a>. M&#234;me si les fichiers journaux
- ne consignent que des &#233;v&#232;nements qui se sont d&#233;j&#224; produits, ils vous
- informeront sur la nature des attaques qui sont lanc&#233;es contre le serveur
- et vous permettront de v&#233;rifier si le niveau de s&#233;curit&#233; n&#233;cessaire est
+ <a href="../logs.html">fichiers journaux</a>. Même si les fichiers journaux
+ ne consignent que des évènements qui se sont déjà produits, ils vous
+ informeront sur la nature des attaques qui sont lancées contre le serveur
+ et vous permettront de vérifier si le niveau de sécurité nécessaire est
atteint.</p>
<p>Quelques exemples :</p>
@@ -436,10 +436,10 @@
</code></p></div>
<p>Le premier exemple listera les attaques essayant d'exploiter la
- <a href="http://online.securityfocus.com/bid/4876/info/">vuln&#233;rabilit&#233;
+ <a href="http://online.securityfocus.com/bid/4876/info/">vulnérabilité
d'Apache Tomcat pouvant provoquer la divulgation d'informations par des
- requ&#234;tes Source.JSP mal form&#233;es</a>, le second donnera la liste des dix
- derni&#232;res interdictions client ; par exemple :</p>
+ requêtes Source.JSP mal formées</a>, le second donnera la liste des dix
+ dernières interdictions client ; par exemple :</p>
<div class="example"><p><code>
[Thu Jul 11 17:18:39 2002] [error] [client foo.example.com] client denied
@@ -447,14 +447,14 @@
</code></p></div>
<p>Comme vous le voyez, les fichiers journaux ne consignent que ce qui
- s'est d&#233;j&#224; produit ; ainsi, si le client a pu acc&#233;der au fichier
+ s'est déjà produit ; ainsi, si le client a pu accéder au fichier
<code>.htpasswd</code>, vous devriez avoir quelque chose du style :</p>
<div class="example"><p><code>
foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
</code></p></div>
- <p>dans votre <a href="../logs.html#accesslog">journal des acc&#232;s</a> ; ce
+ <p>dans votre <a href="../logs.html#accesslog">journal des accès</a> ; ce
qui signifie que vous avez probablement mis en commentaire ce qui suit dans
le fichier de configuration de votre serveur :</p>
@@ -469,25 +469,25 @@
- <p>La fusion des sections de configuration est complexe et d&#233;pend
- souvent des directives utilis&#233;es. Vous devez syst&#233;matiquement tester
- vos modifications pour v&#233;rifier la mani&#232;re dont les directives sont
- fusionn&#233;es.</p>
+ <p>La fusion des sections de configuration est complexe et dépend
+ souvent des directives utilisées. Vous devez systématiquement tester
+ vos modifications pour vérifier la manière dont les directives sont
+ fusionnées.</p>
- <p>Concernant les modules qui n'impl&#233;mentent aucune logique de
+ <p>Concernant les modules qui n'implémentent aucune logique de
fusion, comme <code class="directive">mod_access_compat</code>, le
- comportement des sections suivantes est tributaire de la pr&#233;sence
- dans ces derni&#232;res de directives appartenant &#224; ces modules. La
- configuration est h&#233;rit&#233;e jusqu'&#224; ce qu'une modification soit
- effectu&#233;e ; &#224; ce moment, la configuration est <em>remplac&#233;e</em> et
- non fusionn&#233;e.</p>
+ comportement des sections suivantes est tributaire de la présence
+ dans ces dernières de directives appartenant à ces modules. La
+ configuration est héritée jusqu'à ce qu'une modification soit
+ effectuée ; à ce moment, la configuration est <em>remplacée</em> et
+ non fusionnée.</p>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/misc/security_tips.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
-<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
-<a href="../fr/misc/security_tips.html" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
+<a href="../es/misc/security_tips.html" hreflang="es" rel="alternate" title="Español">&nbsp;es&nbsp;</a> |
+<a href="../fr/misc/security_tips.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/misc/security_tips.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
-<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
+<a href="../tr/misc/security_tips.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
@@ -506,7 +506,7 @@ var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/security_tips
}
})(window, document);
//--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris&#233; sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();