diff options
author | André Malo <nd@apache.org> | 2017-12-30 20:34:11 +0100 |
---|---|---|
committer | André Malo <nd@apache.org> | 2017-12-30 20:34:11 +0100 |
commit | 36197b5e7414ac805979482c305f24a03d698782 (patch) | |
tree | 012de53e7eeafb38d1b6e20a4600f5a59c41954f | |
parent | svn:eol-style = native (diff) | |
download | apache2-36197b5e7414ac805979482c305f24a03d698782.tar.xz apache2-36197b5e7414ac805979482c305f24a03d698782.zip |
update transformation
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1819675 13f79535-47bb-0310-9956-ffa450edef68
51 files changed, 8230 insertions, 33 deletions
diff --git a/docs/manual/howto/reverse_proxy.html b/docs/manual/howto/reverse_proxy.html index 6f59820f9c..a0d9e9d84d 100644 --- a/docs/manual/howto/reverse_proxy.html +++ b/docs/manual/howto/reverse_proxy.html @@ -7,3 +7,7 @@ Content-type: text/html; charset=ISO-8859-1 URI: reverse_proxy.html.es Content-Language: es Content-type: text/html; charset=ISO-8859-1 + +URI: reverse_proxy.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/howto/reverse_proxy.html.en b/docs/manual/howto/reverse_proxy.html.en index 692e63f605..089367a52b 100644 --- a/docs/manual/howto/reverse_proxy.html.en +++ b/docs/manual/howto/reverse_proxy.html.en @@ -24,7 +24,8 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">How-To / Tutorials</a></div><div id="page-content"><div id="preamble"><h1>Reverse Proxy Guide</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/howto/reverse_proxy.html" title="English"> en </a> | -<a href="../es/howto/reverse_proxy.html" hreflang="es" rel="alternate" title="Español"> es </a></p> +<a href="../es/howto/reverse_proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/reverse_proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p>In addition to being a "basic" web server, and providing static and @@ -306,7 +307,8 @@ ProxyPassReverse "/images/" "balancer://myset/"</pre> </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/howto/reverse_proxy.html" title="English"> en </a> | -<a href="../es/howto/reverse_proxy.html" hreflang="es" rel="alternate" title="Español"> es </a></p> +<a href="../es/howto/reverse_proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/reverse_proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/howto/reverse_proxy.html.es b/docs/manual/howto/reverse_proxy.html.es index 7930e99a48..dbca125b6a 100644 --- a/docs/manual/howto/reverse_proxy.html.es +++ b/docs/manual/howto/reverse_proxy.html.es @@ -24,7 +24,8 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <a href="./">How-To / Tutoriales</a></div><div id="page-content"><div id="preamble"><h1>Guía de Proxy Inverso</h1> <div class="toplang"> <p><span>Idiomas disponibles: </span><a href="../en/howto/reverse_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../es/howto/reverse_proxy.html" title="Español"> es </a></p> +<a href="../es/howto/reverse_proxy.html" title="Español"> es </a> | +<a href="../fr/howto/reverse_proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p>Además de ser un servidor web "básico", y proveer contenido estático y @@ -305,7 +306,8 @@ ProxyPassReverse "/images/" "balancer://myset/"</pre> </div></div> <div class="bottomlang"> <p><span>Idiomas disponibles: </span><a href="../en/howto/reverse_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../es/howto/reverse_proxy.html" title="Español"> es </a></p> +<a href="../es/howto/reverse_proxy.html" title="Español"> es </a> | +<a href="../fr/howto/reverse_proxy.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comentarios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/howto/reverse_proxy.html.fr b/docs/manual/howto/reverse_proxy.html.fr new file mode 100644 index 0000000000..b3645df9da --- /dev/null +++ b/docs/manual/howto/reverse_proxy.html.fr @@ -0,0 +1,357 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Guide de configuration d'un mandataire inverse - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Recettes / Tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Guide de configuration d'un mandataire inverse</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/howto/reverse_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/reverse_proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/reverse_proxy.html" title="Français"> fr </a></p> +</div> + + <p>En plus de ses fonctions de serveur web "basique", à savoir fournir du + contenu statique et dynamique à l'utilisateur, Apache httpd (comme la + plupart des autres serveurs web) peut aussi assurer les fonctions de serveur + mandataire inverse, connu aussi sous le nom de serveur "passerelle".</p> + + <p>Dans un tel scénario, httpd ne génère et n'héberge pas lui-même les + données, le contenu étant en général obtenu à partir d'un ou plusieurs serveurs + d'arrière-plan qui n'ont normalement aucune connexion directe avec le réseau + externe. Lorsque httpd reçoit une requête en provenance d'un client, la + requête proprement dite est <em>mandatée</em> vers un de ces serveurs + d'arrière-plan qui traite la requête, génère le contenu et l'envoie à httpd, + ce dernier générant la véritable réponse HTTP à destination du client.</p> + + <p>De nombreuses raisons peuvent vous motiver à utiliser cette + fonctionnalité, mais elles sont souvent du domaine de la sécurité, de + la haute disponibilité, de la répartition de charge et de + l'authentification/autorisation centralisée. Il est alors indispensable que + l'organisation, la conception et l'architecture de l'infrastructure + d'arrière-plan (les serveurs qui traitent au sens propre les requêtes) soient + isolées et protégées de l'extérieur ; vu du client, le serveur mandataire + inverse <em>est</em> le seul serveur accessible pouvant lui fournir du + contenu.</p> + + <p>Voici un exemple typique d'implémentation de cette fonctionnalité :</p> + <p class="centered"><img src="../images/reverse-proxy-arch.png" alt="reverse-proxy-arch" /></p> + + </div> +<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Mandataire inverse</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#simple">Mandatement inverse simple</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#cluster">Clusters et Balancers</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#config">Configuration du Balancer et des BalancerMembers</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#failover">Gestion des indisponibilités (Failover)</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#manager">Gestion du répartiteur de charge</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#health-check">Vérification dynamique du bon fonctionnement d'un serveur + d'arrière-plan</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#status">Drapeaux d'état d'un membre du groupe de répartition de charge</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="related" id="related">Mandataire inverse</a></h2> + + <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_proxy.html">mod_proxy</a></code></li><li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li><li><code class="module"><a href="../mod/mod_proxy_hcheck.html">mod_proxy_hcheck</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code></li><li><code class="directive"><a href="../mod/mod_proxy.html#balancermember">BalancerMember</a></code></li></ul></td></tr></table> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="simple" id="simple">Mandatement inverse simple</a></h2> + + + <p> + La directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> permet de + rediriger les requêtes entrantes vers un serveur d'arrière-plan (ou un + cluster de serveurs plus connu sous le nom de groupe + <code>Balancer</code>). Dans cet exemple le plus simple, toutes les + requêtes (<code>"/"</code>) sont redirigées vers un serveur d'arrière-plan + unique : + </p> + + <pre class="prettyprint lang-config">ProxyPass "/" "http://www.example.com/"</pre> + + + <p> + Pour être sur que cette redirection soit effectuée et que les en-têtes + <code>Location:</code> générés par le serveur d'arrière-plan soient + modifiés pour pointer vers le mandataire inverse, et non vers le serveur + d'arrière-plan, la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> est souvent requise : + </p> + + <pre class="prettyprint lang-config">ProxyPass "/" "http://www.example.com/" +ProxyPassReverse "/" "http://www.example.com/"</pre> + + + <p>Seules des URIs spécifiques peuvent être mandatées, comme le montre + l'exemple suivant :</p> + + <pre class="prettyprint lang-config">ProxyPass "/images" "http://www.example.com/" +ProxyPassReverse "/images" "http://www.example.com/"</pre> + + + <p>Dans l'exemple précédent, si le chemin d'une requête commence par + <code>/images</code>, elle sera redirigée vers le serveur d'arrière-plan + spécifié ; dans le cas contraire, elle sera traitée localement. + </p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="cluster" id="cluster">Clusters et Balancers</a></h2> + + + <p> + Utiliser un serveur d'arrière-plan unique n'est cependant pas une solution + idéale car ce dernier peut devenir indisponible ou surchargé, et le + mandatement inverse vers ce serveur ne présente alors plus aucun avantage. + La solution réside dans la définition d'un groupe de serveurs + d'arrière-plan qui vont se partager le traitement des requêtes via un + mécanisme de répartition de charge et de gestion des indisponibilités pris + en charge par le mandataire. Ce groupe de répartition est plus connu sous le nom de + <em>cluster</em>, mais dans la terminologie d'Apache httpd, on utilise + plutôt le terme de <em>balancer</em>. Un balancer se définit en + utilisant les directives <code class="directive"><a href="../mod/mod_proxy.html#proxy"><Proxy></a></code> et <code class="directive"><a href="../mod/mod_proxy.html#balancermember">BalancerMember</a></code> comme suit : + </p> + + <pre class="prettyprint lang-config"><Proxy balancer://myset> + BalancerMember http://www2.example.com:8080 + BalancerMember http://www3.example.com:8080 + ProxySet lbmethod=bytraffic +</Proxy> + +ProxyPass "/images/" "balancer://myset/" +ProxyPassReverse "/images/" "balancer://myset/"</pre> + + + <p> + Le protocole <code>balancer://</code> indique à httpd que l'on souhaite + créer un balancer nommé <em>myset</em>. Ce balancer comporte deux serveurs + d'arrière-plan référencés dans la terminologie httpd sous le nom de + <em>BalancerMembers</em>. Avec cet exemple, toute requête dont le chemin + commence par <code>/images</code> sera mandatée vers <em>un</em> des deux + serveurs d'arrière-plan. La directive <code class="directive"><a href="../mod/mod_proxy.html#proxyset">ProxySet</a></code> définit ici pour le balancer + <em>myset</em> un algorithme de + répartition de charge basé sur le trafic entrées/sorties. + </p> + + <div class="note"><h3>Remarque</h3> + <p> + Les <em>BalancerMembers</em> sont aussi souvent référencés sous le terme + <em>workers</em>. + </p> + </div> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="config" id="config">Configuration du Balancer et des BalancerMembers</a></h2> + + + <p> + Vous pouvez configurer de manière détaillée les <em>balancers</em> et + <em>workers</em> via les nombreux paramètres de la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>. Par exemple, si vous souhaitez + que <code>http://www3.example.com:8080</code> traite avec un facteur 3 le + trafic avec un timeout d'une seconde, utilisez la configuration suivante : + </p> + + <pre class="prettyprint lang-config"><Proxy balancer://myset> + BalancerMember http://www2.example.com:8080 + BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 + ProxySet lbmethod=bytraffic +</Proxy> + +ProxyPass "/images" "balancer://myset/" +ProxyPassReverse "/images" "balancer://myset/"</pre> + + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="failover" id="failover">Gestion des indisponibilités (Failover)</a></h2> + + + <p> + Vous pouvez aussi définir finement des scénarios pour les cas + d'indisponibilité d'un ou plusieurs serveurs d'arrière-plan en spécifiant + quels serveurs doivent alors prendre le relai. Dans l'exemple suivant, + deux scénarios sont envisagés : dans le premier, seul + <code>http://hstandby.example.com:8080</code> se voit envoyer du trafic si + tous les autres membres du balancer <em>myset</em> sont indisponibles. + Dans le second, si <code>http://hstandby.example.com:8080</code> est + lui-même indisponible, <code>http://bkup1.example.com:8080</code> et + <code>http://bkup2.example.com:8080</code> deviennent les deux seuls + membres du groupe de répartition de charge actifs : + </p> + + <pre class="prettyprint lang-config"><Proxy balancer://myset> + BalancerMember http://www2.example.com:8080 + BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 + BalancerMember http://hstandby.example.com:8080 status=+H + BalancerMember http://bkup1.example.com:8080 lbset=1 + BalancerMember http://bkup2.example.com:8080 lbset=1 + ProxySet lbmethod=byrequests +</Proxy> + +ProxyPass "/images/" "balancer://myset/" +ProxyPassReverse "/images/" "balancer://myset/"</pre> + + + <p> + Le point central de cet exemple de gestion des indisponibilités est la + configuration du serveur d'arrière-plan + <code>http://hstandby.example.com:8080</code> avec le drapeau + <code>+H</code> qui le place en mode <em>hot standby</em>, et + l'inscription des deux serveurs <code>bkup#</code> dans le groupe de + répartition de charge avec un niveau 1 (le niveau par défaut étant 0) ; en + effet, les serveurs en mode <em>hot standby</em>, s'il existent, sont + utilisés en premier en cas d'indisponibilité de tous les autres serveurs + d'arrière-plan, et ce sont toujours les serveurs de niveau le plus bas qui + sont utilisés en premier. + </p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="manager" id="manager">Gestion du répartiteur de charge</a></h2> + + + <p> + L'application <em>balancer-manager</em> fournie avec le mandataire inverse + d'Apache httpd en est un des outils les plus utiles. Comme + <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>, <em>balancer-manager</em> affiche la + configuration et l'activité actuelles des balancers actifs. L'affichage de + ces informations n'est cependant pas sa seule fonction ; il permet aussi de + modifier la plupart d'entre elles et même d'ajouter des membres au groupe + de répartition de charge en temps réel. Pour activer ces fonctionnalités, + vous devez ajouter les lignes suivantes à votre fichier de configuration : + </p> + + <pre class="prettyprint lang-config"><Location "/balancer-manager"> + SetHandler balancer-manager + Require host localhost +</Location></pre> + + + <div class="warning"><h3>Avertissement</h3> + <p>N'activez le <em>balancer-manager</em> que si vous avez déjà <a href="../mod/mod_proxy.html#access">sécurisé votre serveur</a>. + Assurez-vous en particulier que l'accès à l'URL soit fortement restreint.</p> + </div> + + <p> + Lorsque vous accédez au serveur mandataire avec une adresse du style + <code>http://rproxy.example.com/balancer-manager/</code>, la page suivante + s'affiche : + </p> + <p class="centered"><img src="../images/bal-man.png" alt="balancer-manager page" /></p> + + <p> + Ce formulaire permet à l'administrateur de modifier certains paramètres, + de désactiver ou d'ajouter certains serveurs d'arrière-plan, et de + modifier les règles de répartition de charge. Par exemple, si on clique + sur le répartiteur, la page suivante s'affiche : + </p> + <p class="centered"><img src="../images/bal-man-b.png" alt="balancer-manager page" /></p> + + <p> + Si on clique sur un membre du groupe de répartition de charge, la page + suivante s'affiche : + </p> + <p class="centered"><img src="../images/bal-man-w.png" alt="balancer-manager page" /></p> + + <p> + Si vous souhaitez que ces modifications soient conservées après un + redémarrage du serveur, assurez-vous que la directive <code class="directive"><a href="../mod/mod_proxy.html#balancerpersist">BalancerPersist</a></code> soit définie à On. + </p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="health-check" id="health-check">Vérification dynamique du bon fonctionnement d'un serveur + d'arrière-plan</a></h2> + + + <p> + Avant que le mandataire httpd ne fasse appel à un serveur d'arrière-plan, il + peut <em>"tester"</em> si ce dernier est disponible en définissant le + paramètre <code>ping</code> de ce serveur via la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>. Cependant, il est souvent plus + judicieux de vérifier le bon fonctionnement d'un serveur <em>hors + bande</em> et de manière dynamique via le module + <code class="module"><a href="../mod/mod_proxy_hcheck.html">mod_proxy_hcheck</a></code> d'Apache httpd. + </p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="status" id="status">Drapeaux d'état d'un membre du groupe de répartition de charge</a></h2> + + + <p> + <em>balancer-manager</em> permet d'afficher et de modifier l'état d'un + membre du groupe de répartition de charge. Les différents états et leurs + significations sont les suivants : + </p> + <table class="bordered"> + <tr><th>Drapeau</th><th>Sigle</th><th>Description</th></tr> + <tr><td> </td><td><em>Ok</em></td><td>Le serveur est disponible</td></tr> + <tr><td> </td><td><em>Init</em></td><td>Le serveur a été initialisé</td></tr> + <tr><td><code>D</code></td><td><em>Dis</em></td><td>Le serveur est + désactivé et n'accepte aucune requête ; il sera retesté automatiquement.</td></tr> + <tr><td><code>S</code></td><td><em>Stop</em></td><td>Le serveur a été + arrêté par l'administrateur ; il n'accepte aucune requête et il ne sera + pas retesté automatiquement.</td></tr> + <tr><td><code>I</code></td><td><em>Ign</em></td><td>Les erreurs + concernant ce serveur sont ignorées et il sera donc toujours considéré + comme disponible.</td></tr> + <tr><td><code>H</code></td><td><em>Stby</em></td><td>Le serveur est en + mode hot-standby et ne sera donc utilisé que si aucun autre serveur + n'est disponible.</td></tr> + <tr><td><code>E</code></td><td><em>Err</em></td><td>Le serveur est en + erreur, en général suite à un test préalable à une requête ; aucune + requête ne lui sera soumise, mais il sera retesté en fonction de la + valeur de son paramètre <code>retry</code>.</td></tr> + <tr><td><code>N</code></td><td><em>Drn</em></td><td>Le serveur est en + mode drain ; il n'acceptera de requêtes que dans le cadre des sessions + persistantes qui lui sont réservées et ignorera toutes les autres.</td></tr> + <tr><td><code>C</code></td><td><em>HcFl</em></td><td>Le serveur a échoué + au test dynamique de bon fonctionnement et ne sera utilisé que lorsqu'il + aura réussi un test ultérieur.</td></tr> + </table> + </div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/howto/reverse_proxy.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/reverse_proxy.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/reverse_proxy.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/howto/reverse_proxy.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/misc/perf-scaling.html b/docs/manual/misc/perf-scaling.html index 18a3e56d88..b103febd85 100644 --- a/docs/manual/misc/perf-scaling.html +++ b/docs/manual/misc/perf-scaling.html @@ -7,3 +7,7 @@ Content-type: text/html; charset=ISO-8859-1 URI: perf-scaling.html.es Content-Language: es Content-type: text/html; charset=ISO-8859-1 + +URI: perf-scaling.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/misc/perf-scaling.html.en b/docs/manual/misc/perf-scaling.html.en index cfb95c71ff..40c0c57ef4 100644 --- a/docs/manual/misc/perf-scaling.html.en +++ b/docs/manual/misc/perf-scaling.html.en @@ -24,7 +24,8 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Miscellaneous Documentation</a></div><div id="page-content"><div id="preamble"><h1>Performance Scaling</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/misc/perf-scaling.html" title="English"> en </a> | -<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español"> es </a></p> +<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/misc/perf-scaling.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> @@ -1448,7 +1449,8 @@ CacheMaxExpire 21600</pre> </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/misc/perf-scaling.html" title="English"> en </a> | -<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español"> es </a></p> +<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/misc/perf-scaling.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/misc/perf-scaling.html.es b/docs/manual/misc/perf-scaling.html.es index 0dc6f727ff..1711404674 100644 --- a/docs/manual/misc/perf-scaling.html.es +++ b/docs/manual/misc/perf-scaling.html.es @@ -24,7 +24,8 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.5</a> > <a href="./">Documentación diversa</a></div><div id="page-content"><div id="preamble"><h1>Escalado de Rendimiento</h1> <div class="toplang"> <p><span>Idiomas disponibles: </span><a href="../en/misc/perf-scaling.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../es/misc/perf-scaling.html" title="Español"> es </a></p> +<a href="../es/misc/perf-scaling.html" title="Español"> es </a> | +<a href="../fr/misc/perf-scaling.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p>La página de ajuste de rendimiento en la documentación de Apache 1.3 dice:</p> @@ -705,7 +706,8 @@ CacheMaxExpire 21600</pre> </div></div> <div class="bottomlang"> <p><span>Idiomas disponibles: </span><a href="../en/misc/perf-scaling.html" hreflang="en" rel="alternate" title="English"> en </a> | -<a href="../es/misc/perf-scaling.html" title="Español"> es </a></p> +<a href="../es/misc/perf-scaling.html" title="Español"> es </a> | +<a href="../fr/misc/perf-scaling.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comentarios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/misc/perf-scaling.html.fr b/docs/manual/misc/perf-scaling.html.fr new file mode 100644 index 0000000000..b7a1ed95f6 --- /dev/null +++ b/docs/manual/misc/perf-scaling.html.fr @@ -0,0 +1,1649 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Amélioration des performances - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <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"> en </a> | +<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/misc/perf-scaling.html" title="Français"> fr </a></p> +</div> + + + <p>Il est dit dans la documentation d'Apache 1.3 + à propos de l'amélioration des performances : + </p> + <blockquote><p> + "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 é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é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é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érieur. + </p> + <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é. 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é 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> +<li><img alt="" src="../images/down.gif" /> <a href="#caching-content">Mise en cache des contenus + </a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#further-considerations">Pour aller plus loin + </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="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></h2> + + <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 à 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> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="monitoring-your-server" id="monitoring-your-server">Monitoring de votre serveur</a></h2> + + <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ù il serait mentionné sur Slashdot. </p> + + + <h3><a name="monitoring-tools" id="monitoring-tools">Outils de monitoring</a></h3> + + + <h4><a name="top" id="top">top + </a></h4> + + <p>L'outil top est fourni avec Linux et FreeBSD. Solaris + 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é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é 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écutant sur un système + Linux (Xen) : + </p> + + <div class="example"><pre>top - 23:10:58 up 71 days, 6:14, 4 users, load average: 0.25, 0.53, 0.47 +Tasks: 163 total, 1 running, 162 sleeping, 0 stopped, 0 zombie +Cpu(s): 11.6%us, 0.7%sy, 0.0%ni, 87.3%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st +Mem: 2621656k total, 2178684k used, 442972k free, 100500k buffers +Swap: 4194296k total, 860584k used, 3333712k free, 1157552k cached + + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND +16687 example_ 20 0 1200m 547m 179m S 45 21.4 1:09.59 httpd-worker +15195 www 20 0 441m 33m 2468 S 0 1.3 0:41.41 httpd-worker + 1 root 20 0 10312 328 308 S 0 0.0 0:33.17 init + 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd + 3 root RT -5 0 0 0 S 0 0.0 0:00.14 migration/0 + 4 root 15 -5 0 0 0 S 0 0.0 0:04.58 ksoftirqd/0 + 5 root RT -5 0 0 0 S 0 0.0 4:45.89 watchdog/0 + 6 root 15 -5 0 0 0 S 0 0.0 1:42.52 events/0 + 7 root 15 -5 0 0 0 S 0 0.0 0:00.00 khelper + 19 root 15 -5 0 0 0 S 0 0.0 0:00.00 xenwatch + 20 root 15 -5 0 0 0 S 0 0.0 0:00.00 xenbus + 28 root RT -5 0 0 0 S 0 0.0 0:00.14 migration/1 + 29 root 15 -5 0 0 0 S 0 0.0 0:00.20 ksoftirqd/1 + 30 root RT -5 0 0 0 S 0 0.0 0:05.96 watchdog/1 + 31 root 15 -5 0 0 0 S 0 0.0 1:18.35 events/1 + 32 root RT -5 0 0 0 S 0 0.0 0:00.08 migration/2 + 33 root 15 -5 0 0 0 S 0 0.0 0:00.18 ksoftirqd/2 + 34 root RT -5 0 0 0 S 0 0.0 0:06.00 watchdog/2 + 35 root 15 -5 0 0 0 S 0 0.0 1:08.39 events/2 + 36 root RT -5 0 0 0 S 0 0.0 0:00.10 migration/3 + 37 root 15 -5 0 0 0 S 0 0.0 0:00.16 ksoftirqd/3 + 38 root RT -5 0 0 0 S 0 0.0 0:06.08 watchdog/3 + 39 root 15 -5 0 0 0 S 0 0.0 1:22.81 events/3 + 68 root 15 -5 0 0 0 S 0 0.0 0:06.28 kblockd/0 + 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ême s'il est + relativement gourmand en ressources (lorsqu'il + s'exécute, son propre processus se trouve en général + dans le top dix des consommations CPU). Il est + 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é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> + + <div class="example"><pre>sctemme@brutus:~$ free + total used free shared buffers cached +Mem: 4026028 3901892 124136 0 253144 841044 +-/+ buffers/cache: 2807704 1218324 +Swap: 3903784 12540 3891244</pre></div> + + + <h4><a name="vmstat" id="vmstat">vmstat + </a></h4> + + <p>Cette commande est disponible sur de nombreuses + plateformes de style Unix. Elle affiche un grand nombre + 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'état actuelle + toutes les 5 secondes. La commande vmstat affiche la + 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> + <p> + Voici la sortie de la commande <code>vmstat</code> + pour un serveur inactif : + </p> + + + <div class="example"><pre>[sctemme@GayDeceiver sctemme]$ vmstat 5 3 + procs memory swap io system cpu + r b w swpd free buff cache si so bi bo in cs us sy id + 0 0 0 0 186252 6688 37516 0 0 12 5 47 311 0 1 99 + 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ê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 + procs memory swap io system cpu + r b w swpd free buff cache si so bi bo in cs us sy id + 1 0 1 0 162580 6848 40056 0 0 11 5 150 324 1 1 98 + 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è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îte à outils SE + </a></h4> + + <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 ê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è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é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îte à + outils SE, Richard Pettit, a fondé une nouvelle sociéte, + Captive Metrics4, et a l'intention de mettre sur le + marché un outil de supervision multiplateforme en Java basé sur + les mêmes principes que la boîte à outils SE. + </p> + + + + <h4><a name="dtrace" id="dtrace">DTrace + </a></h4> + + <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> + + + + <h4><a name="mod_status" id="mod_status">mod_status + </a></h4> + + <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écution avec la quantité de données qu'ils + ont servies, ainsi que la charge CPU induite par httpd + 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> à 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égèrement supérieure par requête. + </p> + + + + + <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é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é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é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> + + + <h4><a name="ErrorLog" id="ErrorLog">Journal des erreurs + </a></h4> + + <p>Le journal des erreurs peut indiquer que le nombre + maximum de processus actifs ou de fichiers ouverts + 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é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é + vers la sortie d'erreur standard stderr. Si vous + 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é 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ç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ç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 à 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'é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é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é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éfinir + le niveau de détail des messages enregistrés dans + les journaux. Il existe huit niveaux de + journalisation : + </p> + <table> + <tr> + <td> + <p><strong>Niveau</strong></p> + </td> + <td> + <p><strong>Description</strong></p> + </td> + </tr> + <tr> + <td> + <p>emerg</p> + </td> + <td> + <p>Urgence - le système est inutilisable.</p> + </td> + </tr> + <tr> + <td> + <p>alert</p> + </td> + <td> + <p>Une action doit être entreprise + immédiatement.</p> + </td> + </tr> + <tr> + <td> + <p>crit</p> + </td> + <td> + <p>Situations critiques.</p> + </td> + </tr> + <tr> + <td> + <p>error</p> + </td> + <td> + <p>Situations d'erreur.</p> + </td> + </tr> + <tr> + <td> + <p>warn</p> + </td> + <td> + <p>Situations provoquant un avertissement.</p> + </td> + </tr> + <tr> + <td> + <p>notice</p> + </td> + <td> + <p>Evènement normal, mais important.</p> + </td> + </tr> + <tr> + <td> + <p>info</p> + </td> + <td> + <p>Informations.</p> + </td> + </tr> + <tr> + <td> + <p>debug</p> + </td> + <td> + <p>Messages de débogage.</p> + </td> + </tr> + </table> + <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> + + <pre class="prettyprint lang-config">LogLevel debug mod_ssl:warn</pre> + + + <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 à être très bavard. + </p> + + + + <h4><a name="AccessLog" id="AccessLog">Journal des accès + </a></h4> + + <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ê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è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érents champs présents dans une entrée du journal : + </p> + + + <div class="example"><pre>195.54.228.42 - - [24/Mar/2007:23:05:11 -0400] "GET /sander/feed/ HTTP/1.1" 200 9747 +64.34.165.214 - - [24/Mar/2007:23:10:11 -0400] "GET /sander/feed/atom HTTP/1.1" 200 9068 +60.28.164.72 - - [24/Mar/2007:23:11:41 -0400] "GET / HTTP/1.0" 200 618 +85.140.155.56 - - [24/Mar/2007:23:14:12 -0400] "GET /sander/2006/09/27/44/ HTTP/1.1" 200 14172 +85.140.155.56 - - [24/Mar/2007:23:14:15 -0400] "GET /sander/2006/09/21/gore-tax-pollution/ HTTP/1.1" 200 15147 +74.6.72.187 - - [24/Mar/2007:23:18:11 -0400] "GET /sander/2006/09/27/44/ HTTP/1.0" 200 14172 +74.6.72.229 - - [24/Mar/2007:23:24:22 -0400] "GET /sander/2006/11/21/os-java/ HTTP/1.0" 200 13457</pre></div> + + <table> + <tr> + <td> + <p><strong>Champ</strong></p> + </td> + <td> + <p><strong>Contenu</strong></p> + </td> + <td> + <p><strong>Explication</strong></p> + </td> + </tr> + <tr> + <td> + <p>Adresse IP client</p> + </td> + <td> + <p>195.54.228.42</p> + </td> + <td> + <p>Adresse IP d'où provient la requête</p> + </td> + </tr> + <tr> + <td> + <p>Identité RFC 1413</p> + </td> + <td> + <p>-</p> + </td> + <td> + <p>Identité de l'utilisateur distant renvoyée + par son démon identd</p> + </td> + </tr> + <tr> + <td> + <p>Nom utilisateur</p> + </td> + <td> + <p>-</p> + </td> + <td> + <p>Nom de l'utilisateur distant issu de + l'authentification Apache</p> + </td> + </tr> + <tr> + <td> + <p>Horodatage</p> + </td> + <td> + <p>[24/Mar/2007:23:05:11 -0400]</p> + </td> + <td> + <p>Date et heure de la requête</p> + </td> + </tr> + <tr> + <td> + <p>Requête</p> + </td> + <td> + <p>"GET /sander/feed/ HTTP/1.1"</p> + </td> + <td> + <p>La requête proprement dite</p> + </td> + </tr> + <tr> + <td> + <p>Code d'état</p> + </td> + <td> + <p>200</p> + </td> + <td> + <p>Code d'état renvoyé avec la réponse</p> + </td> + </tr> + <tr> + <td> + <p>Contenu en octets</p> + </td> + <td> + <p>9747</p> + </td> + <td> + <p>Total des octets transférés sans les + en-têtes</p> + </td> + </tr> + </table> + + + <h4><a name="rotating-log-files" id="rotating-log-files">Rotation des fichiers journaux + </a></h4> + + <p>Il y a de nombreuses raisons pour mettre en oeuvre la + 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 ê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ée plus précise des habitudes + d'utilisation. + </p> + <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 à + é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é par défaut. Par exemple, + vous pouvez écrire un script de ce style pour cron : + </p> + + + <div class="example"><p><code> + APACHE=/usr/local/apache2<br /> + HTTPD=$APACHE/bin/httpd<br /> + mv $APACHE/logs/access_log + $APACHE/logarchive/access_log-`date +%F`<br /> + $HTTPD -k graceful + </code></p></div> + + <p>Cette approche fonctionne aussi sous Windows, mais + avec moins de souplesse. Alors que le processus httpd de + 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ê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émarrage. + </p> + <p> + 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ées de journalisation + vers tout programme via le caractère pipe + (<code>|</code>) comme dans cet exemple : + </p> + + <div class="example"><p><code>CustomLog "|/usr/local/apache2/bin/rotatelogs + /var/log/access_log 86400" common + </code></p></div> + + <p>Le programme cible de la redirection recevra alors les + 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è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 à 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> + + + + <h4><a name="logging-and-performance" id="logging-and-performance">Journalisation et performances + </a></h4> + + <p>L'écriture d'entrées dans les fichiers journaux est + consommatrice de ressources, mais l'importance de ces + 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é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é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é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è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é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è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ê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é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> + + + + + <h3><a name="generating-a-test-load" id="generating-a-test-load">Mise en oeuvre d'une charge de test + </a></h3> + + <p>Il est interessant de mettre en oeuvre une charge de test + 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énérer une + charge de test pour votre serveur web. + </p> + <ul> + <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énérateur de + charge libre. Ce programme fonctionne avec un ficher + d'URLs et peut être compilé avec le support SSL. + </li> + <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è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 être plus souple d'utilisation et + efficace. + </li> + <li> + <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 à 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> + + + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="configuring-for-performance" id="configuring-for-performance">Configuration dans une optique de performances + </a></h2> + + + + <h3><a name="apache-configuration" id="apache-configuration">Configuration de httpd + </a></h3> + + <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é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ê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éfaut pour la version 2.4 est le MPM event. + </p> + <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 à 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à 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é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é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> + + + <h4><a name="MaxClients" id="MaxClients">MaxClients + </a></h4> + + <p>La directive <code>MaxClients</code> permet de + 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é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> + + + + <h4><a name="spinning-threads" id="spinning-threads">Rotation des threads + </a></h4> + + <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 à 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 être divisible par + <code>ThreadsPerChild</code>. Si les valeurs que vous + 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'à ce que la valeur de la directive + <code>MaxClients</code> soit divisible par elle. + </p> + + + + <h4><a name="sizing-maxClients" id="sizing-maxClients">Choix de la valeur de MaxClients + </a></h4> + + <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 − RAM système − 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è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é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é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é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é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éer + d'autres processus httpd enfants ; une valeur trop + élevée pour <code>MaxClients</code> constituera alors + réellement un désavantage. + </p> + + + <h4><a name="selecting-your-mpm" id="selecting-your-mpm">Choisir votre MPM + </a></h4> + + <p>La commutation entre threads est plus + 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é 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è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é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é 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ée ; par contre, si un processus enfant threadé se + crashe, ce sont tous les threads de ce processus qui + 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 été modifiée par un autre thread. + </p> + <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écutez Apache sous Linux, vous pouvez utiliser PHP + avec le MPM prefork sans craindre une diminution de + performance trop importante par rapport à une option + threadée. + </p> + + + + <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 é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 à 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écider d'arrêter quelques processus enfants en + fonction de la valeur de la directive + <code>MaxSpareServers</code>.</p> + + + <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é 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ître. + </p> + <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é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'à 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'é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 é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ère + permet en particulier de fermer l'"accept mutex", mais + 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'é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ème d'exploitation + </a></h3> + + <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> + + + <h4><a name="ram-and-swap-space" id="ram-and-swap-space">RAM et swap + </a></h4> + + <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é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énèrent des contenus + dynamiques comme PHP et mod_perl. Un gros fichier de + configuration - avec de nombreux serveurs virtuels - a + 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ôle. + </p> + <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è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é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 + <code>swapon</code>, ou dans celles des programmes de + <code>swap</code>. + </p> + + + + <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é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çà des limites imposées par le + noyau de votre système. + </p> + <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 + la commande : + </p> + + <div class="example"><p><code> + ulimit [-H|-S] -u [nouvelle valeur] + </code></p></div> + + <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é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> + + <div class="example"><p><code> + limit [-h] maxproc [newvalue] + </code></p></div> + + <p>En outre, le noyau peut limiter le nombre de fichiers + 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 : + </p> + + <div class="example"><p><code>ulimit -n [newvalue] + </code></p></div> + + <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é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é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éfinir des limites "soft" et "hard" + en fonction de l'utilisateur ou du groupe ; + vous y trouverez aussi des commentaires explicatifs des + différentes options. Pour que ce fichier soit pris en + compte, le fichier <code>/etc/pam.d/login</code> doit + contenir la ligne : + </p> + + <div class="example"><p><code>session required /lib/security/pam_limits.so + </code></p></div> + + <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 être limitées ou étendues à + tout le système de manière analogue au fichier + <code>limits.conf</code>. Les limites "soft" sont + 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è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> + set rlim_fd_max=65536<br /> + set rlim_fd_cur=2048 + </code></p></div> + + <p>Solaris calcule le nombre maximal de processus + 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> + + <div class="example"><p><code>sysdef -i | grep maximum + </code></p></div> + + <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ésactiver les services et modules non utilisés + </a></h4> + + <p>Dans la plupart des distributions Unix et Linux, de + 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é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és et de désactiver ceux + dont vous n'avez pas besoin. + </p> + <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é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 à 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> + + + + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="caching-content" id="caching-content">Mise en cache des contenus + </a></h2> + + <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è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é 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é. 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> + + + <h3><a name="making-popular-pages-static" id="making-popular-pages-static">Transformation des pages courantes en contenus + statiques + </a></h3> + + <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é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éléchargera alors les pages générées à + l'avance. Par contre, les recherches de roses jaunes seront + 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> + + + <h4><a name="example-a-statically-rendered-blog" id="example-a-statically-rendered-blog">Exemple : un blog servi statiquement + </a></h4> + + + + <p>Blosxom est un programme CGI de journalisation web + 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é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é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é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é 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énérées à l'avance : + </p> + +<pre class="prettyprint lang-config">Listen *:8001 + <VirtualHost *:8001> + ServerName blog.sandla.org:8001 + ServerAdmin sander@temme.net + DocumentRoot "/home/sctemme/inst/blog/httpd/htdocs" + <Directory "/home/sctemme/inst/blog/httpd/htdocs"> + Options +Indexes + Require all granted + RewriteEngine on + RewriteCond "%{REQUEST_FILENAME}" "!-f" + RewriteCond "%{REQUEST_FILENAME}" "!-d" + RewriteRule "^(.*)$" "/cgi-bin/blosxom.cgi/$1" [L,QSA] + </Directory> + RewriteLog "/home/sctemme/inst/blog/httpd/logs/rewrite_log" + RewriteLogLevel 9 + ErrorLog "/home/sctemme/inst/blog/httpd/logs/error_log" + LogLevel debug + CustomLog "/home/sctemme/inst/blog/httpd/logs/access_log common" + ScriptAlias "/cgi-bin/" "/home/sctemme/inst/blog/bin/" + <Directory "/home/sctemme/inst/blog/bin"> + Options +ExecCGI + Require all granted + </Directory> + </VirtualHost></pre> + + + <p> + Si les directives <code class="directive">RewriteCond</code> + 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é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è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î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'étudier afin de parvenir à la configuration qui + correspondra le mieux à votre situation. + </p> + + + + + <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é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é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 é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é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-ê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élection de paquets, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> + sera probablement déjà inclus. + </p> + + + <h4><a name="example-wiki" id="example-wiki">Exemple : wiki.apache.org + </a></h4> + + + <p> + Le Wiki de l'Apache Software Foundation est servi + 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è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 + é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ée il y a 100 minutes expirera dans 10 minutes +CacheLastModifiedFactor .1 +# Dans tous les cas, vérifier la validité des pages après 6 heures +CacheMaxExpire 21600</pre> + + + <p>Cette configuration essaie de mettre en cache tout + 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ê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è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é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é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êtes. + </p> +<pre class="prettyprint lang-config"><FilesMatch "\.(jpe?g|png|gif|js|css|x?html|xml)"> + FileETag None +</FilesMatch></pre> + + + <p> + 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> + + + + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="further-considerations" id="further-considerations">Pour aller plus loin + </a></h2> + + <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"> en </a> | +<a href="../es/misc/perf-scaling.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/misc/perf-scaling.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/misc/perf-scaling.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/event.html.es b/docs/manual/mod/event.html.es index f9e4cb6829..1850f318b2 100644 --- a/docs/manual/mod/event.html.es +++ b/docs/manual/mod/event.html.es @@ -30,6 +30,10 @@ <a href="../es/mod/event.html" title="Español"> es </a> | <a href="../fr/mod/event.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> +<div class="outofdate">Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios + recientemente.</div> <table class="module"><tr><th><a href="module-dict.html#Description">Descripción:</a></th><td>Una variante del MPM <code class="module"><a href="../mod/worker.html">worker</a></code> con el objetivo de consumir hilos sólo para conexiones con procesamiento activo</td></tr> diff --git a/docs/manual/mod/event.html.fr b/docs/manual/mod/event.html.fr index bf8cd3b3e8..6846040ae2 100644 --- a/docs/manual/mod/event.html.fr +++ b/docs/manual/mod/event.html.fr @@ -30,6 +30,8 @@ <a href="../es/mod/event.html" hreflang="es" rel="alternate" title="Español"> es </a> | <a href="../fr/mod/event.html" title="Français"> fr </a></p> </div> +<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version + anglaise pour les changements récents.</div> <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Une variante du MPM <code class="module"><a href="../mod/worker.html">worker</a></code> conçue pour ne mobiliser des threads que pour les connexions en cours de traitement</td></tr> <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>MPM</td></tr> diff --git a/docs/manual/mod/mod_allowhandlers.html.fr b/docs/manual/mod/mod_allowhandlers.html.fr new file mode 100644 index 0000000000..21168242bf --- /dev/null +++ b/docs/manual/mod/mod_allowhandlers.html.fr @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_allowhandlers - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_allowhandlers</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_allowhandlers.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/mod/mod_allowhandlers.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/mod/mod_allowhandlers.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Facilite la définition de la liste des gestionnaires HTTP +qui peuvent être utilisés pour le serveur</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>allowhandlers_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_allowhandlers.c</td></tr></table> +<h3>Sommaire</h3> + +<p>Ce module facilite la définition de la liste des gestionnaires HTTP +qui peuvent être utilisés pour une requête. Voici un exemple de ligne de +configuration :</p> + +<pre class="prettyprint lang-config"><Location "/"> + AllowHandlers not server-info server-status balancer-manager ldap-status +</Location></pre> + + +<p>Il implémente aussi un gestionnaire nommé <code>forbidden</code> qui +ne fait que renvoyer la réponse "403 FORBIDDEN" au client. Ce +gestionnaire peut être spécifié par des directives comme <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code>.</p> + +</div> +<div id="quickview"><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#allowhandlers">AllowHandlers</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_allowhandlers">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_allowhandlers">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code></li> +<li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li> +<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="directive-section"><h2><a name="allowhandlers" id="allowhandlers">Directive</a> <a name="AllowHandlers" id="AllowHandlers">AllowHandlers</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Restreint l'accès aux gestionnaires spécifiés</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AllowHandlers [not] none|<em>nom-gestionnaire</em> +[none|<em>nom-gestionnaire</em>]...</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AllowHandlers all</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_allowhandlers</td></tr> +</table> + +<p>Les noms de gestionnaires sont sensibles à la casse. Le nom réservé +<code>none</code> peut être utilisé dans le cas où aucun gestionnaire +n'a été défini. Le nom réservé <code>all</code>, quant à lui, peut être +utilisé pour autoriser à nouveau tous les gestionnaires dans une section +de configuration ultérieure, même si certains en-têtes ont été interdits +en aval :</p> + +<pre class="prettyprint lang-config"><Location "/server-status"> + AllowHandlers all + SetHandler server-status +</Location></pre> + + + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_allowhandlers.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/mod/mod_allowhandlers.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/mod/mod_allowhandlers.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_allowhandlers.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_authnz_fcgi.html.fr b/docs/manual/mod/mod_authnz_fcgi.html.fr new file mode 100644 index 0000000000..406011ad67 --- /dev/null +++ b/docs/manual/mod/mod_authnz_fcgi.html.fr @@ -0,0 +1,589 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_authnz_fcgi - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_authnz_fcgi</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_fcgi.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_authnz_fcgi.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet à une application d'autorisation FastCGI de gérer +l'authentification et l'autorisation httpd.</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>authnz_fcgi_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_authnz_fcgi.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.10 du serveur HTTP +Apache</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module permet aux applications d'autorisation FastCGI + d'authentifier les utilisateurs et de contrôler leur accès aux + ressources. Il supporte les systèmes d'autorisation FastCGI + génériques qui participent en une seule phase à l'authentification + et à l'autorisation, ainsi que les processus d'authentification et + d'autorisation spécifiques à Apache httpd qui interviennent en une + ou plusieurs phases.</p> + + <p>Les processus d'autorisation FastCGI peuvent authentifier un + utilisateur via son identificateur et son mot de passe comme dans le + processus d'authentification basique, ou via un mécanisme + arbitraire.</p> +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#invocations">Modes d'invocation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples supplémentaires</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#limitations">Limitations</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#authnzfcgicheckauthnprovider">AuthnzFcgiCheckAuthnProvider</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_authnz_fcgi">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_authnz_fcgi">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><a href="../howto/auth.html">Authentification, autorisation et +contrôle d'accès</a></li> +<li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> +<li><code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code></li> +<li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li> +<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="invocations" id="invocations">Modes d'invocation</a></h2> + + <p>Les modes d'invocation des processus d'autorisation FastCGI que + ce module supporte se distinguent par deux caractéristiques : le + <em>type</em> et le <em>mécanisme</em> d'authentification.</p> + + <p>Le <em>Type</em> est simplement <code>authn</code> pour + l'authentification, <code>authz</code> pour l'autorisation et + <code>authnz</code> l'authentification et l'autorisation.</p> + + <p>Le <em>mécanisme</em> d'authentification fait référence aux + mécanismes d'authentification et aux phases de traitement de la + configuration de Apache httpd, et peut être + <code>AuthBasicProvider</code>, <code>Require</code>, ou + <code>check_user_id</code>. Les deux premiers mécanismes + correspondent aux directives utilisées pour participer aux phases de + traitement appropriées.</p> + + <p>Description de chaque mode:</p> + + <dl> + <dt><em>Type</em> <code>authn</code>, <em>mechanism</em> + <code>AuthBasicProvider</code></dt> + + <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est définie à + <code>AUTHORIZER</code>, et la variable + <code>FCGI_APACHE_ROLE</code> à <code>AUTHENTICATOR</code>. + L'application doit être spécifiée en tant que fournisseur de type + <em>authn</em> via la directive <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>, et + activée via la directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Lorsqu'elle + est invoquée, l'application est censée authentifier le client à + l'aide de l'identifiant et du mot de passe de l'utilisateur. + Exemple d'application : + +<pre class="prettyprint lang-perl">#!/usr/bin/perl +use FCGI; +my $request = FCGI::Request(); +while ($request->Accept() >= 0) { + die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR"; + die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER"; + die if !$ENV{'REMOTE_PASSWD'}; + die if !$ENV{'REMOTE_USER'}; + + print STDERR "This text is written to the web server error log.\n"; + + if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") && + $ENV{'REMOTE_PASSWD'} eq "bar" ) { + print "Status: 200\n"; + print "Variable-AUTHN_1: authn_01\n"; + print "Variable-AUTHN_2: authn_02\n"; + print "\n"; + } + else { + print "Status: 401\n\n"; + } +}</pre> + + + Exemple de configuration httpd : +<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/ +<Location "/protected/"> + AuthType Basic + AuthName "Restricted" + AuthBasicProvider FooAuthn + Require ... +</Location></pre> + + </dd> + + <dt><em>Type</em> <code>authz</code>, <em>mechanism</em> + <code>Require</code></dt> + <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est définie à + <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> à + <code>AUTHORIZER</code>. L'application doit être spécifiée en tant + que fournisseur de type <em>authz</em> via la directive <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>. + Lorsqu'elle est invoquée, l'application est censée contrôler les + accès du client à l'aide de l'identifiant utilisateur et d'autres + données contenues dans la requête. Exemple d'application : +<pre class="prettyprint lang-perl">#!/usr/bin/perl +use FCGI; +my $request = FCGI::Request(); +while ($request->Accept() >= 0) { + die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHORIZER"; + die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER"; + die if $ENV{'REMOTE_PASSWD'}; + + print STDERR "This text is written to the web server error log.\n"; + + if ($ENV{'REMOTE_USER'} eq "foo1") { + print "Status: 200\n"; + print "Variable-AUTHZ_1: authz_01\n"; + print "Variable-AUTHZ_2: authz_02\n"; + print "\n"; + } + else { + print "Status: 403\n\n"; + } +}</pre> + + + Exemple de configuration httpd : +<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10103/ +<Location "/protected/"> + AuthType ... + AuthName ... + AuthBasicProvider ... + Require FooAuthz +</Location></pre> + + </dd> + + <dt><em>Type</em> <code>authnz</code>, <em>mechanism</em> + <code>AuthBasicProvider</code> <em>+</em> <code>Require</code></dt> + + <dd>Dans ce mode qui supporte le protocole d'autorisation web + server-agnostic FastCGI, la variable <code>FCGI_ROLE</code> est + définie à <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> + n'est pas définie. L'application doit être spécifiée en tant que + fournisseur de type <em>authnz</em> via la directive <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>. + L'application est censée assurer l'authentification et + l'autorisation au cours d'une même invocation à l'aide de + l'identifiant et du mot de passe de l'utilisateur et d'autres + données contenues dans la requête. L'invocation de l'application + intervient au cours de la phase d'authentification de l'API Apache + httpd. Si l'application renvoie le code 200, et si le même + fournisseur est invoqué au cours de la phase d'autorisation (via + une directive <code class="directive">Require</code>), mod_authnz_fcgi + renverra un code de type success pour la phase d'autorisation sans + invoquer l'application. Exemple d'application : +<pre class="prettyprint lang-perl">#!/usr/bin/perl +use FCGI; +my $request = FCGI::Request(); +while ($request->Accept() >= 0) { + die if $ENV{'FCGI_APACHE_ROLE'}; + die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER"; + die if !$ENV{'REMOTE_PASSWD'}; + die if !$ENV{'REMOTE_USER'}; + + print STDERR "This text is written to the web server error log.\n"; + + if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") && + $ENV{'REMOTE_PASSWD'} eq "bar" && + $ENV{'REQUEST_URI'} =~ m%/bar/.*%) { + print "Status: 200\n"; + print "Variable-AUTHNZ_1: authnz_01\n"; + print "Variable-AUTHNZ_2: authnz_02\n"; + print "\n"; + } + else { + print "Status: 401\n\n"; + } +}</pre> + + + Exemple de configuration httpd : +<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/ +<Location "/protected/"> + AuthType Basic + AuthName "Restricted" + AuthBasicProvider FooAuthnz + Require FooAuthnz +</Location></pre> + + </dd> + + <dt><em>Type</em> <code>authn</code>, <em>mechanism</em> + <code>check_user_id</code></dt> + + <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est définie à + <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> à + <code>AUTHENTICATOR</code>. L'application doit être spécifiée en + tant que fournisseur de type <em>authn</em> via une directive + <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>. La + directive <code class="directive"><a href="#authnzfcgicheckauthnprovider">AuthnzFcgiCheckAuthnProvider</a></code> + permet de l'invoquer. Exemple d'application : +<pre class="prettyprint lang-perl">#!/usr/bin/perl +use FCGI; +my $request = FCGI::Request(); +while ($request->Accept() >= 0) { + die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR"; + die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER"; + + # This authorizer assumes that the RequireBasicAuth option of + # AuthnzFcgiCheckAuthnProvider is On: + die if !$ENV{'REMOTE_PASSWD'}; + die if !$ENV{'REMOTE_USER'}; + + print STDERR "This text is written to the web server error log.\n"; + + if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") && + $ENV{'REMOTE_PASSWD'} eq "bar" ) { + print "Status: 200\n"; + print "Variable-AUTHNZ_1: authnz_01\n"; + print "Variable-AUTHNZ_2: authnz_02\n"; + print "\n"; + } + else { + print "Status: 401\n\n"; + # If a response body is written here, it will be returned to + # the client. + } +}</pre> + + + Exemple de configuration httpd : +<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10103/ +<Location "/protected/"> + AuthType ... + AuthName ... + AuthnzFcgiCheckAuthnProvider FooAuthn \ + Authoritative On \ + RequireBasicAuth Off \ + UserExpr "%{reqenv:REMOTE_USER}" + Require ... +</Location></pre> + + </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="examples" id="examples">Exemples supplémentaires</a></h2> + + <ol> + <li>Si votre application supporte séparément les rôles + d'authentification et d'autorisation (<code>AUTHENTICATOR</code> et + <code>AUTHORIZER</code>), vous pouvez définir des fournisseurs + séparés comme suit, même s'ils correspondent à la même application : + +<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/ +AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10102/</pre> + + + Spécifie le fournisseur authn via la directive + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> + et le fournisseur authz via la directive + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>: + +<pre class="prettyprint lang-config">AuthType Basic +AuthName "Restricted" +AuthBasicProvider FooAuthn +Require FooAuthz</pre> + + </li> + + <li>Si votre application supporte le rôle générique + <code>AUTHORIZER</code> (authentification et autorisation en une + seule invocation), vous pouvez définir un fournisseur unique comme + suit : + +<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/</pre> + + + Spécifie le fournisseur authnz via les directives + <code class="directive">AuthBasicProvider</code> et + <code class="directive">Require</code> : + +<pre class="prettyprint lang-config">AuthType Basic +AuthName "Restricted" +AuthBasicProvider FooAuthnz +Require FooAuthnz</pre> + + </li> +</ol> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="limitations" id="limitations">Limitations</a></h2> + + <p>Les fonctionnalités suivantes ne sont pas encore implémentées :</p> + + <dl> + <dt>Vérificateur d'accès d'Apache httpd</dt> + <dd>La phase <em>access check</em> de l'API Apache httpd est + distincte des phases d'authentification et d'autorisation. + Certaines autres implémentations de FastCGI supportent cette phase + et lorsque c'est le cas, la variable <code>FCGI_APACHE_ROLE</code> + est définie à <code>ACCESS_CHECKER</code>.</dd> + + <dt>Redirections (pipes) ou sockets locaux (Unix)</dt> + <dd>Seuls les sockets TCP sont actuellement supportés.</dd> + + <dt>Support de mod_authn_socache</dt> + <dd>Le support de l'interaction avec mod_authn_socache pour les + applications qui interviennent dans le processus + d'authentification d'Apache httpd serait souhaitable.</dd> + + <dt>Support de l'authentification de type digest à l'aide de AuthDigestProvider</dt> + <dd>Cette limitation ne sera probablement jamais franchie car il + n'existe aucun flux de données d'autorisation capable de lire dans + un condensé de type hash.</dd> + + <dt>Gestion des processus applicatifs</dt> + <dd>Cette fonctionnalité restera probablement hors de portée de ce + module. Il faudra donc gérer les processus applicatifs d'une autre + manière ; par exemple, <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code> permet de + les démarrer.</dd> + + <dt>AP_AUTH_INTERNAL_PER_URI</dt> + <dd>Tous les fournisseurs sont actuellement enregistrés en tant + que AP_AUTH_INTERNAL_PER_CONF, ce qui signifie que les + vérifications ne sont pas effectuées pour les + sous-requêtes internes avec la même configuration de contrôle + d'accès que la requête initiale.</dd> + + <dt>Conversion du jeu de caractères des données de protocole</dt> + <dd>Si mod_authnz_fcgi s'exécute dans un environnement de + compilation EBCDIC, toutes les données de protocole FastCGI sont + écrites en EBCDIC et doivent être disponibles en EBCDIC.</dd> + + <dt>Plusieurs requêtes pour une connexion</dt> + <dd>Actuellement, la connexion au fournisseur d'autorisation + FastCGI est fermée après chaque phase de traitement. Par exemple, + si le fournisseur d'autorisation gère séparément les phases + <em>authn</em> et <em>authz</em>, deux connexions seront + nécessaires.</dd> + + <dt>Redirection de certains URIs</dt> + <dd>Les URIs en provenance des clients ne peuvent pas être + redirigés selon une table de redirection, comme avec la directive + <code class="directive">ProxyPass</code> utilisée avec les répondeurs + FastCGI.</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="logging" id="logging">Journalisation</a></h2> + + <ol> + <li>Les erreurs de traitement sont journalisées à un niveau + <code>error</code> ou supérieur.</li> + <li>Les messages envoyés par l'application sont journalisés au + niveau <code>warn</code>.</li> + <li>Les messages de deboguage à caractère général sont + journalisés au niveau <code>debug</code>.</li> + <li>Les variables d'environnement transmises à l'application + sont journalisées au niveau <code>trace2</code>. La valeur de la + variable <code>REMOTE_PASSWD</code> sera occultée, mais + <strong>toute autre donnée sensible sera visible dans le + journal</strong>.</li> + <li>Toutes les entrées/sorties entre le module et l'application + FastCGI, y compris les variables d'environnement, seront + journalisées au format imprimable et hexadécimal au niveau + <code>trace5</code>. <strong>Toutes les données sensibles seront + visibles dans le journal.</strong></li> + </ol> + + <p>La directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> permet + de configurer un niveau de journalisation spécifique à + mod_authnz_fcgi. Par exemple :</p> + +<pre class="prettyprint lang-config">LogLevel info authnz_fcgi:trace8</pre> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="authnzfcgicheckauthnprovider" id="authnzfcgicheckauthnprovider">Directive</a> <a name="AuthnzFcgiCheckAuthnProvider" id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet à une application FastCGI de gérer l'accroche +d'authentification check_authn.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code> +<em>option</em> ...</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr> +<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr> +</table> + <p>Cette directive permet de confier à une application FastCGI la + gestion d'une phase spécifique du processus d'authentification ou + d'autorisation.</p> + + <p>Certaines fonctionnalités des fournisseurs d'autorisation FastCGI + nécessitent cette directive en lieu et place de + <code class="directive">AuthBasicProvider</code> pour pouvoir être activées :</p> + + <ul> + <li>L'authentification de type autre que basique ; en général, + détermination de l'identifiant utilisateur et renvoi de sa valeur + depuis le fournisseur d'autorisation ; voir l'option + <code>UserExpr</code> ci-dessous</li> + <li>Sélection d'un code de réponse personnalisé ; en cas de + code de réponse autre que 200 en provenance du fournisseur + d'autorisation, c'est ce code qui sera utilisé comme code d'état + de la réponse</li> + <li>Définition du corps d'une réponse autre que 200 ; si le + fournisseur d'autorisation renvoie un corps de réponse avec un + code autre que 200, c'est ce corps de réponse qui sera renvoyé au + client ; la longueur du texte est limitée à 8192 octets</li> + </ul> + + <dl> + <dt><em>provider-name</em></dt> + <dd>C'est le nom du fournisseur défini au préalable via la + directive <code class="directive">AuthnzFcgiDefineProvider</code>.</dd> + + <dt><code>None</code></dt> + <dd>Spécifiez <code>None</code> pour désactiver un fournisseur + activé avec cette même directive dans une autre portée, par + exemple dans un répertoire parent.</dd> + + <dt><em>option</em></dt> + <dd>Les options suivantes sont supportées : + + <dl> + <dt>Authoritative On|Off (par défaut On)</dt> + <dd>Cette option permet de définir si l'appel à d'autres + modules est autorisé lorsqu'un fournisseur d'autorisation FastCGI a + été configuré et si la requête échoue.</dd> + + <dt>DefaultUser <em>id utilisateur</em></dt> + <dd>Lorsque le fournisseur d'autorisation donne son accord, et + si <code>UserExpr</code> est défini et correspond à une chaîne + vide, (par exemple, si le fournisseur d'autorisation ne renvoie + aucune variable), c'est cette valeur qui sera utilisée comme id + utilisateur par défaut. Cela se produit souvent lorsqu'on se trouve dans + un contexte d'invité, ou d'utilisateur non authentifié ; + les utilisateurs et invités se voient alors attribué un id + utilisateur spécifique qui permettra de se connecter et + d'accéder à certaines ressources.</dd> + + <dt>RequireBasicAuth On|Off (par défaut Off)</dt> + <dd>Cette option permet de définir si l'authentification + basique est requise avant de transmettre la requête au + fournisseur d'autorisation. Dans l'affirmative, le fournisseur + d'autorisation ne sera invoqué qu'en présence d'un id + utilisateur et d'un mot de passe ; si ces deux éléments ne sont + pas présents, un code d'erreur 401 sera renvoyé</dd> + + <dt>UserExpr <em>expr</em> (pas de valeur par défaut)</dt> + <dd>Lorsque le client ne fournit pas l'authentification basique + et si le fournisseur d'autorisation détermine l'id utilisateur, + cette expression, évaluée après l'appel au fournisseur + d'autorisation, permet de déterminer l'id utilisateur. Cette + expression se conforme à la <a href="../expr.html">syntaxe + ap_expr</a> et doit correspondre à une chaîne de caractères. + Une utilisation courante consiste à référencer la définition + d'une <code>Variable-<em>XXX</em></code> renvoyée par le + fournisseur d'autorisation via une option du style + <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>. Si cette option + est spécifiée, et si l'id utilisateur ne peut pas être définie + via l'expression après une authentification réussie, la requête + sera rejetée avec un code d'erreur 500.</dd> + + </dl> + </dd> + </dl> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="authnzfcgidefineprovider" id="authnzfcgidefineprovider">Directive</a> <a name="AuthnzFcgiDefineProvider" id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une application FastCGI en tant que fournisseur +d'authentification et/ou autorisation</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em> +<em>backend-address</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr> +</table> + <p>Cette directive permet de définir une application FastCGI en tant + que fournisseur pour une phase particulière d'authentification ou + d'autorisation.</p> + + <dl> + <dt><em>type</em></dt> + <dd>Les valeurs de ce paramètre sont <em>authn</em> pour + l'authentification, <em>authz</em> pour l'autorisation, ou + <em>authnz</em> pour un fournisseur d'autorisation générique + FastCGI qui effectue les deux vérifications.</dd> + + <dt><em>provider-name</em></dt> + <dd>Ce paramètre permet d'associer un nom au fournisseur ; ce nom + pourra être utilisé dans des directives comme <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> et + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd> + + <dt><em>backend-address</em></dt> + <dd>Ce paramètre permet de spécifier l'adresse de l'application + sous la forme <em>fcgi://hostname:port/</em>. Le ou les processus + de l'application doivent être gérés indépendamment comme avec + <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd> + </dl> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_fcgi.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_authnz_fcgi.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_authnz_fcgi.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_brotli.html.fr b/docs/manual/mod/mod_brotli.html.fr new file mode 100644 index 0000000000..2c784185dd --- /dev/null +++ b/docs/manual/mod/mod_brotli.html.fr @@ -0,0 +1,353 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_brotli - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_brotli</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_brotli.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_brotli.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Compression du contenu via Brotli avant sa livraison au client</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>brotli_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_brotli.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.26 du serveur HTTP Apache</td></tr></table> +<h3>Sommaire</h3> + + <p>Le module <code class="module"><a href="../mod/mod_brotli.html">mod_brotli</a></code> fournit le filtre en sortie + <code>BROTLI_COMPRESS</code> qui permet de compresser un contenu avant sa + livraison au client en utilisant la bibliothèque brotli. Ce filtre est + implémenté en utilisant la bibliothèque Brotli que l'on peut trouver à <a href="https://github.com/google/brotli">https://github.com/google/brotli</a>.</p> +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#recommended">Exemples de configurations</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation de la compression</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#proxies">Interaction avec les serveurs mandataires</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#precompressed">Servir un contenu pré-compressé</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#brotlialteretag">BrotliAlterETag</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#brotlicompressionmaxinputblock">BrotliCompressionMaxInputBlock</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#brotlicompressionquality">BrotliCompressionQuality</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#brotlicompressionwindow">BrotliCompressionWindow</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#brotlifilternote">BrotliFilterNote</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_brotli">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_brotli">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><a href="../filter.html">Filters</a></li> +<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="recommended" id="recommended">Exemples de configurations</a></h2> + <div class="warning"><h3>Compression et TLS</h3> + <p>Certaines applications web sont vulnérables à une attaque de type vol + d'informations lorsqu'une connexion TLS transmet des données + compressées. Pour plus d'informations, étudiez en détail la famille + d'attaques "BREACH".</p> + </div> + <p>Voici une configuration simple qui compresse des types de contenus + courants au format texte :</p> + + <div class="example"><h3>Compression de certains types seulement</h3><pre class="prettyprint lang-config">AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript</pre> +</div> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="enable" id="enable">Activation de la compression</a></h2> + <div class="warning"><h3>Compression et TLS</h3> + <p>Certaines applications web sont vulnérables à une attaque de type vol + d'informations lorsqu'une connexion TLS transmet des données + compressées. Pour plus d'informations, étudiez en détail la famille + d'attaques "BREACH".</p> + </div> + + <h3><a name="output" id="output">Compression en sortie</a></h3> + <p>La compression est implémentée par le <a href="../filter.html">filtre</a> <code>BROTLI_COMPRESS</code>. La + directive suivante active la compression pour les documents correspondant + au conteneur dans lequel elle est placée :</p> + + <pre class="prettyprint lang-config">SetOutputFilter BROTLI_COMPRESS +SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli</pre> + + + <p>Si vous voulez restreindre la compression à certains types MIME + particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Dans l'exemple + suivant, l'activation de la compression est restreinte aux fichiers html + de la documentation d'Apache :</p> + + <pre class="prettyprint lang-config"><Directory "/your-server-root/manual"> + AddOutputFilterByType BROTLI_COMPRESS text/html +</Directory></pre> + + + <div class="note"><h3>Note</h3> + Le filtre <code>BROTLI_COMPRESS</code> est toujours inséré après les + filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les sous-requêtes + internes. + </div> + <div class="note"><h3>Note</h3> + Définie via <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, la variable + d'environnement <code>no-brotli</code> permet de désactiver la + compression brotli pour une requête particulière, et ceci même si elle + est supportée par le client. + </div> + + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="proxies" id="proxies">Interaction avec les serveurs mandataires</a></h2> + + <p>Le module <code class="module"><a href="../mod/mod_brotli.html">mod_brotli</a></code> envoie un en-tête de réponse HTTP + <code>Vary:Accept-Encoding</code> pour indiquer aux mandataires qu'une + réponse mise en cache ne doit être envoyée qu'aux clients qui envoient + l'en-tête de requête <code>Accept-Encoding</code> approprié. Ceci permet + d'éviter d'envoyer du contenu compressé à un client qui ne sera pas en + mesure de le décompresser.</p> + + <p>Si vous utilisez des exclusions spéciales dépendant, par exemple, de + l'en-tête <code>User-Agent</code>, vous devez faire un ajout manuel à + l'en-tête <code>Vary</code> afin d'informer les mandataires des restrictions + supplémentaires. Par exemple, dans une configuration typique où l'addition + du filtre <code>BROTLI_COMPRESS</code> dépend de l'en-tête <code>User-Agent</code>, + vous devez ajouter :</p> + + <pre class="prettyprint lang-config">Header append Vary User-Agent</pre> + + + <p>Si votre décision d'utiliser la compression ou non dépend d'autres + informations que le contenu d'en-têtes de requêtes (par exemple la version + HTTP), vous devez affecter la valeur <code>*</code> à l'en-tête + <code>Vary</code>. Ceci permet d'éviter que des mandataires qui le + supportent n'effectuent une mise en cache intégrale.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">Header set Vary *</pre> +</div> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="precompressed" id="precompressed">Servir un contenu pré-compressé</a></h2> + + <p>comme <code class="module"><a href="../mod/mod_brotli.html">mod_brotli</a></code> compresse systématiquement un contenu + pour chaque requête le concernant, il est possible d'obtenir un gain en + performance en pré-compressant le contenu et en disant à mod_brotli de le + servir sans le recompresser. Pour cela, vous pouvez utiliser une + configuration du style :</p> + + <pre class="prettyprint lang-config"><IfModule mod_headers.c> + # Sert des fichiers CSS et JS compressés par brotli, s'ils existent + # et si le client supporte brotli. + RewriteCond "%{HTTP:Accept-encoding}" "br" + RewriteCond "%{REQUEST_FILENAME}\.br" "-s" + RewriteRule "^(.*)\.(js|css)" "$1\.$2\.br" [QSA] + + # Sert des types de contenu corrects, et évite la double compression. + RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-brotli:1] + RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-brotli:1] + + + <FilesMatch "(\.js\.br|\.css\.br)$"> + # Sert un type d'encodage correct. + Header append Content-Encoding br + + # Force les mandataires à mettre en cache séparément les fichiers css/js + # compressés ou non par brotli. + Header append Vary Accept-Encoding + </FilesMatch> +</IfModule></pre> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="brotlialteretag" id="brotlialteretag">Directive</a> <a name="BrotliAlterETag" id="BrotliAlterETag">BrotliAlterETag</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Comment l'en-tête de réponse ETag doit être modifié au cours de la +compression</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliAlterETag AddSuffix|NoChange|Remove</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BrotliAlterETag AddSuffix</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr> +</table> + <p>La directive <code class="directive">BrotliAlterETag</code> permet d'indiquer + comment l'en-tête ETag doit être modifié lorsqu'une réponse est compressée.</p> + <dl> + <dt>AddSuffix</dt> + <dd><p>Ajoute la méthode de compression à la fin de l'en-tête ETag, ce qui + implique que les représentations compressées et non compressées possèderont + des en-têtes ETag uniques. C'était le comportement par défaut depuis la + version 2.4.0 avec un autre module de compression dynamique, + mod-deflate. Ce paramètre permet d'éviter l'envoi de messages + "HTTP Not Modified" (304) en réponse aux requêtes conditionnelles pour des + contenus compressés.</p></dd> + <dt>NoChange</dt> + <dd><p>Ne modifie pas l'en-tête ETag d'une réponse compressée. C'était le + comportement par défaut depuis la version 2.4.0 avec un autre module de + compression dynamique, mod-deflate. Ce paramètre ne respecte pas la + propriété HTTP/1.1 selon laquelle toutes les représentations d'une même + ressource ont des en-têtes ETag uniques.</p></dd> + <dt>Remove</dt> + <dd><p>Supprime l'en-tête ETag des réponses compressées, ce qui rend + impossibles certaines requêtes conditionnelles, mais évite les inconvénients + des options précédentes.</p></dd> + </dl> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="brotlicompressionmaxinputblock" id="brotlicompressionmaxinputblock">Directive</a> <a name="BrotliCompressionMaxInputBlock" id="BrotliCompressionMaxInputBlock">BrotliCompressionMaxInputBlock</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale du bloc de données en entrée</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliCompressionMaxInputBlock <var>value</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>(automatic)</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr> +</table> + <p>La directive <code class="directive">BrotliCompressionMaxInputBlock</code> permet + de spécifier la taille maximale du bloc de données en entrée entre 16 et 24, + sachant que plus cette taille sera grande, plus grande sera la quantité de + mémoire consommée.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="brotlicompressionquality" id="brotlicompressionquality">Directive</a> <a name="BrotliCompressionQuality" id="BrotliCompressionQuality">BrotliCompressionQuality</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Qualité de la compression</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliCompressionQuality <var>value</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BrotliCompressionQuality 5</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr> +</table> + <p>La directive <code class="directive">BrotliCompressionQuality</code> permet de + spécifier la qualité de la compression (une valeur entre 0 et + 11). Les valeurs les plus hautes correspondent à une compression de + meilleure qualité mais plus lente. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="brotlicompressionwindow" id="brotlicompressionwindow">Directive</a> <a name="BrotliCompressionWindow" id="BrotliCompressionWindow">BrotliCompressionWindow</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille de la fenêtre de compression glissante brotli</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliCompressionWindow <var>value</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BrotliCompressionWindow 18</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr> +</table> + <p>La directive <code class="directive">BrotliCompressionWindow</code> permet de + spécifier la taille de la fenêtre de compression glissante brotli (une + valeur comprise entre 10 et 24). Une taille de fenêtre plus grande peut + améliorer la qualité de la compression mais consomme d'avantage de mémoire.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="brotlifilternote" id="brotlifilternote">Directive</a> <a name="BrotliFilterNote" id="BrotliFilterNote">BrotliFilterNote</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre le taux de compression dans une note à des fins de +journalisation</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrotliFilterNote [<var>type</var>] <var>notename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_brotli</td></tr> +</table> + <p>La directive <code class="directive">BrotliFilterNote</code> permet d'indiquer + qu'une note à propos du taux de compression doit être attachée à la + requête. L'argument <var>notename</var> permet de spécifier le nom de la + note. Vous pouvez utiliser cette note à des fins de statistiques en ajoutant + l'information correspondante à votre <a href="../logs.html#accesslog">access + log</a>.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">BrotliFilterNote ratio + +LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' brotli +CustomLog "logs/brotli_log" brotli</pre> +</div> + + <p>Si vous souhaitez que l'information enregistrée dans vos journaux soit + plus pertinente, vous pouvez renseigner l'argument optionnel <var>type</var> + afin de spécifier le type de données à enregistrer dans la note à + journaliser. L'argument <var>type</var> accepte les valeurs suivantes :</p> + + <dl> + <dt><code>Input</code></dt> + <dd>Enregistre dans la note le nombre d'octets contenus dans le flux + d'entrée du filtre.</dd> + + <dt><code>Output</code></dt> + <dd>Enregistre dans la note le nombre d'octets contenus dans le flux + de sortie du filtre.</dd> + + <dt><code>Ratio</code></dt> + <dd>Enregistre dans la note le taux de compression (<code>output/input * + 100</code>). Il s'agit de l'option par défaut si l'argument + <var>type</var> est omis.</dd> + </dl> + + <p>Vous pouvez alors configurer vos journaux de la manière suivante :</p> + + <div class="example"><h3>Journalisation spécifique</h3><pre class="prettyprint lang-config">BrotliFilterNote Input instream +BrotliFilterNote Output outstream +BrotliFilterNote Ratio ratio + +LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' brotli +CustomLog "logs/brotli_log" brotli</pre> +</div> + +<h3>Voir aussi</h3> +<ul> +<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li> +</ul> +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_brotli.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_brotli.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_brotli.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_crypto.html.fr b/docs/manual/mod/mod_crypto.html.fr new file mode 100644 index 0000000000..3c805aff98 --- /dev/null +++ b/docs/manual/mod/mod_crypto.html.fr @@ -0,0 +1,319 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_crypto - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_crypto</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_crypto.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_crypto.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support du chiffrement/déchiffrement symétrique</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>crypto_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_crypto.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5 du serveur HTTP Apache</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module permet de <strong>chiffrer et déchiffrer</strong> les données au + niveau des piles de filtrage en entrée et en sortie.</p> + + <p>En particulier, il permet d'effectuer un <strong>chiffrement HLS à la + volée</strong> comme décrit dans le document <a href="http://www.ietf.org/id/draft-pantos-http-live-streaming-19.txt">draft-pantos-http-live-streaming-19</a>.</p> + + <p>Mais il peut aussi assurer la livraison sécurisée de données via un CDN + non sécurisé aux clients qui le supportent.</p> + + <p>Selon les besoins, on peut ajouter le filtre crypto à la pile de filtrage + en entrée ou en sortie via les directives <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code>, <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code>, <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> ou <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>.</p> + +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#format">Format du flux de données</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#config">Clés et blocs IV</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#handler">Gestionnaire de clé de chiffrement</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#hls">HTTP Live Streaming (HLS)</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#cryptocipher">CryptoCipher</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#cryptodriver">CryptoDriver</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#cryptoiv">CryptoIV</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#cryptokey">CryptoKey</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#cryptosize">CryptoSize</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_crypto">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_crypto">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><a href="../filter.html">Filtres</a></li> +<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="format" id="format">Format du flux de données</a></h2> + + + <p>Le flux de données chiffrées comporte un bloc IV optionnel suivi des + données chiffrées avec l'algorithme de chiffrement choisi. Le bloc final est + éventuellement complété par bourrage avant d'être écrit. La taille des blocs + est déterminée par l'algorithme de chiffrement choisi.</p> + + <p>Lorsque le bloc IV est spécifié via la directive <code class="directive"><a href="#cryptoiv">CryptoIV</a></code>, il est utilisé, mais n'est pas + injecté dans le flux d'entrée/sortie.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="config" id="config">Clés et blocs IV</a></h2> + + + <p>Les directives <code class="directive"><a href="#cryptokey">CryptoKey</a></code> et + <code class="directive"><a href="#cryptoiv">CryptoIV</a></code> acceptent comme + arguments des valeurs binaires qui peuvent être spécifiées comme indiqué + ci-après. Les bits les plus significatifs de ces valeurs sont utilisés, et + si les valeurs sont trop petites, elles sont complétées par bourrage avec + des bits à 0 par la gauche. + </p> + + <dl> + <dt>file:</dt><dd>La valeur est lue directement depuis le fichier spécifié.</dd> + <dt>hex:</dt><dd>Interprète l'expression en tant que valeur hexadécimale qui + peut contenir des caractères ':' comme séparateurs.</dd> + <dt>decimal:</dt><dd>Interprète l'expression en tant que valeur décimale.</dd> + <dt>base64:</dt><dd>Interprète l'expression en tant que valeur codée en + base64.</dd> + <dt>none</dt><dd>Aucune valeur n'est spécifiée.</dd> + </dl> + + <p>Si le IV n'est pas spécifié, un IV aléatoire sera généré au cours du + chiffrement et écrit comme premier bloc. Lors du déchiffrement, le premier + bloc sera interprété en tant que IV. + </p> + + <p>A l'exception du format file:, les directives <code class="directive"><a href="#cryptokey">CryptoKey</a></code> et <code class="directive"><a href="#cryptoiv">CryptoIV</a></code> supportent la <a href="../expr.html">syntaxe des expressions</a> qui fournit plus de + flexibilité pour définir les valeurs. Les clés et IVs peuvent ainsi être + initialisées aléatoirement via des valeurs disponibles au niveau du serveur + web comme REMOTE_USER ou l'URL. + </p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="handler" id="handler">Gestionnaire de clé de chiffrement</a></h2> + + + <p>Le gestionnaire <strong>crypto-key</strong> permet de fournir la clé aux + clients autorisés qui le supportent sans avoir à stocker cette dernière dans + l'arborescence du serveur web. La même <a href="../expr.html">syntaxe + d'expression</a> peut ainsi être utilisée afin d'obtenir la clé pour les + clients et pour le contenu chiffré.</p> + + <div class="example"><h3>Gestionnaire de clé de chiffrement avec un fichier</h3><p><code> + <Location /key><br /> + <span class="indent"> + SetHandler crypto-key<br /> + CryptoCipher aes128<br /> + CryptoKey file:/path/to/file.key<br /> + AuthType basic<br /> + ...<br /> + </span> + </Location><br /> + </code></p></div> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="hls" id="hls">HTTP Live Streaming (HLS)</a></h2> + + + <p>Le protocole HLS supporte les flux chiffrés qui utilisent l'algorithme de + chiffrement AES-128 et une clé correspondante. On autorise l'accès au flux + en partageant la clé avec le client HLS en général via une connexion + sécurisée.</p> + + <p>Le IV utilisé pour le chiffrement de chaque segment de media est spécifié + dans HLS de deux manières :</p> + + <ul> + <li> + Spécifié explicitement via un attribut IV dans le tag EXT-X-KEY sous + la forme d'une valeur <strong>hexadécimale</strong>. + </li> + <li> + Spécifié implicitement en interprétant la valeur + <strong>décimale</strong> du tag EXT-X-MEDIA-SEQUENCE. + </li> + </ul> + + <p>La valeur de la séquence de media est en générale incorporée dans les + noms de segment de média et peut être recherchée en utilisant des + expressions rationnelles nommées comme dans l'exemple ci-dessous. + </p> + + <div class="example"><h3>Exemple HLS - IV de la séquence de média</h3><p><code> + <LocationMatch (?<SEQUENCE>[\d]+)[^\d^/]+$><br /> + <span class="indent"> + SetOutputFilter ENCRYPT<br /> + CryptoCipher aes128<br /> + CryptoKey file:/path/to/file.key<br /> + CryptoIV decimal:%{env:MATCH_SEQUENCE}<br /> + </span> + </LocationMatch><br /> + </code></p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cryptocipher" id="cryptocipher">Directive</a> <a name="CryptoCipher" id="CryptoCipher">CryptoCipher</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'algorithme de chiffrement que le filtre crypto doit utiliser</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoCipher name</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoCipher aes256</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> +</table> + <p>La directive <code class="directive">CryptoCipher</code> permet de spécifier + l'algorithme de chiffrement à utiliser au cours des phases de chiffrement et + de déchiffrement. L'algorithme de chiffrement par défaut est + <code>aes256</code>.</p> + + <p>C'est le pilote crypto utilisé qui détermine l'étendue du choix des algorithmes de + chiffrement parmi les valeurs possibles suivantes :</p> + + <ul><li>3des192</li><li>aes128</li><li>aes192</li><li>aes256</li></ul> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cryptodriver" id="cryptodriver">Directive</a> <a name="CryptoDriver" id="CryptoDriver">CryptoDriver</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom du pilote crypto à utiliser</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoDriver name</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoDriver openssl</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> +</table> + <p>La directive <code class="directive"><a href="#cryptodriver">CryptoDriver</a></code> + permet de spécifier le nom du pilote crypto à utiliser. Un pilote recommandé + par défaut est en général défini pour chaque plateforme. Les pilotes + supportés sont <strong>openssl</strong>, <strong>commoncrypto</strong> et + <strong>nss</strong>.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cryptoiv" id="cryptoiv">Directive</a> <a name="CryptoIV" id="CryptoIV">CryptoIV</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le Vecteur d'Initialisation IV (Initialisation Vector) que le +filtre crypto doit utiliser</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoIV value</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoIV none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> +</table> + <p>La directive <code class="directive">CryptoIV</code> permet de spécifier le IV + (Initialisation Vector) pour l'espace d'URL considéré. Le IV peut être lu à + partir d'un fichier ou défini via l'<a href="../expr.html">interpréteur + d'expressions</a>, ce qui confère plus de souplesse aux scénarios de + définition des clés.</p> + + <p>Les valeurs possibles peuvent être lues depuis un fichier ou exprimées + sous une forme hexadécimale, décimale ou en base64 en fonction des préfixes + suivants :</p> + + <ul><li>file:</li><li>hex:</li><li>decimal:</li><li>base64:</li></ul> + + <p>La valeur 'none' désactive la définition du IV. Dans ce cas, un IV + aléatoire sera généré durant le chiffrement et inséré en tant que premier + bloc ; au cours du déchiffrement, le premier bloc sera interprété comme bloc + IV.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cryptokey" id="cryptokey">Directive</a> <a name="CryptoKey" id="CryptoKey">CryptoKey</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Clé que le filtre crypto doit utiliser</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoKey value</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoKey none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> +</table> + <p>La directive <code class="directive">CryptoKey</code> permet de spécifier la clé + de chiffrement/déchiffrement pour l'espace d'URL considéré. La clé peut être + lue depuis un fichier ou défini via l'<a href="../expr.html">interpréteur + d'expressions</a>, ce qui confère plus de souplesse aux scénarios de + définition des clés.</p> + + <p>Les valeurs possibles peuvent être lues depuis un fichier ou exprimées + sous une forme hexadécimale, décimale ou en base64 en fonction des préfixes + suivants :</p> + + <ul><li>file:</li><li>hex:</li><li>decimal:</li><li>base64:</li></ul> + + <p>La valeur 'none' désactive la clé. Toute requête pour obtenir sans clé un fichier + via les filtres ENCRYPT ou DECRYPT se soldera alors par un échec. </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="cryptosize" id="cryptosize">Directive</a> <a name="CryptoSize" id="CryptoSize">CryptoSize</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale en octets du tampon utilisé par le filtre crypto</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoSize integer</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoSize 131072</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> +</table> + <p>La directive <code class="directive"><a href="#cryptosize">CryptoSize</a></code> permet + de spécifier la quantité de données en octets qui sera mise en tampon pour + chaque requête avant d'être chiffrée ou déchiffrée. La valeur par défaut est + 128 Ko.</p> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_crypto.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_crypto.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_crypto.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_filter.html.en b/docs/manual/mod/mod_filter.html.en index ff63362a00..b2b764f90d 100644 --- a/docs/manual/mod/mod_filter.html.en +++ b/docs/manual/mod/mod_filter.html.en @@ -204,15 +204,15 @@ FilterChain gzip</pre> <dd>Suppose we want to downsample all web images, and have filters for GIF, JPEG and PNG. <pre class="prettyprint lang-config">FilterProvider unpack jpeg_unpack "%{CONTENT_TYPE} = 'image/jpeg'" -FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'" -FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'" +FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'" +FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'" FilterProvider downsample downsample_filter "%{CONTENT_TYPE} = m|^image/(jpeg|gif|png)|" FilterProtocol downsample "change=yes" FilterProvider repack jpeg_pack "%{CONTENT_TYPE} = 'image/jpeg'" -FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'" -FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'" +FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'" +FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'" <Location "/image-filter"> FilterChain unpack downsample repack </Location></pre> diff --git a/docs/manual/mod/mod_firehose.html.fr b/docs/manual/mod/mod_firehose.html.fr new file mode 100644 index 0000000000..07b83a7d45 --- /dev/null +++ b/docs/manual/mod/mod_firehose.html.fr @@ -0,0 +1,316 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_firehose - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_firehose</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_firehose.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_firehose.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Multiplexage des entrées/sorties vers un fichier ou un pipe.</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>firehose_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_firehose.c</td></tr></table> +<h3>Sommaire</h3> + + <p><code>mod_firehose</code> fournit un mécanisme permettant + d'enregistrer les données transmises entre le serveur httpd et le + client au niveau élémentaire de la connexion dans un fichier ou un + pipe, de façon à ce que les données puissent être analysées ou + rejouées ultérieurement par le serveur. Il s'apparente à un "tcpdump + pour httpd".</p> + + <p>Les connexions sont enregistrées après décodage de la couche SSL, + et peuvent ainsi être utilisées dans le cadre d'une réquisition + légale.</p> + + <p>L'utilitaire <code class="program"><a href="../programs/firehose.html">firehose</a></code> permet en retour de + démultiplexer le flux enregistré dans des fichiers individuels pour + analyse ou rejeu via des outils tels que <code>netcat</code>.</p> + + <div class="note"><h3>AVERTISSEMENT</h3>Ce module ignore tout mécanisme + invoqué au niveau de la requête pour rendre les données privées. Il + est donc de la responsabilité de l'administrateur de s'assurer que + les données privées ne seront pas compromises par son utilisation. + </div> + +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation de la "Lance à incendie" (Firehose)</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#format">Format du flux</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#firehoseconnectioninput">FirehoseConnectionInput</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#firehoseconnectionoutput">FirehoseConnectionOutput</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#firehoseproxyconnectioninput">FirehoseProxyConnectionInput</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#firehoseproxyconnectionoutput">FirehoseProxyConnectionOutput</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#firehoserequestinput">FirehoseRequestInput</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#firehoserequestoutput">FirehoseRequestOutput</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_firehose">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_firehose">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><code class="program"><a href="../programs/firehose.html">firehose</a></code></li> +<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="enable" id="enable">Activation de la "Lance à incendie" (Firehose)</a></h2> + + + <p>Pour activer ce module, il doit être compilé et chargé via la + configuration de votre instance httpd courante, et les directives + ci-dessous permettent de sélectionner les données que vous souhaitez + enregistrer.</p> + + <p>Il est possible d'enregistrer les données entrantes et sortantes + dans le même fichier, car la direction du flux est indiquée dans + chaque fragment.</p> + + <p>Il est possible d'écrire vers des fichiers normaux ou des listes + fifos (pipes). Dans le cas des listes fifos, mod_firehose fait en + sorte que la taille des paquets ne dépasse pas la valeur de PIPE_BUF + afin de s'assurer que l'écriture de ces derniers s'effectue en une + seule fois.</p> + + <p>Si une liste fifo sous forme de pipe doit être utilisée, pour que + cette dernière soit ouverte en écriture, certaines données doivent + en être extraites avant le démarrage de httpd. Si l'ouverture du + pipe échoue, mod_firehose ne sera pas activé, et le serveur sera + lancé normalement.</p> + + <p>Par défaut, toute tentative d'écriture bloque le serveur. Si le + serveur a été compilé avec APR version 2.0 ou supérieure, et si le + paramètre "nonblock" a été spécifié, les écritures dans les fichiers + seront non blocantes, et tout dépassement de tampon entraînera la + perte des données de débogage. Dans ce cas, il est possible donner + la priorité à l'exécution du serveur sur l'enregistrement des + données firehose.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="format" id="format">Format du flux</a></h2> + + + <p>En général, le serveur gère plusieurs connexions simultanément, + et de ce fait, les requêtes et les réponses doivent être + multiplexées avant d'être écrites dans le firehose.</p> + + <p>Chaque fragment se présente sous la forme d'un texte en clair + de façon à ce qu'un firehose puisse être ouvert et inspecté par un + éditeur de texte standard. Il est aussi possible d'utiliser + l'utilitaire <code class="program"><a href="../programs/firehose.html">firehose</a></code> pour démultiplexer le + firehose en requêtes ou connexions individuelles.</p> + + <p>La taille maximale des fragments multiplexés est définie par la + variable PIPE_BUF. Elle correspond à la taille maximale d'un + élément que le système peut écrire. Si la taille des fragments + multiplexés reste en dessous de PIPE_BUF, le module garantit que les + contenus des différents fragments ne se recouperont pas. La valeur + de PIPE_BUF varie en fonction du système d'exploitation.</p> + + <p>La BNF du format du fragment est la suivante :</p> + + <pre> stream = 0*(fragment) + + fragment = header CRLF body CRLF + + header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count + + length = <longueur de fragment sur 16 octets hexadécimaux> + timestamp = <temps depuis 1970 en microsecondes sur 16 octets hexadécimaux> + request = "<" + response = ">" + uuid = <uuid formaté de la connexion> + count = <numéro hexadécimal du fragment dans la connexion> + + body = <contenu binaire du fragment> + + SPC = <un espace> + CRLF = <un retour chariot suivi d'une nouvelle ligne></pre> + + <p>Tous les fragments d'une connexion ou d'une requête partagent le + même UUID, selon que les connexions ou les requêtes sont + enregistrées ou non. Si les connexions sont enregistrées, plusieurs + requêtes peuvent apparaître dans la même connexion. Un fragment de + longueur nulle indique la fin de la connexion.</p> + + <p>Certains fragments peuvent manquer ou être supprimés si le + processus qui les lit est trop lent. Si cela se produit, il y aura + des trous dans le comptage des connections. Un avertissement + indiquant l'UUID et le numéro du fragment supprimé sera enregistré + dans le journal des erreurs.</p> + + <p>En cas de crash ou d'arrêt forcé du processus httpd, il est + possible que le fragment vide de terminaison n'apparaisse pas. Cela + peut aussi se produire si le processus qui lit les fragments n'est + pas assez rapide.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="firehoseconnectioninput" id="firehoseconnectioninput">Directive</a> <a name="FirehoseConnectionInput" id="FirehoseConnectionInput">FirehoseConnectionInput</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture le trafic entrant dans le serveur à chaque +connexion.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FirehoseConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_firehose</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Capture le trafic entrant dans le serveur à chaque connexion. + Plusieurs requêtes seront capturées pour la même connexion si les + connexions persistantes sont activées.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">FirehoseConnectionInput connection-input.firehose</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="firehoseconnectionoutput" id="firehoseconnectionoutput">Directive</a> <a name="FirehoseConnectionOutput" id="FirehoseConnectionOutput">FirehoseConnectionOutput</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture le trafic sortant du serveur à chaque connexion</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FirehoseConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_firehose</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Capture le trafic sortant du serveur à chaque connexion. + Plusieurs requêtes seront capturées pour la même connexion si les + connexions persistantes sont activées. + </p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">FirehoseConnectionOutput connection-output.firehose</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="firehoseproxyconnectioninput" id="firehoseproxyconnectioninput">Directive</a> <a name="FirehoseProxyConnectionInput" id="FirehoseProxyConnectionInput">FirehoseProxyConnectionInput</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture le trafic entrant dans mod_proxy</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FirehoseProxyConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_firehose</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td /></tr> +</table> + <p>Capture le trafic reçu par mod_proxy.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">FirehoseProxyConnectionInput proxy-input.firehose</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="firehoseproxyconnectionoutput" id="firehoseproxyconnectionoutput">Directive</a> <a name="FirehoseProxyConnectionOutput" id="FirehoseProxyConnectionOutput">FirehoseProxyConnectionOutput</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture le trafic envoyé par mod_proxy</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FirehoseProxyConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_firehose</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Capture le trafic envoyé par mod_proxy.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">FirehoseProxyConnectionOutput proxy-output.firehose</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="firehoserequestinput" id="firehoserequestinput">Directive</a> <a name="FirehoseRequestInput" id="FirehoseRequestInput">FirehoseRequestInput</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture le trafic entrant dans le serveur à chaque requête</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FirehoseRequestInput <var>[ block | nonblock ]</var> <var>filename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_firehose</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Capture le trafic entrant dans le serveur à chaque requête. Les + requêtes sont capturées séparément, que les connexions persistantes + soient activées ou non.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">FirehoseRequestInput request-input.firehose</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="firehoserequestoutput" id="firehoserequestoutput">Directive</a> <a name="FirehoseRequestOutput" id="FirehoseRequestOutput">FirehoseRequestOutput</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture le trafic sortant du serveur à chaque requête</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>FirehoseRequestOutput <var>[ block | nonblock ]</var> <var>filename</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_firehose</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Capture le trafic sortant du serveur à chaque requête. Les + requêtes sont capturées séparément, que les connexions persistantes + soient activées ou non.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">FirehoseRequestOutput request-output.firehose</pre> +</div> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_firehose.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_firehose.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_firehose.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_http2.html.fr b/docs/manual/mod/mod_http2.html.fr new file mode 100644 index 0000000000..8d116b80fa --- /dev/null +++ b/docs/manual/mod/mod_http2.html.fr @@ -0,0 +1,1043 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_http2 - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_http2</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_http2.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_http2.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support de la couche transport HTTP/2</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>http2_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_http2.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.17 du serveur + HTTP Apache</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module ajoute le support de HTTP/2 (<a href="https://tools.ietf.org/html/rfc7540">RFC 7540</a>) au serveur HTTP + Apache.</p> + + <p>Il s'appuie sur la bibliothèque <a href="http://nghttp2.org/">libnghttp2</a> pour implémenter le + moteur de base http/2.</p> + + <div class="warning"><h3>Avertissement</h3> + <p>Ce module en est au stade expérimental. Ses comportements, + directives et valeurs par défaut sont susceptibles d'évoluer + au fur et à mesure de la parution de ses futures différentes + versions en relation avec les autres modules standards. Les + utilisateurs sont fortement encouragés à consulter le fichier + "CHANGES" pour les éventuelles mises à jour.</p> + </div> + + <p>Pour mettre en oeuvre les fonctionnalités décrites dans ce + document, vous devez activer HTTP/2 en utilisant la directive + <code class="directive"><a href="../mod/core.html#protocols">Protocols</a></code>. HTTP/2 <a href="https://http2.github.io/faq/#does-http2-require-encryption">n'imposant + pas</a> de chiffrement, deux protocoles sont disponibles : + <code>h2</code> (HTTP/2 avec TLS) at <code>h2c</code> (HTTP/2 avec TCP).</p> + + <p>Voici deux types de configuration courant :</p> + + <div class="note"><h3>HTTP/2 dans un contexte de serveur virtuel (TLS seulement)</h3> + <pre class="prettyprint lang-config">Protocols h2 http/1.1</pre> + + <p>Permet une négociation HTTP/2 (h2) via TLS ALPN au sein d'un + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + sécurisé. La vérification du préambule HTTP/2 (mode direct, voir + <code class="directive"><a href="#h2direct">H2Direct</a></code>) est désactivée par + défaut pour <code>h2</code>.</p> + </div> + + <div class="note"><h3>HTTP/2 dans un contexte de serveur (TLS et texte pur)</h3> + <pre class="prettyprint lang-config">Protocols h2 h2c http/1.1</pre> + + <p>Permet une négociation HTTP/2 (h2) via TLS ALPN au sein d'un + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + sécurisé. Permet aussi une négociation HTTP/2 en texte pur (h2c) en + effectuant une mise à jour depuis une connexion initiale HTTP/1.1 ou via + une vérification du préambule HTTP/2 (mode direct, voir + <code class="directive"><a href="#h2direct">H2Direct</a></code>).</p> + </div> + + <p>Si vous avez besoin d'informations supplémentaires à propos du + protocole, veuillez vous reporter à la <a href="https://http2.github.io/faq">HTTP/2 FAQ</a>.</p> + + + </div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Comment ça marche ?</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#h2copyfiles">H2CopyFiles</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2direct">H2Direct</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2earlyhints">H2EarlyHints</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2maxsessionstreams">H2MaxSessionStreams</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2maxworkeridleseconds">H2MaxWorkerIdleSeconds</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2maxworkers">H2MaxWorkers</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2minworkers">H2MinWorkers</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2moderntlsonly">H2ModernTLSOnly</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2push">H2Push</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2pushdiarysize">H2PushDiarySize</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2pushpriority">H2PushPriority</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2pushresource">H2PushResource</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2serializeheaders">H2SerializeHeaders</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2streammaxmemsize">H2StreamMaxMemSize</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2tlscooldownsecs">H2TLSCoolDownSecs</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2tlswarmupsize">H2TLSWarmUpSize</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2upgrade">H2Upgrade</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#h2windowsize">H2WindowSize</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_http2">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_http2">Signaler un bug</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="how-it-works" id="how-it-works">Comment ça marche ?</a></h2> + + <h3><a name="dimensioning" id="dimensioning">Quantification des ressources + supplémentaires nécessaires à HTTP/2</a></h3> + <p> + Activer HTTP/2 sur votre serveur Apache a un impact sur la + consommation de ressources, et si votre site est très actif, il est + conseillé d'en prendre sérieusement en compte les implications. + </p> + <p> + HTTP/2 attribue à chaque requête qu'il reçoit son propre <em>thread + de travail</em> pour son traitement, la collecte des résultats et + l'envoie de ces derniers au client. Pour y parvenir, il lui faut + lancer des threads supplémentaires, et ceci constituera le premier + effet notable de l'activation de HTTP/2. + </p> + <p> + Dans l'implémentation actuelle, ces threads de travail font partie + d'un jeu de threads distinct de celui des threads de travail du MPM + avec lequel vous êtes familié. Il s'agit simplement du mode de + fonctionnement actuel, et il n'en sera pas obligatoirement toujours + ainsi (il est cependant probable que la situation restera inchangée + avec la version 2.4.x). De par ce mode de fonctionnement, les + threads de travail HTTP/2, ou plus simplement H2 ne seront pas + affichés par <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>. De même, ils ne seront pas + pris en compte par les directives du style <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code>. Par contre, ils + utilisent par défaut la valeur de <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> si vous n'avez pas + spécifié d'autres valeurs via <code class="directive"><a href="#h2minworkers">H2MinWorkers</a></code> et <code class="directive"><a href="#h2maxworkers">H2MaxWorkers</a></code>. + </p> + <p> + Autre changement à surveiller : la consommation de mémoire. En + effet, comme HTTP/2 conserve plus d'informations sur le serveur pour + gérer toutes les requêtes en cours, leurs priorités et + interdépendances, il aura toujours besoin de plus de mémoire que + pour un traitement en HTTP/1.1. Trois directives permettent de + limiter l'empreinte mémoire d'une connexion HTTP/2 : <code class="directive"><a href="#h2maxsessionstreams">H2MaxSessionStreams</a></code>, <code class="directive"><a href="#h2windowsize">H2WindowSize</a></code> et <code class="directive"><a href="#h2streammaxmemsize">H2StreamMaxMemSize</a></code>. + </p> + <p> + La directive <code class="directive"><a href="#h2maxsessionstreams">H2MaxSessionStreams</a></code> permet de limiter + le nombre de requêtes simultanées qu'un client peut envoyer sur une + connexion HTTP/2. La valeur que vous allez définir dépend de votre + site. La valeur par défaut qui est de 100 est largement suffisante, + et à moins que vous ne soyez un peu juste en mémoire, je vous + conseille de ne pas la modifier. La plupart des requêtes qu'envoie + un client sont des requêtes de type GET sans corps qui n'utilisent + que très peu de mémoire en attendant le démarrage du traitement. + + </p> + <p> + La directive <code class="directive"><a href="#h2windowsize">H2WindowSize</a></code> + permet de définir la taille maximale que peut avoir le corps d'une + requête que le client envoie avant d'attendre que le serveur + en demande d'avantage. En d'autres termes, il s'agit de la quantité + de données que le serveur peut stocker dans son tampon, valable pour + une requête. + </p> + <p> + En outre, la directive <code class="directive"><a href="#h2streammaxmemsize">H2StreamMaxMemSize</a></code> permet de définir + la quantité de données de la réponse qui doit être mise en tampon. + Chaque requête étant prise en charge par un thread H2Worker et + produisant des données que le serveur tente de transmettre au client + via une connexion HTTP/2, si le client n'est pas en mesure de lire + ces données assez rapidement, la connexion les mettra en tampon et + interrompra l'exécution du thread H2Worker correspondant. + </p> + + + + <h3><a name="misdirected" id="misdirected">Serveurs virtuels et requêtes mal + redirigées</a></h3> + <p> + De nombreux site utilisent le même certificat TLS pour plusieurs + serveurs virtuels. Ce certificat référence un nom de serveur + générique comme '*.example.org' ou plusieurs noms de serveur + différents. Les navigateurs qui utilisent HTTP/2 détectent ce + comportement et réutilisent une connexion déjà ouverte pour ces + serveurs. + </p> + <p> + Ceci améliore considérablement les performances, mais il y a un prix + à payer : il faut accorder un soin tout particulier à la + configuration de tels serveurs virtuels. Le problème réside dans le + fait que plusieurs requêtes pour plusieurs serveurs virtuels vont se + partager la même connexion TLS, et ceci empêche toute renégociation + car le standard HTTP/2 l'interdit. + </p> + <p> + Ainsi, lorsque plusieurs de vos serveurs virtuels utilisent le même + certificat et si vous souhaitez utiliser HTTP/2 pour y accéder, vous + devez vous assurer que tous vos serveurs virtuels possèdent + exactement la même configuration SSL. En particulier, ils doivent + utiliser les mêmes protocole, algorithme de chiffrement et + configuration pour la vérification du client. + </p> + <p> + Dans le cas contraire, Apache httpd le détectera et renverra au + client un code de réponse spécial, 421 Misdirected Request. + </p> + + + <h3><a name="envvars" id="envvars">Variables d'environnement</a></h3> + + <p>Ce module peut être configuré pour fournir des informations en + rapport avec HTTP/2 sous la forme de variables d'environnement + supplémentaires dans l'espace de nommage SSI et CGI, ainsi que dans les + configurations personnalisées de le journalisation (voir + <code>%{VAR_NAME}e</code>). + </p> + + <table class="bordered"> + + <tr> + <th><a name="table3">Nom variable :</a></th> + <th>Type :</th> + <th>Description :</th> + </tr> + <tr><td><code>HTTPe</code></td><td>drapeau</td><td>HTTP/2 est utilisé.</td></tr> + <tr><td><code>H2PUSH</code></td><td>drapeau</td><td>La + fonctionnalité HTTP/2 Server Push est activée pour cette requête et + supportée par le client.</td></tr> + <tr><td><code>H2_PUSH</code></td><td>drapeau</td><td>autre nom pour <code>H2PUSH</code></td></tr> + <tr><td><code>H2_PUSHED</code></td><td>chaîne</td><td>vide ou + <code>PUSHED</code> pour une requête pushée par le serveur.</td></tr> + <tr><td><code>H2_PUSHED_ON</code></td><td>nombre</td><td>numéro du + flux HTTP/2 qui a déclenché le push de cette requête.</td></tr> + <tr><td><code>H2_STREAM_ID</code></td><td>nombre</td><td>numéro du + flux HTTP/2 de cette requête.</td></tr> + <tr><td><code>H2_STREAM_TAG</code></td><td>chaîne</td><td>identifiant + de flux unique du processus HTTP/2 composé de l'identifiant de la + connexion et de l'identifiant du flux séparés par <code>-</code>.</td></tr> + </table> + + + + </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2copyfiles" id="h2copyfiles">Directive</a> <a name="H2CopyFiles" id="H2CopyFiles">H2CopyFiles</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle la gestion des fichiers dans les réponses</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2CopyFiles on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2CopyFiles off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.24 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet de définir la manière de gérer les + contenus de fichiers dans les réponses. Lorsqu'elle est à <code>off</code> + (sa valeur par défaut), les descripteurs de fichiers sont + transmis par le processus de traitement de la requête vers la + connexion principale en utilisant le système habituel de mise en + réserve d'Apache pour gérer le durée de vie du fichier. + </p> + <p> + Lorsqu'elle est à <code>on</code>, le contenu du fichier est + recopier pendant le traitement de la requête et ces données + mises en tampon sont transmises vers la connexion principale, ce + qui s'avère avantageux lorsqu'un module tiers injecte dans la + réponse des fichiers possédant des durées de vie différentes. + </p> + <p> + Un exemple de ces modules tiers : <code>mod_wsgi</code> qui peut + injecter des descripteurs de fichiers dans la réponse. Ces + fichiers sont fermés lorsque Python estime que le traitement est + terminé, alors que <code class="module"><a href="../mod/mod_http2.html">mod_http2</a></code> est probablement + encore loin d'en avoir fini avec eux. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2direct" id="h2direct">Directive</a> <a name="H2Direct" id="H2Direct">H2Direct</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Activation du protocole H2 Direct</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2Direct on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2Direct on pour h2c, off pour le protocole h2</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet d'activer/désactiver + l'utilisation du mode HTTP/2 Direct. Elle doit être + située dans une section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> afin d'activer la + communication directe HTTP/2 pour le serveur virtuel + considéré. + </p> + <p> + La notion de communication directe signifie que si les + premiers octets reçus par le serveur correspondent à un + en-tête HTTP/2, le protocole HTTP/2 est utilisé sans + négociation supplémentaire. Ce mode est défini pour + les transmissions en clair (h2c) dans la RFC 7540. Son + utilisation avec les connexions TLS n'est pas + officiellement supportée. + </p> + <p> + Lorsque le protocole h2 ou h2c n'est pas activé via la + directive <code class="directive"><a href="../mod/core.html#protocols">Protocols</a></code>, la recherche d'un en-tête HTTP/2 n'est + jamais effectuée au sein d'une connexion. La directive + <code class="directive">H2Direct</code> ne produit alors aucun effet. Ceci est + important pour les connexions qui utilisent un protocole + pour lequel une lecture initiale peut entraîner un + blocage définitif comme NNTP. + </p> + <p> + Pour un client qui sait qu'un serveur supporte h2c, la + communication directe HTTP/2 dispense le client d'une + mise à jour HTTP/1.1, ce qui entraîne une amélioration + des performances et évite les restrictions sur les corps + de requête suite à une mise à jour. + </p> + <p> + Cette directive rend aussi h2c plus attractif pour les + communications de serveur à serveur lorsque la connexion + est sure ou peut être sécurisée d'une manière ou d'une + autre. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2Direct on</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2earlyhints" id="h2earlyhints">Directive</a> <a name="H2EarlyHints" id="H2EarlyHints">H2EarlyHints</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle l'envoi de codes d'état 103</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2EarlyHints on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2EarlyHints off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.24 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet de définir si les réponses intermédiaires + contenant un code d'état HTTP 103 doivent être envoyées au + client ou non. Par défaut ce n'est actuellement pas le cas car + certains clients ont encore des problèmes avec les réponses + intermédiaires inattendues. + </p> + <p> + Lorsque cette directive est définie à <code>on</code>, les + ressources PUSHées définie par la directive + <code>H2PushResource</code> déclenchent une réponse + intermédiaire 103 avant la réponse finale. Cette réponse 103 + comporte des en-têtes <code>Link</code> qui provoquent le + <code>préchargement</code> des ressources considérées. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2maxsessionstreams" id="h2maxsessionstreams">Directive</a> <a name="H2MaxSessionStreams" id="H2MaxSessionStreams">H2MaxSessionStreams</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximal de flux actifs par session HTTP/2.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2MaxSessionStreams <em>n</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2MaxSessionStreams 100</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir le nombre maximal de flux + actifs par session (connexion) HTTP/2 accepté par le serveur. + Selon la RFC 7540, un flux est considéré comme actif s'il n'est + ni <code>en attente</code> ni <code>fermé</code>. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2MaxSessionStreams 20</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2maxworkeridleseconds" id="h2maxworkeridleseconds">Directive</a> <a name="H2MaxWorkerIdleSeconds" id="H2MaxWorkerIdleSeconds">H2MaxWorkerIdleSeconds</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximal de secondes pendant lequel une unité de + traitement h2 pourra rester inactive sans être arrêtée.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2MaxWorkerIdleSeconds <em>n</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2MaxWorkerIdleSeconds 600</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir le nombre maximal de secondes + pendant lequel une unité de traitement h2 pourra rester inactive + avant de s'arrêter elle-même. Cet arrêt ne peut cependant se + produire que si le nombre d'unités de traitement h2 dépasse + <code class="directive"><a href="#h2minworkers">H2MinWorkers</a></code>. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2MaxWorkerIdleSeconds 20</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2maxworkers" id="h2maxworkers">Directive</a> <a name="H2MaxWorkers" id="H2MaxWorkers">H2MaxWorkers</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximal de threads à utiliser pour chaque processus + enfant.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2MaxWorkers <em>n</em></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir le nombre maximal de threads à + lancer pour le traitement HTTP/2 de chaque processus enfant. Si + cette directive n'est pas définie, <code class="module"><a href="../mod/mod_http2.html">mod_http2</a></code> + choisira une valeur appropriée en fonction du module <code>mpm</code> + utilisé. + + This directive sets the maximum number of worker threads to spawn + per child process for HTTP/2 processing. If this directive is not used, + <code>mod_http2</code> will chose a value suitable for the <code>mpm</code> + module loaded. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2MaxWorkers 20</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2minworkers" id="h2minworkers">Directive</a> <a name="H2MinWorkers" id="H2MinWorkers">H2MinWorkers</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre minimal de threads à utiliser pour chaque processus + enfant.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2MinWorkers <em>n</em></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir le nombre minimal de threads à + lancer pour le traitement HTTP/2 de chaque processus enfant. Si + cette directive n'est pas définie, <code class="module"><a href="../mod/mod_http2.html">mod_http2</a></code> + choisira une valeur appropriée en fonction du module <code>mpm</code> + utilisé. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2MinWorkers 10</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2moderntlsonly" id="h2moderntlsonly">Directive</a> <a name="H2ModernTLSOnly" id="H2ModernTLSOnly">H2ModernTLSOnly</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Impose les connexions HTTP/2 en mode "TLS moderne" + seulement</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2ModernTLSOnly on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2ModernTLSOnly on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.18 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet de définir si les vérifications de + sécurité sur les connexions HTTP/2 doivent être exclusivement en + mode TLS (https:). Elle peut être placée au niveau du serveur + principal ou dans une section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. + </p> + <p> + Les vérifications de sécurité nécessitent TLSv1.2 au minimum et + l'absence de tout algorithme de chiffrement listé dans la RFC + 7540, Appendix A. Ces vérifications seront étendues lorsque de + nouveaux prérequis en matière de sécurité seront mis en place. + </p> + <p> + Le nom provient des définitions Mozilla <a href="https://wiki.mozilla.org/Security/Server_Side_TLS">Security/Server + Side TLS</a> où il est question de "modern compatibility". + Mozilla Firefox et d'autres navigateurs imposent la "modern + compatibility" pour les connexions HTTP/2. Comme toute chose en + matière de sécurité opérationnelle, c'est une cible mouvante + susceptible d'évoluer dans le futur. + </p> + <p> + Un des buts de ces vérifications dans <code class="module"><a href="../mod/mod_http2.html">mod_http2</a></code> tend à imposer + ce niveau de sécurité pour toutes les connexions, et non + seulement celles en provenance des navigateurs web. Un autre but + est l'interdiction d'utiliser HTTP/2 en tant que protocole dans + les négociations si les prérequis ne sont pas respectés. + </p> + <p> + En fin de compte, la sécurité de la connexion TLS est déterminée + par les directives de configuration du serveur pour <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2ModernTLSOnly off</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2push" id="h2push">Directive</a> <a name="H2Push" id="H2Push">H2Push</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Activation/désactivation du server push H2</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2Push on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2Push on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.18 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet d'activer/désactiver + l'utilisation de la fonctionnalité server push du + protocole HTTP/2. + </p> + <p> + Lorsqu'un client demande une ressource particulière, le + protocole HTTP/2 permet au serveur de lui fournir des + ressources supplémentaires. Ceci s'avère utile lorsque + ces ressources sont reliées entre elles, ce qui peut + laisser supposer que le client va probablement les + demander dans un délai plus ou moins long. Le mécanisme + de pushing permet alors au client d'économiser le temps + qu'il lui aurait fallu pour demander ces ressources + supplémentaires lui-même. Par contre, fournir au client + des ressources dont il n'a pas besoin ou qu'il possède + déjà constitue une perte de bande passante. + </p> + <p> + Les server pushes sont détectés en inspectant les + en-têtes <code>Link</code> des réponses (voir + https://tools.ietf.org/html/rfc5988 pour la + spécification). Lorsqu'un lien spécifié de cette manière + possède l'attribut <code>rel=preload</code>, il est + considéré comme devant faire l'objet d'un push. + </p> + <p> + Les en-têtes link des réponses sont soit définis par + l'application, soit configurés via + <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> comme suit : + </p> + <div class="example"><h3>Exemple de configuration d'en-tête link via mod_headers</h3><pre class="prettyprint lang-config"><Location /index.html> + Header add Link "</css/site.css>;rel=preload" + Header add Link "</images/logo.jpg>;rel=preload" +</Location></pre> +</div> + <p> + Comme le montre l'exemple, il est possible d'ajouter + autant d'en-têtes link que l'on souhaite à une réponse, ce qui déclenchera + autant de pushes. Cette fonctionnalité doit donc être + utilisée avec prudence car le module ne vérifie pas si + une ressource n'a pas déjà été "pushée" vers un client. + </p> + <p> + Les server pushes HTTP/2 sont activés par défaut. Cette + directive permet de désactiver cette fonctionnalité pour + le serveur virtuel ou non considéré. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2Push off</pre> +</div> + <p> + Enfin, il est important de savoir que les pushes ne se + produisent que si le client en manifeste le désir ; la + plupart des navigateurs le font, mais certains, comme + Safari 9, ne le font pas. En outre, les pushes ne se produisent que + pour les ressources de la même <em>autorité</em> que celle de la + réponse originale. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2pushdiarysize" id="h2pushdiarysize">Directive</a> <a name="H2PushDiarySize" id="H2PushDiarySize">H2PushDiarySize</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du journal des Pushes H2</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2PushDiarySize n</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2PushDiarySize 256</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.19 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet de définir le nombre maximum de pushes + qui seront enregistrés pour une connexion HTTP/2. Elle peut être + placée dans une section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> afin de définir le nombre + de pushes pour le serveur virtuel considéré. + </p> + <p> + Le journal des pushes enregistre un condensé (sous la forme d'un + nombre de 64 bits) des ressources préchargées (leurs URLs) afin + d'éviter les duplications de pushes pour une même connexion. + Cependant, ces données ne sont pas conservées, et les clients + qui ouvrent une nouvelle connexion se verront à nouveau affecter les + mêmes pushes. A ce titre, une étude est en cours pour permettre + au client de supprimer le condensé des ressources qu'il possède + déjà, et par là-même de réinitialiser le journal des pushes à + chaque nouvelle connexion. + </p> + <p> + Si la taille maximale est atteinte, les nouvelles entrées + remplacent les plus anciennes. Une entrée du journal nécessitant + 8 octets, un journal de 256 entrées consomme 2 Ko de mémoire. + </p> + <p> + Si cette directive est définie à 0, le journal des pushes est + désactivé. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2pushpriority" id="h2pushpriority">Directive</a> <a name="H2PushPriority" id="H2PushPriority">H2PushPriority</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Priorité des pushes H2</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2PushPriority mime-type [after|before|interleaved] [weight]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2PushPriority * After 16</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.18 du serveur HTTP + Apache. Nécessite la bibliothèque nghttp2 version 1.5.0 ou supérieure.</td></tr> +</table> + <p> + Cette directive permet de définir une gestion de priorité des + pushes en fonction du type de contenu de la réponse. Elle est en + général définie au niveau du serveur principal, mais peut aussi + l'être au niveau d'un serveur virtuel. + </p> + <p> + Les pushes HTTP/2 sont toujours liés à une requête client. + Chaque paire requête/réponse de cette sorte, ou <em>flux</em>, + possède une dépendance et un poids qui définissent la + <em>priorité</em> du flux. + </p> + <p> + Lorsqu'un flux <em>dépend</em> d'un autre, disons X dépend de Y, + alors Y reçoit toute la bande passante avant que X n'en reçoive + ne serait-ce qu'une partie. Notez que cela ne signifie en rien + que Y bloque X ; en effet, si Y n'a aucune donnée à envoyer, + toute la bande passante qui lui est allouée peut être utilisée + par X. + </p> + <p> + Lorsque plusieurs flux dépendent d'un même autre flux, disons X1 + et X2 dépendent tous deux de Y, le <em>poids</em> détermine la + bande passante allouée. Ainsi, si X1 et X2 possèdent le même + poids, ils recevront tous deux la moitié de la bande passante + disponible. Si le poids de X1 est égal au double de celui de X2, + X1 recevra une bande passante double de celle de X2. + + </p> + <p> + En fin de compte, tout flux dépend du flux <em>racine</em> qui + reçoit toute la bande passante disponible mais n'envoie jamais + de données. Cette bande passante est ainsi répartie entre les flux + enfants selon leur poids. Ces derniers l'utilisent alors pour + envoyer leurs données ou pour la répartir entre leurs propres + flux enfants, et ainsi de suite. Si aucun des flux enfants n'a + de données à envoyer, la bande passante est attribuée à d'autres + flux selon les mêmes règles. + </p> + <p> + Ce système de priorités a été conçu de façon a toujours pouvoir + utiliser la bande passante disponible tout en définissant des + priorités et en attribuant des poids aux différents flux. Ainsi, + tous les flux sont en général initialisés par le client qui + lui-même définit les priorités. + </p> + <p> + Seul le fait de savoir qu'un flux implique un PUSH permet au + serveur de décider quelle est la priorité <em>initiale</em> d'un + tel flux. Dans les exemples ci-dessous, X est le flux client. Il + dépend de Y et le serveur décide de "PUSHer" les flux P1 et P2 + sur X. + </p> + <p> + La règle de priorité par défaut est : + </p> + <div class="example"><h3>Règle de priorité par défaut</h3><pre class="prettyprint lang-config">H2PushPriority * After 16</pre> +</div> + <p> + Elle peut se traduire par "Envoyer un flux PUSH avec tout type + de contenu et dépendant du flux client avec le poids 16". P1 et + P2 seront alors envoyés après X, et comme leurs poids sont + identiques, il se verront allouer la même quantité de bande + passante. + </p> + <div class="example"><h3>Règle de priorité entrelacée</h3><pre class="prettyprint lang-config">H2PushPriority text/css Interleaved 256</pre> +</div> + <p> + Ce qui peut se traduire par "Envoyer toute ressource CSS dans la + même dépendance et avec le même poids que le flux client". Si le + type de contenu de P1 est "text/css", il dépendra de Y (comme X) + et son poids effectif sera calculé selon la formule : <code>P1ew + = Xw * (P1w / 256)</code>. Si P1w est de 256, Le poids effectif + de P1 sera le même que celui de X. Si X et P1 ont des données à + envoyer, il se verront allouer la même quantité de bande + passante. + </p> + <p> + Avec un Pw de 512, un flux entrelacé et PUSHé aura un poids + double de celui de X. Avec un poids de 128, son poids ne sera + que la moitié de celui de X. Notez que les poids effectifs sont + toujours plafonnés à 256. + + </p> + <div class="example"><h3>Règle de priorité Before</h3><pre class="prettyprint lang-config">H2PushPriority application/json Before</pre> +</div> + <p> + Dans cet exemple, tout flux PUSHé dont le contenu est de type + 'application/json' sera envoyé <em>avant</em> X, ce qui rend P1 + dépendant de Y et X dépendant de P1. Ainsi, X sera mis en + attente aussi longtemps que P1 aura des données à envoyer. Le + poids effectif est hérité du flux client, et l'attribution d'un + poids spécifique n'est pas autorisée. + </p> + <p> + Vous devez garder à l'esprit que les spécifications en matière + de priorités sont limitées par les ressources disponibles du + serveur. Si un serveur ne dispose d'aucun processus/thread de + travail pour les flux PUSHés, les données du flux considéré ne + seront envoyées que lorsque les autres flux auront terminé + l'envoi des leurs. + </p> + <p> + Enfin et surtout, il convient de tenir compte de certaines + particularités de la syntaxe de cette directive : + </p> + <ol> + <li>'*' est la seule expression permettant de remplacer tout + type de contenu. 'image/*' ne fonctionnera pas.</li> + <li>La dépendance par défaut est 'After'.</li> + <li>Il existe aussi des poids par défaut : pour 'After' le poids + est de 16, alors que pour 'interleaved' il est de 256. + </li> + </ol> + <div class="example"><h3>Exemples de règles</h3><pre class="prettyprint lang-config">H2PushPriority application/json 32 # une règle de priorité 'After' +H2PushPriority image/jpeg before # poid hérité +H2PushPriority text/css interleaved # poids de 256 par défaut</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2pushresource" id="h2pushresource">Directive</a> <a name="H2PushResource" id="H2PushResource">H2PushResource</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Déclare des ressources à proposer ("pusher") au client</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2PushResource [add] path [critical]</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.24 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Lorsqu'il sont activés pour un répertoire, les PUSHes HTTP/2 seront + tentés pour tous les chemins ajoutés via cette directive. Cette + dernière peut être utilisée plusieurs fois pour le même + répertoire. + </p> + <p> + Cette directive propose des ressources beaucoup plus tôt que les + en-têtes <code>Link</code> de <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>. + <code class="module"><a href="../mod/mod_http2.html">mod_http2</a></code> présente ces ressources au client via + une réponse intermédiaire <code>103 Early Hints</code>. Ceci + implique que les clients qui ne supportent pas PUSH recevront + quand-même rapidement des propositions de préchargement. + </p> + <p> + A la différence de la définition d'en-têtes de réponse + <code>Link</code> via <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>, cette + directive n'aura d'effet que pour les connexions HTTP/2. + </p> + <p> + En ajoutant l'option <code>critical</code> à une telle + ressource, le serveur la traitera prioritairement, et une fois + les données disponibles, ces dernières seront envoyées avant les + données de la requête principale. + </p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2serializeheaders" id="h2serializeheaders">Directive</a> <a name="H2SerializeHeaders" id="H2SerializeHeaders">H2SerializeHeaders</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active/désactive la sérialisation du traitement des + requêtes/réponses</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2SerializeHeaders on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2SerializeHeaders off</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir si les requêtes HTTP/2 doivent + être sérialisées au format HTTP/1.1 pour être traitées par le + noyau de <code>httpd</code>, ou si les données binaires reçues + doivent être passées directement aux <code>request_rec</code>s. + </p> + <p> + La sérialisation dégrade les performances, mais garantit une + meilleure compatibilité ascendante lorsque des filtres ou + programmes accroche personnalisés en ont besoin. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2SerializeHeaders on</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2streammaxmemsize" id="h2streammaxmemsize">Directive</a> <a name="H2StreamMaxMemSize" id="H2StreamMaxMemSize">H2StreamMaxMemSize</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Quantité maximale de données en sortie mises en tampon par + flux.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2StreamMaxMemSize <em>bytes</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2StreamMaxMemSize 65536</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir la quantité maximale de + données en sortie mises en tampon mémoire pour un flux actif. Ce + tampon mémoire n'est pas alloué pour chaque flux en tant que + tel. Les quantités de mémoire sont définies en fonction de + cette limite lorsqu'elles sont sur le point d'être allouées. Le + flux s'arrête lorsque la limite a été atteinte, et ne reprendra + que lorsque les données du tampon auront été transmises au + client. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2StreamMaxMemSize 128000</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2tlscooldownsecs" id="h2tlscooldownsecs">Directive</a> <a name="H2TLSCoolDownSecs" id="H2TLSCoolDownSecs">H2TLSCoolDownSecs</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td /></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2TLSCoolDownSecs <em>seconds</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2TLSCoolDownSecs 1</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.18 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet de spécifier le nombre de secondes avant + lequel une connexion TLS inactive va diminuer + la taille des paquets de données à une valeur inférieure (~1300 + octets). Elle peut être définie au niveau du serveur principal + ou pour un <code class="directive"><a href="../mod/core.html#serveur virtuel"><serveur + virtuel></a></code> spécifique. + </p> + <p> + Voir la directive <code class="directive"><a href="#h2tlswarmupsize">H2TLSWarmUpSize</a></code> pour une description + du "préchauffage" de TLS. La directive <code class="directive">H2TLSCoolDownSecs</code> met en + lumière le fait que les connexions peuvent se détériorer au bout + d'un certain temps (et au fur et à mesure des corrections du + flux TCP), et cela même si elle sont inactives. Pour ne pas + détériorer les performances d'une manière générale, il est par + conséquent préférable de revenir à la phase de préchauffage + lorsqu'aucune donnée n'a été transmise pendant un certain nombre + de secondes. + </p> + <p> + Dans les situations où les connexions peuvent être considérées + comme fiables, ce délai peut être désactivé en définissant cette + directive à 0. + </p> + <p> + Dans l'exemple suivant, la directive est définie à 0, ce qui + désactive tout retour à une phase de préchauffage des connexions + TLS. Les connexions TLS déjà préchauffées conservent donc toujours + leur taille de paquet de données maximale. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2TLSCoolDownSecs 0</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2tlswarmupsize" id="h2tlswarmupsize">Directive</a> <a name="H2TLSWarmUpSize" id="H2TLSWarmUpSize">H2TLSWarmUpSize</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td /></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2TLSWarmUpSize <em>amount</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2TLSWarmUpSize 1048576</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.18 du serveur HTTP + Apache.</td></tr> +</table> + <p> + Cette directive permet de définir le nombre d'octets à envoyer + dans les petits enregistrements TLS (~1300 octets) avant + d'atteindre leur taille maximale de 16 ko pour les connexions + https: HTTP/2. Elle peut être définie au niveau du serveur + principal ou pour des <code class="directive"><a href="../mod/core.html#serveurs virtuels"><Serveurs virtuels></a></code> spécifiques. + </p> + <p> + Les mesures effectuées par les <a href="https://www.igvita.com">laboratoires de performances de + Google</a> montrent que les meilleurs performances sont atteintes + pour les connexions TLS si la taille initiale des + enregistrements reste en deça du niveau du MTU afin de permettre + à la totatlité d'un enregistrement d'entrer dans un paquet IP. + </p> + <p> + Comme TCP ajuste son contrôle de flux et sa taille de fenêtre, + des enregistrements TLS trop longs peuvent rester en file + d'attente ou même être perdus et devoir alors être réémis. Ceci + est bien entendu vrai pour tous les paquets ; cependant, TLS a + besoin de la totalité de l'enregistrement pour pouvoir le + déchiffrer. Tout octet manquant rendra impossible l'utilisation + de ceux qui ont été reçus. + </p> + <p> + Lorqu'un nombre suffisant d'octets a été transmis avec succès, + la connexion TCP est stable, et la taille maximale (16 ko) des + enregistrements TLS peut être utilisée pour des performances + optimales. + </p> + <p> + Dans les architectures où les serveurs sont atteints par des + machines locales ou pour les connexions de confiance seulement, + la valeur de cette directive peut être définie à 0, ce qui a + pour effet de désactiver la "phase de chauffage". + </p> + <p> + Dans l'exemple suivant, la phase de chauffage est effectivement + désactivée en définissant la directive à 0. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2TLSWarmUpSize 0</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2upgrade" id="h2upgrade">Directive</a> <a name="H2Upgrade" id="H2Upgrade">H2Upgrade</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Activation/Désactivation du protocole de mise à jour H2</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2Upgrade on|off</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2Upgrade on pour h2c, off pour h2</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet d'activer/désactiver l'utilisation de la + méthode de mise à jour pour passer de HTTP/1.1 à HTTP/2. Elle + doit être placée dans une section <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> afin d'activer la mise à + jour vers HTTP/2 pour le serveur virtuel considéré. + </p> + <p> + Cette méthode de changement de protocole est définie dans + HTTP/1.1 et utilise l'en-tête "Upgrade" (d'où son nom) pour + indiquer l'intention d'utiliser un autre protocole. Cet en-tête + peut être présent dans toute requête sur une connexion HTTP/1.1. + </p> + <p> + Elle activée par défaut pour les transmissions en clair + (h2c), et désactivée avec TLS (h2), comme préconisé par la RFC + 7540. + </p> + <p> + Sachez cependant que les mises à jour ne sont acceptées que pour + les requêtes qui ne possèdent pas de corps. Le requêtes de type + POST et PUT avec un contenu ne feront jamais l'objet d'une mise + à jour vers HTTP/2. Se référer à la documentation de la + directive <code class="directive"><a href="#h2direct">H2Direct</a></code> pour + envisager une alternative à Upgrade. + </p> + <p> + Cette directive n'a d'effet que si h2 ou h2c est activé via la + directive <code class="directive"><a href="../mod/core.html#protocols">Protocols</a></code>. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2Upgrade on</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="h2windowsize" id="h2windowsize">Directive</a> <a name="H2WindowSize" id="H2WindowSize">H2WindowSize</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale des paquets de données pour les transmissions client + vers serveur.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>H2WindowSize <em>bytes</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>H2WindowSize 65535</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_http2</td></tr> +</table> + <p> + Cette directive permet de définir la taille maximale des paquets + de données envoyés par le client au serveur, et + limite la quantité de données que le serveur doit mettre en + tampon. Le client arrêtera d'envoyer des données sur un flux + lorsque cette limite sera atteinte jusqu'à ce que le serveur + indique qu'il dispose d'un espace suffisant (car il aura traité + une partie des données). + </p><p> + Cette limite n'affecte que les corps de requêtes, non les + métadonnées comme les en-têtes. Par contre, elle n'affecte pas + les corps de réponses car la taille maximale de ces derniers est + gérée au niveau des clients. + </p> + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">H2WindowSize 128000</pre> +</div> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_http2.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_http2.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_http2.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_journald.html.fr b/docs/manual/mod/mod_journald.html.fr new file mode 100644 index 0000000000..2bc79f3df2 --- /dev/null +++ b/docs/manual/mod/mod_journald.html.fr @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_journald - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_journald</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_journald.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_journald.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Implémentation du fournisseur de journalisation d'erreurs +"journald"</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>journald_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_journald.c</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module implémente le fournisseur de journalisation d'erreurs + "journald". Il permet l'enregistrement des messages d'erreur et la + gestion des journaux personnalisés via systemd-journald(8).</p> +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#structured">Jounalisation structurée</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li> +</ul><h3 class="directives">Directives</h3> +<p>Ce module ne fournit aucune directive.</p> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_journald">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_journald">Signaler un bug</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="structured" id="structured">Jounalisation structurée</a></h2> + + <p>Systemd-journald permet d'effectuer une journalisation + structurée, et autorise donc le filtrage des messages en fonction de + diverses variables. Les variables actuellement supportées sont : + </p> + <dl> + <dt><code>LOG</code></dt> + <dd>Le nom du journal. Pour ErrorLog, la valeur est "error_log". + Pour CustomLog ou TransferLog, la valeur correspond au premier + argument de ces directives.</dd> + <dt><code>REQUEST_HOSTNAME</code></dt> + <dd>Le nom d'hôte tel qu'il est fourni dans l'URI, ou l'en-tête + Host: de la requête.</dd> + <dt><code>REQUEST_USER</code></dt> + <dd>Correspond au nom d'utilisateur si une authentification a eu + lieu.</dd> + <dt><code>REQUEST_USERAGENT_IP</code></dt> + <dd>L'adresse IP de l'agent qui a envoyé la requête.</dd> + <dt><code>REQUEST_URI</code></dt> + <dd>La partie chemin de l'URI, ou "/" si l'URI ne contient pas de + chemin.</dd> + <dt><code>SERVER_HOSTNAME</code></dt> + <dd>Le nom d'hôte du serveur pour lequel le message a été généré.</dd> + </dl> + + <p>Ces variables peuvent par exemple être utilisées pour ne montrer + que les messages concernant un URI particulier via la commande + <code>journalctl</code> : + </p> + + <pre class="prettyprint lang-">journalctl REQUEST_URI=/index.html -a</pre> + + + <p>Pour d'autres exemples, voir la documentation de + systemd-journalctl.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="examples" id="examples">Exemples</a></h2> + + + <p>Si le système le supporte, il est possible d'utiliser + systemd-journald(8) pour effectuer la journalisation en spécifiant + <code>journald</code> à la place d'un nom de fichier dans la + directive ErrorLog (voir <code class="module"><a href="../mod/core.html">core</a></code>). + </p> + + <pre class="prettyprint lang-config">ErrorLog journald</pre> + + + <p>Spécifier <code>journald</code> comme fournisseur de journal + d'erreurs avec la directive CustomLog (voir + <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>) active la journalisation via + systemd-journald(8) si le système le supporte. + </p> + + <pre class="prettyprint lang-config">CustomLog "journald" "%h %l %u %t \"%r\" %>s %b"</pre> + + + <div class="warning"><h3>Avertissement en matière de performances</h3><p> + Actuellement, systemd-journald n'est pas conçu pour une + jounalisation à haut débit et son utilisation pour la journalisation + des accès peut induire une baisse importante de performances. + </p></div> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_journald.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_journald.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_journald.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_policy.html.fr b/docs/manual/mod/mod_policy.html.fr new file mode 100644 index 0000000000..e98be317a8 --- /dev/null +++ b/docs/manual/mod/mod_policy.html.fr @@ -0,0 +1,742 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_policy - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_policy</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_policy.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_policy.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Mise en conformité avec le protocole HTTP.</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>policy_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_policy.c</td></tr></table> +<h3>Sommaire</h3> + + <p>Le protocole HTTP recommande aux clients d'être "indulgents pour + ce qu'ils doivent accepter", et aux serveurs d'être "stricts pour ce + qu'ils envoient". Dans certains cas, il peut s'avérer difficile de + déterminer si un serveur ou une application a été mal configuré, + sert un contenu qui ne peut pas être mis en cache ou se comporte de + manière non optimale, car le client HTTP est souvent en mesure de + compenser les défauts du serveur. Ces problèmes peuvent induire une + consommation de bande passante excessive, ou même une interruption + de service suite à une charge trop importante du serveur.</p> + + <p>Le module <code class="module"><a href="../mod/mod_policy.html">mod_policy</a></code> propose un jeu de filtres + qui permettent de tester la conformité du serveur au protocole HTTP. + Ces tests permettent à l'administrateur du serveur de journaliser + les violations, ou même de rejeter une réponse losque certaines + conditions spécifiées se réalisent.</p> + + <p>Il devient ainsi possible de définir des critères de conformité + minimale au protocole HTTP pour développer des applications + sans problème. En outre, il est possible de configurer un + mandataire inverse ou un cache pour qu'il se protège lui-même contre + les serveurs d'origine mal configurés ou les contenus indument + impossible à être mis en cache, ou un mécanisme qui détecte les + erreurs de configuration au sein du serveur lui-même.</p> + +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#actions">Actions</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#tests">Tests de la politique de filtrage</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple de configuration</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#policyconditional">PolicyConditional</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyconditionalurl">PolicyConditionalURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyenvironment">PolicyEnvironment</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyfilter">PolicyFilter</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policykeepalive">PolicyKeepalive</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policykeepaliveurl">PolicyKeepaliveURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policylength">PolicyLength</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policylengthurl">PolicyLengthURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policymaxage">PolicyMaxage</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policymaxageurl">PolicyMaxageURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policynocache">PolicyNocache</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policynocacheurl">PolicyNocacheURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policytype">PolicyType</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policytypeurl">PolicyTypeURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyvalidation">PolicyValidation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyvalidationurl">PolicyValidationURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyvary">PolicyVary</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyvaryurl">PolicyVaryURL</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyversion">PolicyVersion</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#policyversionurl">PolicyVersionURL</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_policy">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_policy">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><a href="../filter.html">Les filtres</a></li> +<li><a href="../compliance.html">Conformité au protocole HTTP</a></li> +<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="actions" id="actions">Actions</a></h2> + + + <p>Si une règle est violée, il possible d'effectuer les actions + suivantes :</p> + + <dl> + <dt><strong>ignore</strong></dt> + <dd>La vérification de la politique de conformité sera désactivée + pour l'espace d'URL spécifié, même si le filtre est présent.</dd> + + <dt><strong>log</strong></dt> + <dd>La vérification de la politique de conformité sera exécutée, et + si une violation est détectée, un avertissement sera enregistré dans + le journal error_log du serveur, et un en-tête <code>Warning</code> + ajouté à la réponse en tant qu'information à destination du client.</dd> + + <dt><strong>enforce</strong></dt> + <dd>La vérification de la politique de conformité sera exécutée, + + The policy check will be executed, and if a violation is detected + an error will be logged to the server error_log, a + <code>Warning</code> header added to the response, and a <code>502 + Bad Gateway</code> will be returned to the client. Optional links to + explanatory documentation can be added to each error message, + detailing the origin of each policy.</dd> + + </dl> + + <p>Il est aussi possible de désactiver toutes les règles pour un + espace d'URL donné, si le besoin s'en fait sentir, via la directive + <code class="directive"><a href="#policyfilter">PolicyFilter</a></code>.</p> + + <p>En outre, la directive <code class="directive"><a href="#policyenvironment">PolicyEnvironment</a></code> permet de + spécifier une variable d'environnement qui, si elle est définie, va + court-circuiter les règles ou diminuer leur portée.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="tests" id="tests">Tests de la politique de filtrage</a></h2> + + + <p>Les filtres suivants sont disponibles :</p> + + <dl> + <dt><strong><a href="../compliance.html#policytype">POLICY_TYPE</a> + </strong>: Impose la validité des types de contenus</dt> + <dd>La requête peut être rejetée suite à la présence de types de contenus vides + ou syntaxiquement invalides. Les types peuvent aussi être restreints + à une liste pouvant contenir des caractères génériques ? et *.</dd> + + <dt><strong><a href="../compliance.html#policylength">POLICY_LENGTH</a> + </strong>: Impose la présence de l'en-tête Content-Length</dt> + <dd>La longueur des réponses peut être spécifiée de trois manières + différentes : en spécifiant à l'avance une longueur explicite, en + utilisant un codage de morcellement (chunking) pour définir la + longueur, ou en ne spécifiant aucune longueur et en terminant la + requête lorsque son traitement est achevé. L'absence de + spécification d'une longueur de contenu peut affecter la possibilité + de mise en cache de la réponse, et empêcher l'utilisation de la + persistance avec les requêtes de type HTTP/1.0. Ce filtre impose la + présence d'une longueur de contenu explicite dans la réponse.</dd> + + <dt><strong><a href="../compliance.html#policykeepalive">POLICY_KEEPALIVE + </a></strong>: Impose l'option de persistance</dt> + <dd>Moins restrictif que le filtre POLICY_LENGTH, ce filtre impose + la possibilité de persistance de la réponse. Si la réponse n'a pas + de longueur définie à 0 par le protocole, si elle n'est pas une + erreur, et si elle ne contient pas d'en-tête Content-Length ou si + elle est de type HTTP/1.1 et ne contient pas l'en-tête + Content-Encoding: chunked, alors elle sera rejetée.</dd> + + <dt><strong><a href="../compliance.html#policyvary">POLICY_VARY</a> + </strong>: Interdit la présence de certains en-têtes au sein des + en-têtes Vary</dt> + <dd>Si l'en-tête Vary contient un des en-têtes spécifiés, ce filtre + va rejeter la requête. Un cas typique est la présence de l'en-tête + User-Agent dans l'en-tête Vary, ce qui peut être à l'origine d'une + condition de déni de service au niveau du cache.</dd> + + <dt><strong><a href="../compliance.html#policyvalidation"> + POLICY_VALIDATION</a></strong>: Impose la présence d'un en-tête Etag + et/ou Last-Modified</dt> + <dd>La possibilité pour un cache de déterminer si une entité qu'il + contient peut être rafraîchie dépend de la présence d'un en-tête + Etag et/ou Last-Modified pour vérifier si elle est valide. La requête sera + rejetée en cas d'absence de ces deux en-têtes, ou d'une syntaxe + invalide d'un de ces deux en-têtes.</dd> + + <dt><strong><a href="../compliance.html#policyconditional"> + POLICY_CONDITIONAL</a></strong>: Impose un traitement conforme des + en-têtes conditionnels</dt> + <dd>Lorsqu'une requête contient des en-têtes conditonnels, un + serveur doit répondre dans certaines conditions avec un code + <code>304 Not Modified</code> ou <code>412 Precondition + Failed</code>. Il arrive q'un serveur ignore les en-têtes + conditionnels, et cela diminue l'efficacité du mécanisme de mise en + cache HTTP. Ce filtre rejète les requêtes lorsqu'un en-tête + conditionnel était présent, et une réponse 2xx a été renvoyée au + lieu de la réponse 304 ou 412 attendue.</dd> + + <dt><strong><a href="../compliance.html#policynocache">POLICY_NOCACHE</a> + </strong>: Impose la possibilité de mise en cache des réponses</dt> + <dd>Lorsqu'une requête se déclare elle-même impossible à mettre en + cache, elle est rejetée. C'est le cas si elle contient l'un des + en-têtes suivants : + <ul><li><code>Cache-Control: no-cache</code></li> + <li><code>Pragma: no-cache</code></li> + <li><code>Cache-Control: no-store</code></li> + <li><code>Cache-Control: private</code></li> + </ul></dd> + + <dt><strong><a href="../compliance.html#policymaxage">POLICY_MAXAGE</a> + </strong>: Impose une durée de vie minimale</dt> + <dd>Lorsqu'une réponse possède une durée de vie inférieure à la + valeur spécifiée, ou si cette durée de vie est heuristique, la + requête est rejetée. La chronologie de la vérification d'une réponse + est la suivante : + <ul><li>Si <code>s-maxage</code> est présent mais d'une valeur trop + faible; ou</li> + <li>Si <code>max-age</code> est présent mais d'une valeur trop + faible; ou</li> + <li>Si <code>Expires</code> est présent et invalide; ou</li> + <li><code>Date</code> est présent et invalide; ou</li> + <li><code>Expires</code> moins Date est trop faible ; ou</li> + <li>Aucun en-tête <code>s-maxage</code>, <code>maxage</code>, ou + <code>Expires</code>/<code>Date</code> n'est présent</li> + </ul></dd> + + <dt><strong><a href="../compliance.html#policyversion">POLICY_VERSION</a> + </strong>: Impose une version HTTP minimale dans la requête</dt> + <dd>Lorsqu'une requête possède un numéro de version HTTP inférieur + au numéro de version minimum requis, la requête est rejetée. Les + numéros de version suivants sont reconnus : + <ul><li><code>HTTP/1.1</code></li> + <li><code>HTTP/1.0</code></li> + <li><code>HTTP/0.9</code></li> + </ul></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="example" id="example">Exemple de configuration</a></h2> + + + <p>Voici un exemple de configuration qui protège un serveur qui + délivre du contenu statique :</p> + + <pre class="prettyprint lang-config"><Location "/"> + SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \ + POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION + + # le contenu peut être quelconque, mais l'en-tête Content-Type doit être + # présent et valide + PolicyType enforce */* + + # rejet si aucune longueur de contenu déclarée + PolicyLength enforce + + # pris en charge par le filtre policy length + PolicyKeepalive ignore + + # rejet si l'en-tête User-Agent aparaît dans les en-têtes Vary + PolicyVary enforce User-Agent + + # la validation est imposée + PolicyValidation enforce + + # les réponses conditionnelles non conformes sont rejetées + PolicyConditional enforce + + # les réponses impossibles à mettre en cache sont rejetées + PolicyNocache enforce + + # la durée de vie doit être au moins d'un jour + PolicyMaxage enforce 86400 + + # le numéro de version de la requête peut être quelconque + PolicyVersion ignore HTTP/1.1 +</Location> + +# désactivation du filtrage pour le répertoire /server-status +<Location "/server-status"> + PolicyFilter off +</Location></pre> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyconditional" id="policyconditional">Directive</a> <a name="PolicyConditional" id="PolicyConditional">PolicyConditional</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le filtrage des requêtes conditionnelles.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyConditional <var>ignore|log|enforce</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse qui aurait du être + conditionnelle mais ne l'est pas sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># les réponses conditionnelles non conformes doivent être rejetées +PolicyConditional enforce</pre> +</div> + + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyconditionalurl" id="policyconditionalurl">Directive</a> <a name="PolicyConditionalURL" id="PolicyConditionalURL">PolicyConditionalURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage +des requêtes conditionnelles.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyConditionalURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL de la documentation + décrivant la politique de filtrage des requêtes conditionnelles ; + elle apparaîtra dans les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyenvironment" id="policyenvironment">Directive</a> <a name="PolicyEnvironment" id="PolicyEnvironment">PolicyEnvironment</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Modification des règles de filtrage en fonction d'une +variable d'environnement.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyEnvironment <var>variable</var> <var>log-value</var> <var>ignore-value</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Limite l'action des règles à la journalisation ou les désactive + totalement en fonction de la présence d'une variable d'environnement. Si + la variable spécifiée est présente et égale à la valeur de + l'argument log-value, les erreurs rencontrées par les filtres ne + seront que journalisées. Si la variable spécifiée est présente et + égale à la valeur de l'argument ignore-value, toutes les règles + seront ignorées.</p> + + <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"># limitation de l'action des règles si la variable POLICY_CONTROL +# est présente +PolicyEnvironment POLICY_CONTROL log ignore</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyfilter" id="policyfilter">Directive</a> <a name="PolicyFilter" id="PolicyFilter">PolicyFilter</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive le filtrage pour un espace d'URL donné.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyFilter <var>on|off</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>on</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Commutateur principal qui permet d'activer ou de désactiver le + filtrage pour un espace d'URL donné.</p> + + <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"># activé par défaut +<Location "/"> + PolicyFilter on +</Location> + +# désactivation du filtrage pour le répertoire /server-status +<Location "/server-status"> + PolicyFilter off +</Location></pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policykeepalive" id="policykeepalive">Directive</a> <a name="PolicyKeepalive" id="PolicyKeepalive">PolicyKeepalive</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la politique de persistance.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyKeepalive <var>ignore|log|enforce</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse qui ne contient ni en-tête + <code>Content-Length</code>, ni en-tête + <code>Transfer-Encoding</code> de valeur <code>chunked</code> sera + rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet suite a absence d'en-tête Content-Length ou Transfer-Encoding +PolicyKeepalive enforce</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policykeepaliveurl" id="policykeepaliveurl">Directive</a> <a name="PolicyKeepaliveURL" id="PolicyKeepaliveURL">PolicyKeepaliveURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de persistance.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyKeepaliveURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique de persistance ; elle apparaîtra dans + les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policylength" id="policylength">Directive</a> <a name="PolicyLength" id="PolicyLength">PolicyLength</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le filtrage de la spécification de la longueur du +contenu.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyLength <var>ignore|log|enforce</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse qui ne contient pas + d'en-tête <code>Content-Length</code> sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet suite à l'absence de l'en-tête Content-Length +PolicyLength enforce</pre> +</div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policylengthurl" id="policylengthurl">Directive</a> <a name="PolicyLengthURL" id="PolicyLengthURL">PolicyLengthURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage de +la spécification de la longueur du contenu.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyLengthURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + documentation décrivant la politique de filtrage de la spécification + de la longueur du contenu ; elle apparaîtra dans les messages + d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policymaxage" id="policymaxage">Directive</a> <a name="PolicyMaxage" id="PolicyMaxage">PolicyMaxage</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le filtrage de la durée de vie des réponses.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyMaxage <var>ignore|log|enforce</var> <var>age</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse dont la durée de vie n'est + pas explicitement spécifiée via un en-tête <code>max-age</code>, + <code>s-maxage</code> ou <code>Expires</code>, ou dont la durée de + vie est inférieure à la valeur donnée sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet des réponses dont la durée de vie est inférieure à une +# journée +PolicyMaxage enforce 86400</pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policymaxageurl" id="policymaxageurl">Directive</a> <a name="PolicyMaxageURL" id="PolicyMaxageURL">PolicyMaxageURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage +des réponses en fonction de leur durée de vie.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyMaxageURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique de filtrage des réponses en fonction de + leur durée de vie ; elle apparaîtra dans les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policynocache" id="policynocache">Directive</a> <a name="PolicyNocache" id="PolicyNocache">PolicyNocache</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le filtrage des réponses qui se définissent +elles-mêmes comme impossibles à mettre en cache.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyNocache <var>ignore|log|enforce</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse qui se définit elle-même + comme impossible à mettre en cache via l'en-tête + <code>Cache-Control</code> ou <code>Pragma</code> sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># une réponse contenant l'en-tête Cache-Control: no-cache sera +# rejetée +PolicyNocache enforce</pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policynocacheurl" id="policynocacheurl">Directive</a> <a name="PolicyNocacheURL" id="PolicyNocacheURL">PolicyNocacheURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage +des réponses qui se définissent elles-mêmes comme impossibles à mettre +en cache.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyNocacheURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique de filtrage des réponses qui se + définissent elles-mêmes comme impossibles à mettre en cache ; elle + apparaîtra dans les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policytype" id="policytype">Directive</a> <a name="PolicyType" id="PolicyType">PolicyType</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la politique des types de contenus.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyType <var>ignore|log|enforce</var> <var>type</var> [ <var>type</var> [ ... ]]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse qui ne contient pas + d'en-tête <code>Content-Type</code>, ou dont l'en-tête + <code>Content-Type</code> est mal formé, ou dont l'en-tête + <code>Content-Type</code> contient une valeur qui ne correspond pas + au(x) modèle(s) spécifié(s) sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># impose le type de contenu json ou XML +PolicyType enforce application/json text/xml</pre> +</div> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet suite à type de contenu mal formé +PolicyType enforce */*</pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policytypeurl" id="policytypeurl">Directive</a> <a name="PolicyTypeURL" id="PolicyTypeURL">PolicyTypeURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique des types de +contenu.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyTypeURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique des types de contenu ; elle apparaîtra + dans les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyvalidation" id="policyvalidation">Directive</a> <a name="PolicyValidation" id="PolicyValidation">PolicyValidation</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le filtrage de la validation du contenu.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyValidation <var>ignore|log|enforce</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse qui ne contient ni en-tête + <code>ETag</code> valide, ni en-tête <code>Last-Modified</code>, ou + dont la syntaxe d'un de ces deux en-têtes est incorrecte sera + rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet suite à l'absence des en-têtes Etag et/ou Last-Modified +PolicyValidation enforce</pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyvalidationurl" id="policyvalidationurl">Directive</a> <a name="PolicyValidationURL" id="PolicyValidationURL">PolicyValidationURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage de +la validation du contenu.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyValidationURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique de filtrage de la validation du contenu + ; elle apparaîtra dans les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyvary" id="policyvary">Directive</a> <a name="PolicyVary" id="PolicyVary">PolicyVary</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la politique de filtrage de l'en-tête Vary.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyVary <var>ignore|log|enforce</var> <var>header</var> [ <var>header</var> [ ... ]]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une réponse dont l'en-tête + <code>Vary</code> contient un des en-têtes spécifiés sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet suite à la présence de l'en-tête "User-Agent" dans l'en-tête +# Vary +PolicyVary enforce User-Agent</pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyvaryurl" id="policyvaryurl">Directive</a> <a name="PolicyVaryURL" id="PolicyVaryURL">PolicyVaryURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage de +l'en-tête Vary.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyVaryURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique de filtrage de l'en-tête Vary ; elle + apparaîtra dans les messages d'erreur.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyversion" id="policyversion">Directive</a> <a name="PolicyVersion" id="PolicyVersion">PolicyVersion</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le filtrage des requêtes en fonction du numéro de +version HTTP.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyVersion <var>ignore|log|enforce</var> <var>HTTP/0.9|HTTP/1.0|HTTP/1.1</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ignore</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Avec l'argument enforce, une requête dont le numéro de version + HTTP est inférieur à la valeur spécifiée sera rejetée.</p> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"># rejet des requêtes dont le numéro de version HTTP est inférieur à +# HTTP/1.1 +PolicyVersion enforce HTTP/1.1</pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="policyversionurl" id="policyversionurl">Directive</a> <a name="PolicyVersionURL" id="PolicyVersionURL">PolicyVersionURL</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL contenant la description de la politique de filtrage +des requêtes en fonction du numéro de version HTTP.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PolicyVersionURL <var>url</var></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_policy</td></tr> +<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5.0 du serveur HTTP +Apache.</td></tr> +</table> + <p>Cette directive permet de spécifier l'URL contenant la + description de la politique de filtrage des requêtes en fonction du + numéro de version HTTP ; elle apparaîtra dans les messages d'erreur.</p> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_policy.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_policy.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_policy.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_hcheck.html.fr b/docs/manual/mod/mod_proxy_hcheck.html.fr new file mode 100644 index 0000000000..959582d30e --- /dev/null +++ b/docs/manual/mod/mod_proxy_hcheck.html.fr @@ -0,0 +1,299 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_proxy_hcheck - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_proxy_hcheck</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_hcheck.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_proxy_hcheck.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Check up dynamique des membres du groupe de répartition de charge +(équipiers) pour <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>proxy_hcheck_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_proxy_hcheck.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.21 du serveur HTTP Apache</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module permet d'effectuer un check up dynamique des membres du groupe + de répartition de charge (équipiers). Ce check up peut être activé pour un + ou plusieurs équipiers et il est indépendant des requêtes de mandataire + inverse proprement dites.</p> + + <p>Pour fonctionner, ce module <em>nécessite</em> le chargement préalable de + <code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code>.</p> + +<div class="note"><h3>Paramètres</h3> + <p>Le mécanisme de check up est activé via l'utilisation de paramètres + supplémentaires de BalancerMember configurés de manière standard via la + directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> :</p> + + <p>Ce module définit un nouveau drapeau d'état pour BalancerMember : + "<code>C</code>". Lorsque l'équipier est mis hors service suite à un + disfonctionnement déterminé par le module de check up, ce drapeau est activé + et peut être lu (et modifié) via le <code>balancer-manager</code>.</p> + + <table> + <tr><th>Paramètre</th> + <th>Défaut</th> + <th>Description</th></tr> + <tr><td>hcmethod</td> + <td>None</td> + <td>Aucun check up dynamique n'est effectué. Les choix possibles sont : + <table> + <tr><th>Method</th><th>Description</th><th>Note</th></tr> + <tr><td>None</td><td>Aucun check up dynamique effectué</td><td /></tr> + <tr><td>TCP</td><td>Vérifie qu'un socket vers le serveur + d'arrière-plan peut être créé ; par exemple "es-tu en + état de fonctionner"</td><td /></tr> + <tr><td>OPTIONS</td><td>Envoie une requête <code>HTTP + OPTIONS</code> au serveur d'arrière-plan</td><td>*</td></tr> + <tr><td>HEAD</td><td>Envoie une requête <code>HTTP + HEAD</code> au serveur d'arrière-plan</td><td>*</td></tr> + <tr><td>GET</td><td>Envoie une requête <code>HTTP + GET</code> au serveur d'arrière-plan</td><td>*</td></tr> + + <tr><td colspan="3" /></tr> + <tr><td colspan="3">*: si hcexpr n'est pas + utilisé, un retour HTTP 2xx ou 3xx sera + interprété comme un passage avec succès du check + up.</td></tr> + </table> + </td></tr> + <tr><td>hcpasses</td> + <td>1</td> + <td>Nombre de check up à passer avec succès avant de remettre en service + l'équipier</td></tr> + <tr><td>hcfails</td> + <td>1</td> + <td>Nombre de check up échoués avant mettre hors service l'équipier</td></tr> + <tr><td>hcinterval</td> + <td>30</td> + <td>Intervalle entre deux check up en secondes (par défaut effectué + toutes les 30 secondes). Utilise la syntaxe <a href="directive-dict.html#Syntax">time-interval</a>.</td></tr> + <tr><td>hcuri</td> + <td> </td> + <td>URI supplémentaire à ajouter à l'URL de l'équipier pour le check up.</td></tr> + <tr><td>hctemplate</td> + <td> </td> + <td>Nom du modèle créé via <code class="directive">ProxyHCTemplate</code> à + utiliser pour définir les paramètres de check up de cet équipier</td></tr> + <tr><td>hcexpr</td> + <td> </td> + <td>Nom de l'expression créée via <code class="directive">ProxyHCExpr</code> + utilisée pour analyser les en-têtes de la réponse du check up.<br /> + <em>Si ce paramètre est absent, un état HTTP de 2xx à 3xx est + interprété comme un check up réussi.</em></td></tr> + </table> +</div> + +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples d'utilisation</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#proxyhcexpr">ProxyHCExpr</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#proxyhctemplate">ProxyHCTemplate</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#proxyhctpsize">ProxyHCTPsize</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy_hcheck">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy_hcheck">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> +<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="examples" id="examples">Exemples d'utilisation</a></h2> + + + <p>L'exemple suivant montre comment configurer le check up pour différents + serveurs d'arrière-plan :</p> + + + <pre class="prettyprint lang-config">ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/} +ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/} +ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/} + +<Proxy balancer://foo> + BalancerMember http://www.example.com/ hcmethod=GET hcexpr=in_maint hcuri=/status.php + BalancerMember http://www2.example.com/ hcmethod=HEAD hcexpr=ok234 hcinterval=10 + BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3 + BalancerMember http://www4.example.com/ +</Proxy> + +ProxyPass "/" "balancer://foo" +ProxyPassReverse "/" "balancer://foo"</pre> + + +<p>Dans ce scénario, on teste l'équipier <code>http://www.example.com/</code> en lui +envoyant une requête <code>GET /status.php</code> et en regardant si la réponse +contient la chaîne <em>Under maintenance</em>. Si c'est le cas, le check up est +considéré comme ayant échoué et l'équipier est mis hors service. Ce check up +dynamique est effectué toutes les 30 secondes, ce qui correspond à la valeur par +défaut.</p> + +<p>On teste l'équipier <code>http://www2.example.com/</code> en lui envoyant +simplement une requête <code>HEAD</code> toutes les 10 secondes et en vérifiant +que la réponse HTTP est bien un code d'état de 2xx, 3xx ou 4xx. On teste +l'équipier <code>http://www3.example.com/</code> en vérifiant simplement toutes +les 5 secondes que le socket vers ce serveur est bien opérationnel. Si ce +serveur est marqué "hors service", il lui faudra 2 check up réussis pour être +réactivé et participer à nouveau à la répartition de charge. Si à ce moment-là +il échoue à 3 check up successifs, il sera à nouveau mis hors service. Enfin, +l'équipier <code>http://www4.example.com/</code> ne fait l'objet d'aucun check +up.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="proxyhcexpr" id="proxyhcexpr">Directive</a> <a name="ProxyHCExpr" id="ProxyHCExpr">ProxyHCExpr</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Crée et nomme une expression conditionnelle à utiliser pour +déterminer la santé d'un serveur d'arrière-plan en fonction de sa valeur.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHCExpr name {ap_expr expression}</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_hcheck</td></tr> +</table> + <p>La directive <code class="directive">ProxyHCExpr</code> permet de créer et nommer + une expression conditionnelle dont la valeur calculée en fonction des + en-têtes de la réponse du serveur d'arrière-plan permettra d'évaluer la + santé de ce dernier. Cette expression nommée peut alors être assignée aux + serveurs d'arrière-plan via le paramètre <code>hcexpr</code>.</p> + + <div class="example"><h3>ProxyHCExpr: interprète les réponses 2xx/3xx/4xx comme des + check up réussis</h3><pre class="prettyprint lang-config">ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/} +ProxyPass "/apps" "balancer://foo" + +<Proxy balancer://foo> + BalancerMember http://www2.example.com/ hcmethod=HEAD hcexpr=ok234 hcinterval=10 +</Proxy></pre> +</div> + + <div class="note"> + L'<a href="../expr.html">expression</a> peut utiliser des accolades ("{}") + comme délimiteurs en plus des guillemets normaux. + </div> + + <p>Si l'on utilise une méthode de check up (par exemple <code>GET</code>) + qui génère un corps de réponse, ce corps peut lui-même être ausculté via + <code>ap_expr</code> en utilisant la fonction associée aux expressions + <code>hc()</code> spécifique à ce module.</p> + + <p>Dans l'exemple suivant, on envoie une requête <code>GET</code> au serveur + d'arrière-plan, et si le corps de la réponse contient la chaîne <em>Under + maintenance</em>, ce serveur d'arrière-plan est mis hors service.</p> + + <div class="example"><h3>ProxyHCExpr: auscultation du corps de la réponse</h3><pre class="prettyprint lang-config">ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/} +ProxyPass "/apps" "balancer://foo" + +<Proxy balancer://foo> + BalancerMember http://www.example.com/ hcexpr=in_maint hcmethod=get hcuri=/status.php +</Proxy></pre> +</div> + + <p><em>NOTE:</em> Comme le corps de la réponse peut être assez grand, il est + recommandé de privilégier un check up basé sur les codes d'état.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="proxyhctemplate" id="proxyhctemplate">Directive</a> <a name="ProxyHCTemplate" id="ProxyHCTemplate">ProxyHCTemplate</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Crée et nomme un modèle permettant de définir différents +paramètres de check up</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHCTemplate name parameter=setting <...></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_hcheck</td></tr> +</table> + <p>La directive <code class="directive">ProxyHCTemplate</code> permet de créer et + nommer un modèle de paramètres de check up qui peut alors être assigné aux + équipiers via le paramètre <code>hctemplate</code></p> + + <div class="example"><h3>ProxyHCTemplate</h3><pre class="prettyprint lang-config">ProxyHCTemplate tcp5 hcmethod=tcp hcinterval=5 +ProxyPass "/apps" "balancer://foo" + +<Proxy balancer://foo> + BalancerMember http://www2.example.com/ hctemplate=tcp5 +</Proxy></pre> +</div> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="proxyhctpsize" id="proxyhctpsize">Directive</a> <a name="ProxyHCTPsize" id="ProxyHCTPsize">ProxyHCTPsize</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la taille totale, pour l'ensemble du +serveur, du jeu de threads utilisé pour le check up des +équipiers.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyHCTPsize <size></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_hcheck</td></tr> +</table> + <p>Si Apache httpd et APR ont été compilés avec le support des threads, le + module de check up peut confier ce travail à un jeu de threads associé au + processus Watchdog, ce qui permet l'exécution des check up en parallèle. La + directive <code class="directive">ProxyHCTPsize</code> permet de déterminer la + taille de ce jeu de threads. Une valeur de <code>0</code> signifie qu'aucun + jeu de threads ne sera utilisé, et le check up des différents équipiers sera + alors effectué séquentiellement. La taille par défaut du jeu de threads est + de 16.</p> + + <div class="example"><h3>ProxyHCTPsize</h3><pre class="prettyprint lang-config">ProxyHCTPsize 32</pre> +</div> + + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_hcheck.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_proxy_hcheck.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy_hcheck.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_http2.html.fr b/docs/manual/mod/mod_proxy_http2.html.fr new file mode 100644 index 0000000000..b75d5d1d1e --- /dev/null +++ b/docs/manual/mod/mod_proxy_http2.html.fr @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_proxy_http2 - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_proxy_http2</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_http2.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_proxy_http2.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support de HTTP/2 pour <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>proxy_http2_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_proxy_http2.c</td></tr></table> +<h3>Sommaire</h3> + + <p><code class="module"><a href="../mod/mod_proxy_http2.html">mod_proxy_http2</a></code> ne + supporte que HTTP/2 et ne permet pas de rétrogradation vers HTTP/1.1. Cela + signifie que le serveur d'arrière-plan doit supporter HTTP/2 car HTTP/1.1 ne + pourra alors pas être utilisé.</p> + + <p>Ce module <em>nécessite</em> la présence de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> ; + pour pouvoir traiter les requêtes mandatées HTTP/2, + <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> et <code class="module"><a href="../mod/mod_proxy_http2.html">mod_proxy_http2</a></code> doivent donc + être chargés par le serveur.</p> + + <p><code class="module"><a href="../mod/mod_proxy_http2.html">mod_proxy_http2</a></code> travaille avec des requêtes entrantes en + HTTP/1.1 ou HTTP/2. Dans les deux cas, les requêtes vers le même serveur + d'arrière-plan sont envoyées + via une seule connexion TCP, dans la mesure du possible (autrement dit + lorsque la connexion peut être réutilisée).</p> + + <p>Avertissement : il ne sera effectué aucune tentative de fusion de + plusieurs requêtes entrantes HTTP/1 (devant être mandatées vers le même + serveur d'arrière-plan) vers des flux HTTP/2 appartenant à la même requête + HTTP/2. Chaque requête HTTP/1 entrante sera mandatée vers le serveur + d'arrière-plan en utilisant une requête HTTP/2 séparée (tout en réutilisant + si possible la même connexion TCP).</p> + + <p>Ce module s'appuie sur <a href="http://nghttp2.org/">libnghttp2</a> pour + fournir le moteur central http/2.</p> + + <div class="warning"><h3>Avertissement</h3> <p>Ce module en est au + stade expérimental. Ses comportement, directives et valeurs par défauts sont + donc susceptibles de modifications d'une version à l'autre plus fréquentes + que pour les autres modules. A ce titre, il est fortement conseillé aux + utilisateurs de consulter le fichier "CHANGES" pour prendre connaissance de + ces modifications.</p> </div> + + <div class="warning"><h3>Avertissement</h3> + <p>N'activez pas le mandatement avant d'avoir <a href="mod_proxy.html#access">sécurisé votre serveur</a>. Les serveurs + mandataires ouverts sont dangereux non seulement pour votre propre réseau, + mais aussi pour l'Internet au sens large.</p> + </div> +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples de base</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#notes">Informations sur les requêtes</a></li> +</ul><h3 class="directives">Directives</h3> +<p>Ce module ne fournit aucune directive.</p> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy_http2">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy_http2">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><code class="module"><a href="../mod/mod_http2.html">mod_http2</a></code></li> +<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> +<li><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></li> +<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="examples" id="examples">Exemples de base</a></h2> + + <p>Les exemples ci-dessous montrent comment configurer HTTP/2 pour des + connexions d'arrière-plan vers un mandataire inverse.</p> + + <div class="example"><h3>HTTP/2 (TLS)</h3><pre class="prettyprint lang-config">ProxyPass "/app" "h2://app.example.com" +ProxyPassReverse "/app" "https://app.example.com"</pre> +</div> + + <div class="example"><h3>HTTP/2 (non sécurisé)</h3><pre class="prettyprint lang-config">ProxyPass "/app" "h2c://app.example.com" +ProxyPassReverse "/app" "http://app.example.com"</pre> +</div> + + <div class="note"> + <p>Pour mandater en inverse les protocoles <code>h2</code> ou + <code>h2c</code>, on utilise la directive + <code class="directive">ProxyPassReverse</code> avec les schèmes habituels + <code>https</code> et respectivement + <code>http</code> qui sont connus et utilisés par l'agent utilisateur.</p> + </div> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="notes" id="notes">Informations sur les requêtes</a></h2> + <p><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> fournit les informations sur les requêtes + suivantes pour enregistrement dans les journaux en utilisant le format + <code>%{VARNAME}n</code> avec les directives <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> ou <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code> : + </p> + <dl> + <dt>proxy-source-port</dt> + <dd>Le numéro de port local utilisé pour la connexion vers le serveur + d'arrière-plan.</dd> + <dt>proxy-status</dt> + <dd>Le statut HTTP/2 en provenance du serveur d'arrière-plan.</dd> + </dl> +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_http2.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_proxy_http2.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy_http2.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_proxy_wstunnel.html.fr b/docs/manual/mod/mod_proxy_wstunnel.html.fr new file mode 100644 index 0000000000..4f7a4f9214 --- /dev/null +++ b/docs/manual/mod/mod_proxy_wstunnel.html.fr @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_proxy_wstunnel - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_proxy_wstunnel</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_wstunnel.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_proxy_wstunnel.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Module pour <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> supportant les +websockets</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>proxy_wstunnel_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_proxy_wstunnel.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur HTTP +Apache</td></tr></table> +<h3>Sommaire</h3> + + <p>Pour utiliser ce module, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> doit être + chargé. Il fournit le support du tunnelling pour les connexions + websocket vers un serveur websockets d'arrière-plan. La connexion + est automatiquement promue en connexion websocket :</p> + + <div class="example"><h3>Réponse HTTP</h3><pre class="prettyprint lang-config">Upgrade: WebSocket +Connection: Upgrade</pre> +</div> + +<p>Le mandatement des requêtes vers un serveur websockets comme +<code>echo.websocket.org</code> peut être configuré via la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code> :</p> + <pre class="prettyprint lang-config">ProxyPass "/ws2/" "ws://echo.websocket.org/" +ProxyPass "/wss2/" "wss://echo.websocket.org/"</pre> + + +<p>La répartition de charge entre plusieurs serveurs d'arrière-plan peut être +configurée via le module <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code>.</p> + +<p>En fait, ce module permet d'accepter d'autres protocoles ; vous pouvez à cet +effet utiliser le paramètre <code>upgrade</code> de la directive <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</a></code>. La valeur NONE +signifie que vous court-circuitez la consultation de l'en-tête, mais que vous +autorisez quand-même WebSocket. La valeur ANY signifie que <code>Upgrade</code> +va lire les en-têtes de la requête et les utilisera dans l'en-tête +<code>Upgrade</code> de la réponse.</p> +</div> +<div id="quickview"><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#proxywebsocketasync">ProxyWebsocketAsync</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#proxywebsocketasyncdelay">ProxyWebsocketAsyncDelay</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#proxywebsocketidletimeout">ProxyWebsocketIdleTimeout</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_proxy_wstunnel">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_proxy_wstunnel">Signaler un bug</a></li></ul><h3>Voir aussi</h3> +<ul class="seealso"> +<li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li> +<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="directive-section"><h2><a name="proxywebsocketasync" id="proxywebsocketasync">Directive</a> <a name="ProxyWebsocketAsync" id="ProxyWebsocketAsync">ProxyWebsocketAsync</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Création d'un tunnel asynchrone</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyWebsocketAsync ON|OFF</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_wstunnel</td></tr> +</table> + <p>Cette directive permet d'imposer la création d'un tunnel + asynchrone. Si le module MPM utilisé ne supporte pas les + fonctionnalités nécessaires, le tunnel est créé en mode synchrone.</p> + <div class="note"><h3>Note</h3><p>Le support du mode asynchrone est + au stade expérimental et est susceptible d'évoluer.</p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="proxywebsocketasyncdelay" id="proxywebsocketasyncdelay">Directive</a> <a name="ProxyWebsocketAsyncDelay" id="ProxyWebsocketAsyncDelay">ProxyWebsocketAsyncDelay</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Temps d'attente synchrone maximum pour des données</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyWebsocketAsyncDelay <var>num</var>[ms]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyWebsocketAsyncDelay 0</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_wstunnel</td></tr> +</table> + <p>Si la directive <code class="directive">ProxyWebsocketAsync</code> est + activée, cette directive permet de définir le temps maximum pendant lequel + le serveur attendra des données en mode synchrone. Par défaut, ce temps est exprimé + en secondes, mais vous pouvez le spécifier en millisecondes en utilisant le + suffixe <em>ms</em>.</p> + + <div class="note"><h3>Note</h3><p>Le support du mode asynchrone est + au stade expérimental et est susceptible d'évoluer.</p></div> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="proxywebsocketidletimeout" id="proxywebsocketidletimeout">Directive</a> <a name="ProxyWebsocketIdleTimeout" id="ProxyWebsocketIdleTimeout">ProxyWebsocketIdleTimeout</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Temps d'attente maximum pour des données sur le tunnel websockets</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyWebsocketIdleTimeout <var>num</var>[ms]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyWebsocketIdleTimeout 0</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_wstunnel</td></tr> +</table> + <p>Cette directive permet de définir un temps maximum pendant lequel + le tunnel pourra rester ouvert et inactif. Par défaut, ce temps est exprimé + en secondes, mais vous pouvez le spécifier en millisecondes en utilisant le + suffixe <em>ms</em>.</p> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_wstunnel.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_proxy_wstunnel.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_proxy_wstunnel.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_ssl_ct.html.fr b/docs/manual/mod/mod_ssl_ct.html.fr new file mode 100644 index 0000000000..c6c6307087 --- /dev/null +++ b/docs/manual/mod/mod_ssl_ct.html.fr @@ -0,0 +1,672 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_ssl_ct - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_ssl_ct</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_ssl_ct.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_ssl_ct.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Implémentation de la transparence des certificats +(Certificat Transparency - RFC 6962) +</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>ssl_ct_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_ssl_ct.c</td></tr></table> +<h3>Sommaire</h3> + + +<p>Ce module implémente la transparence des certificats en conjonction +avec <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> et les outils en ligne de commande du +projet open source <a href="https://code.google.com/p/certificate-transparency/">certificate-transparency</a>. +Le but de la transparence des certificats consiste à révéler +l'utilisation de certificats de confiance délivrés par +erreur ou dans un but malintentionné. Vous trouverez plus de détails à +propos de la transparence des certificats ici : <a href="http://www.certificate-transparency.org/">http://www.certificate-transparency.org/</a>. +Voici la signification des termes utilisés dans cette documentation :</p> + +<dl> + <dt>Certificate log</dt> + <dd>Un Certificate log, auquel on fera référence avec le simple + terme <q>log</q> tout au long de ce document, est un service réseau + auquel les certificats de serveurs sont soumis. Un agent + utilisateur peut vérifier que le certificat d'un serveur auquel il + accède a bien été soumis à un log auquel il fait confiance, et que le log + lui-même n'a pas rencontré de problème avec ce certificat.</dd> + + <dt>Horodatage signé du certificat (Signed Certificate Timestamp - SCT)</dt> + <dd>Il s'agit d'une information en provenance d'un log indiquant qu'il + a validé un certificat. Cet horodatage est signé avec la clé publique + du log. Un ou plusieurs SCTs sont passés au client durant la phase de + négociation de la connexion, soit dans le ServerHello (extension TLS), + soit dans l'extension du certificat, soit dans une réponse OCSP + jointe.</dd> +</dl> + +<p>Cette implémentation pour Apache httpd fournit les fonctionnalités +suivantes pout les serveurs et mandataires TLS :</p> + +<ul> + <li>Les SCTs peuvent être extraits automatiquement des logs, et en + conjonction avec tout SCT défini statiquement, envoyés aux clients + qui les supportent durant la phase ServerHello de la négociation de la + connexion.</li> + <li>Le serveur mandataire peut recevoir les SCTs en provenance du + serveur original au cours de la phase ServerHello sous la forme d'une + extension de certificat, et/ou au sein des réponses OCSP agrafées ; + tout SCT reçu peut être validé partiellement en ligne, et + éventuellement mis en file d'attente pour un examen plus approfondi + hors ligne.</li> + <li>Le serveur mandataire peut être configuré de façon à refuser la + communication avec un serveur original qui ne fournit pas de SCT + pouvant âtre validé en ligne.</li> +</ul> + +<p>La configuration des logs peut être définie statiquement au niveau de +la configuration du serveur web, ou enregistrée dans une base de données +SQLite3. Dans ce dernier cas, <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> rechargera à +intervalles réguliers la base de données, de façon à ce que tout +changement dans la configuration de la maintenance et de la propagation +des logs pour un site spécifique ne nécessite pas de redémarrer httpd.</p> + +<div class="note">Ce module en est au stade expérimental pour les raisons suivantes +: +<ul> + <li>Tests et retours d'information insuffisants</li> + <li>Repose sur une version non stable (version 1.0.2, Beta 3 ou + supérieure) d'OpenSSL pour les + opérations de base</li> + <li>Implémentation de la <a href="#audit">fonctionnalité d'audit hors + ligne</a> incomplète</li> +</ul> + +<p>Les mécanismes de configuration, le format des données enregistrées +pour l'audit hors ligne, ainsi que d'autres caractéristiques sont +appelés à évoluer en fonction des tests et retours d'informations à +venir.</p> +</div> +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#server">Vue d'ensemble du fonctionnement au niveau du serveur</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#proxy">Vue d'ensemble du fonctionnement au niveau du serveur + mandataire</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#logconf">Configuration du log</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#static">Stockage des SCTs sous une forme compréhensible pour mod_ssl_ct</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation des repères de temps des certificats (CT) dans + le journal des accès</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#audit">Audit hors ligne pour mandataire</a></li> +</ul><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#ctauditstorage">CTAuditStorage</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctlogclient">CTLogClient</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctlogconfigdb">CTLogConfigDB</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctmaxsctage">CTMaxSCTAge</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctproxyawareness">CTProxyAwareness</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctsctstorage">CTSCTStorage</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctserverhellosctlimit">CTServerHelloSCTLimit</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctstaticlogconfig">CTStaticLogConfig</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ctstaticscts">CTStaticSCTs</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_ssl_ct">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_ssl_ct">Signaler un bug</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="server" id="server">Vue d'ensemble du fonctionnement au niveau du serveur</a></h2> + + + <p>Les serveurs doivent pouvoir envoyer les SCTs aux clients. Les SCTs + seront envoyés sous la forme d'une extension de certificat ou au sein + d'une réponse OCSP agrafée sans logique préprogrammée. Ce module gère + l'envoi des SCTs configurés par l'administrateur ou en provenance des + logs définis.</p> + + <p>Le nombre de SCTs envoyés au cours de la phase ServerHello (c'est à + dire les SCTs autres que ceux inclus dans une extension de certificat + ou une réponse OCSP agrafée) peut être limité via la directive + <code class="directive"><a href="#ctserverhellosctlimit">CTServerHelloSCTLimit</a></code>.</p> + + <p>Pour chaque certificat de serveur, un processus maintient une liste + de SCTs à envoyer au cours de la phase ServerHello ; cette liste est + créée à partir des SCTs configurés statiquement, mais aussi à partir + de ceux reçus depuis les logs. Les logs marqués comme suspects ou + arrivés à péremption seront ignorés. A intervalles réguliers, le + processus va soumettre les certificats à un log selon les besoins + (suite à un changement de configuration du log ou de sa durée de vie), + et reconstruire la concaténation des SCTs.</p> + + <p>La liste des SCTs pour un certificat de serveur sera envoyée au + cours de la phase ClientHello, lorsque ce certificat de serveur + particulier est utilisé, à tout client qui fait savoir qu'il supporte + cette fonctionnalité.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="proxy" id="proxy">Vue d'ensemble du fonctionnement au niveau du serveur + mandataire</a></h2> + + + <p>Le serveur mandataire indique qu'il supporte la Transparence des + Certificats au cours de la phase ClientHello en incluant l'extension + <em>signed_certificate_timestamp</em>. Il peut reconnaître les SCTs + reçus au cours de la phase ServerHello dans une extension du + certificat du serveur original, ou au sein d'une réponse OCSP agrafée.</p> + + <p>Une vérification en ligne est effectuée pour tout SCT reçu :</p> + + <ul> + <li>Le repère de temps de chaque SCT peut être vérifié pour voir + s'il n'est pas encore valide en le comparant avec l'heure actuelle + ou tout intervalle de temps valide défini pour le log.</li> + <li>Dans le cas d'un SCT issu d'un log pour lequel une clé publique + a été définie, la signature du serveur sera vérifiée.</li> + </ul> + + <p>Si la vérification échoue ou renvoie un résultat négatif pour au + moins un SCT et si la directive <code class="directive"><a href="#ctproxyawareness">CTProxyAwareness</a></code> est définie à + <em>require</em>, la tentative de connexion est abandonnée.</p> + + <p>En outre, si la directive <code class="directive"><a href="#ctauditstorage">CTAuditStorage</a></code> est définie, la chaîne + de certification du serveur et les SCTs sont stockés pour une + vérification hors ligne.</p> + + <p>A titre d'optimisation, la vérification en ligne et le stockage des + données en provenance du serveur ne sont effectués que la première + fois où un processus enfant du serveur web reçoit ces données, ce qui + permet d'économiser du temps processeur et de l'espace disque. Dans le + cas d'une configuration typique de mandataire inverse, seule une + légère augmentation de la charge processeur sera induite.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="logconf" id="logconf">Configuration du log</a></h2> + + + <p>Les serveurs et les mandataires utilisent des informations + différentes en ce qui concerne les logs et leurs traitements. Cette + <em>configuration des logs</em> peut être effectuée de deux manières :</p> + + <ul> + <li>On peut créer une base de données pour configurer le log en + utilisant la commande <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</a></code> et en + définissant le chemin vers cette base de données via la directive + <code class="directive"><a href="#ctlogconfig">CTLogConfig</a></code>. + <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> relit la base de données à + intervalles réguliers ; cette méthode de configuration supporte donc + les mises à jour dynamiques. En outre, la commande d'audit hors + ligne <code>ctauditscts</code> peut utiliser cette configuration pour + trouver l'URL des logs.</li> + + <li>On peut aussi configurer les logs statiquement via la directive + <code class="directive"><a href="#ctstaticlogconfig">CTStaticLogConfig</a></code>. Toute + modification de cette directive nécessitera alors un redémarrage du serveur + pour être prise en compte, comme pour toutes les autres directives.</li> + </ul> + + <p>Les éléments de configuration pouvant être définis par l'une ou + l'autre méthode sont les suivants :</p> + + <dl> + <dt>Identifiant du log</dt> + <dd>L'identifiant du log est le hash SHA-256 de sa clé publique, et + est inclus dans tout SCT. Ceci permet d'identifier aisément un log + particulier lorsqu'on définit des plages de repères de temps + valides ou certaines autres informations.</dd> + + <dt>Clé publique du log</dt> + <dd>Un mandataire doit disposer de la clé publique du log afin de + pouvoir vérifier la signature dans les SCTs en provenance de ce log. + <br /> + Un serveur doit posséder la clé publique du log afin de pouvoir lui + soumettre des certificats.</dd> + + <dt>Configuration générale confiance/méfiance</dt> + <dd>Il s'agit d'un mécanisme permettant d'instaurer une méfiance ou + de restaurer une confiance envers un log donné pour certaines + raisons particulières (y compris la simple interruption des + interactions avec le log dans les situations où il est hors ligne).</dd> + + <dt>Repères de temps minima et/ou maxima valides</dt> + <dd>Lorsqu'ils sont définis, le mandataire pourra vérifier que les + repères de temps contenus dans les SCTs sont compris dans une plage + valide</dd> + + <dt>URL du log</dt> + <dd>Pour qu'un serveur puisse soumettre des certificats de serveur à + un log, il doit connaître l'URL de ce dernier (pour son API). Le + serveur soumettra chaque certificat de serveur afin d'obtenir un + SCT pour chaque log dont l'URL est définie, sauf pour les logs aussi + marqués comme non dignes de confiance ou si l'heure actuelle ne se + situe dans aucune des plages de temps valides définies. + <br /> + L'audit hors ligne des SCTs reçus par un mandataire nécessite aussi + de connaître l'URL du log.</dd> + </dl> + + <p>En général, seuls quelque uns de ces éléments de configuration sont + définis pour un log donné. Pour plus de détails, veuillez vous référer + à la documentation de la directive <code class="directive"><a href="#ctstaticlogconfig">CTStaticLogConfig</a></code> et de la commande + <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</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="static" id="static">Stockage des SCTs sous une forme compréhensible pour mod_ssl_ct</a></h2> + + + <p>Le module <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> permet de configurer les SCTs + de manière statique via la directive + <code class="directive">CTStaticSCTs</code>. Ils doivent alors être sous une forme + binaire prête à être envoyée au client.</p> + + <p>Vous trouverez dans le <a href="https://github.com/tomrittervg/ct-tools">Dépôt ct-tools de Tom + Ritter</a> un exemple de code sous la forme d'un script Python + (<code>write-sct.py</code>) permettant de générer un SCT sous un + format correct avec des données en provenance d'un log.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="logging" id="logging">Journalisation des repères de temps des certificats (CT) dans + le journal des accès</a></h2> + + + <p>Dans les deux modes mandataire et serveur, les variables + <code>SSL_CT_PROXY_STATUS</code> et + <code>SSL_CT_CLIENT_STATUS</code> sont définies et indiquent si le + serveur supporte les CTs.</p> + + <p>Dans le mode mandataire, la variable + <code>SSL_CT_PROXY_SCT_SOURCES</code> est définie pour indiquer si des + SCTs ont été reçus ainsi que leur source (phase ServerHello de la + connexion, extension de certificat, etc...).</p> + + <p>Les valeurs de ces variables peuvent être journalisées via la + chaîne de format <code>%{<em>varname</em>}e</code> de + <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</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="audit" id="audit">Audit hors ligne pour mandataire</a></h2> + + + <p>Le support de cette fonctionnalité en est au stade expérimental, et + est implémenté par la commande <code>ctauditscts</code>, qui repose + elle-même sur l'utilitaire <code>verify_single_proof.py</code> du + projet open source <em>certificate-transparency</em>. La commande + <code>ctauditscts</code> peut parcourir des données, et ainsi effectuer + un audit hors ligne (activé via la directive <code class="directive"><a href="#ctauditstorage">CTAuditStorage</a></code>) en invoquant + l'utilitaire <code>verify_single_proof.py</code>.</p> + + <p>Voici quelques indication à l'état brut pour l'utilisation de + <code>ctauditscts</code> :</p> + + <ul> + <li>Créez un <em>virtualenv</em> en utilisant le fichier + <code>requirements.txt</code> du projet + <em>certificate-transparency</em>, et exécuter les étapes suivantes + avec ce <em>virtualenv</em> activé.</li> + <li>Définissez <code>PYTHONPATH</code> de façon à inclure le + répertoire <code>python</code> dans les chemins par défaut des + utilitaires du projet <em>certificate-transparency</em>.</li> + <li>Définissez <code>PATH</code> de façon à inclure le chemin du + répertoire <code>python/ct/client/tools</code>.</li> + <li>Exécutez la commande <code>ctauditscts</code> avec comme + arguments la valeur de la directive + <code class="directive">CTAuditStorage</code>, et éventuellement le chemin + de la base de données de configuration des logs. Cette dernière sera + utilisée pour extraire les URLs des logs en fonction de leurs + identifiants.</li> + </ul> + + <p>Les données stockées à des fins d'audit peuvent aussi être + utilisées par d'autres programmes ; veuillez vous référer au code + source de <code>ctauditscts</code> pour plus de détails à propos du + traitement des données.</p> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctauditstorage" id="ctauditstorage">Directive</a> <a name="CTAuditStorage" id="CTAuditStorage">CTAuditStorage</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire de stockage des données pour l'audit hors ligne</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTAuditStorage <em>directory</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>La directive <code class="directive">CTAuditStorage</code> permet de + définir le chemin du répertoire où les données destinées à un audit hors + ligne seront stockées. Ce répertoire doit exister au préalable. Si le + chemin contenu dans l'argument <em>directory</em> n'est pas absolu, il + sera considéré comme relatif au chemin défini par la directive + <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.</p> + + <p>Si cette directive n'est pas définie, aucune donnée ne sera stockée + en vue d'un audit hors ligne.</p> + + <p>Le répertoire considéré contiendra des fichiers nommés + <code><em>PID</em>.tmp</code> pour les processus enfants actifs et + <code><em>PID</em>.out</code> pour les processus enfants terminés. Les + données disponibles pour un audit hors ligne sont donc contenues dans les + fichiers <code>.out</code>. La commande expérimentale + <code>ctauditscts</code> (située dans l'arborescence des sources de + httpd, mais non encore prise en compte par le processus + d'installation), fait appel aux utilitaires du projet + <em>certificate-transparency</em> pour effectuer l'audit.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctlogclient" id="ctlogclient">Directive</a> <a name="CTLogClient" id="CTLogClient">CTLogClient</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin de l'utilitaire client du log certificate-transparency</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTLogClient <em>executable</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p><em>executable</em> est le chemin complet de l'utilitaire client du + log qui est normalement le fichier <code>cpp/client/ct</code> (ou + <code>ct.exe</code>) de l'arborescence des sources du projet open + source <a href="https://code.google.com/p/certificate-transparency/">certificate-transparency</a>.</p> + + <p>Il est possible d'utiliser une implémentation alternative pour + extraire les SCTs d'un certificat de serveur à partir du moment où + l'interface de la ligne de commande est équivalente.</p> + + <p>Si cette directive n'est pas définie, il n'est pas possible de + soumettre les certificats aux logs pour en extraire les SCTs ; seuls + les SCTs gérés par l'administrateur ou situés dans une extension de + certificat seront alors fournis aux clients.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctlogconfigdb" id="ctlogconfigdb">Directive</a> <a name="CTLogConfigDB" id="CTLogConfigDB">CTLogConfigDB</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Base de données pour la configuration des logs avec mises à +jour dynamiques</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTLogConfigDB <em>filename</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>La directive <code class="directive">CTLogConfigDB</code> permet de définir + le nom de la base de données contenant la configuration des logs + connus. Si le chemin contenu dans <em>filename</em> n'est pas absolu, + il est considéré comme relatif au chemin défini par la directive + <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p> + + <p>Veuillez vous référer à la documentation du programme + <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</a></code> qui gère la base de données.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctmaxsctage" id="ctmaxsctage">Directive</a> <a name="CTMaxSCTAge" id="CTMaxSCTAge">CTMaxSCTAge</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Age maximum d'un SCT obtenu depuis un log avant son +raffraîchissement</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTMaxSCTAge <em>num-seconds</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>1 jour</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>Les certificats de serveur dont les SCTs sont supérieurs à cet âge + maximum seront soumis à nouveau aux logs définis. En général, le log + va renvoyer le même SCT que précédemment, mais ceux-ci font alors l'objet + d'une opération de la part du log. Les SCTs seront raffraîchis autant que + nécessaire au cours du fonctionnement normal du serveur, les nouveaux + SCTs étant envoyés aux clients au fur et à mesure de leur + disponibilité.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctproxyawareness" id="ctproxyawareness">Directive</a> <a name="CTProxyAwareness" id="CTProxyAwareness">CTProxyAwareness</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de prise en compte et de mise en oeuvre des CTs pour un +mandataire +</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTProxyAwareness <em>oblivious|aware|require</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>aware</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>Cette directive permet de contrôler la prise en compte et les + recherches de SCTs valides pour un mandataire. Les options disponibles + sont les suivantes :</p> + + <dl> + <dt>oblivious</dt> + <dd>Le mandataire de demandera jamais de SCTs, et par conséquent + n'en examinera pas. Le processus de transparance des certificats est + alors entièrement désactivé pour ce mandataire.</dd> + + <dt>aware</dt> + <dd>Le mandataire prendra en charge l'ensemble du processus de + transparence des certificats, à savoir la recherche de SCTs et leur + examen. Le mandataire n'interrompra cependant pas la connexion si le + serveur original ne fournit pas de SCTs valides.</dd> + + <dt>require</dt> + <dd>Le mandataire interrompra la connexion avec le serveur original + si ce dernir ne fournit pas au moins un SCT qui passe avec succès le + test de validation en ligne.</dd> + </dl> + + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctsctstorage" id="ctsctstorage">Directive</a> <a name="CTSCTStorage" id="CTSCTStorage">CTSCTStorage</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire où les SCTs sont stockés</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTSCTStorage <em>directory</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>La directive <code class="directive">CTSCTStorage</code> permet de définir + le nom du répertoire où les SCTs et listes de SCTs seront stockés. Si + le chemin contenu dans <em>directory</em> n'est pas absolu, il sera + considéré comme relatif au chemin défini par la directive <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.</p> + + <p>Chaque certificat voit ses informations stockées dans un sous-répertoire + qui lui est propre ; le nom de ce sous-répertoire correspond au hash + SHA-256 du certificat considéré.</p> + + <p>Les sous-répertoires propres à chaque certificat contiennent des + SCTs en provenance des logs définis, des listes de SCTs préparées à + partir des SCTs configurés statiquement et des SCTs extraits, ainsi + que diverses informations utilisées pour gérer les SCTs.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctserverhellosctlimit" id="ctserverhellosctlimit">Directive</a> <a name="CTServerHelloSCTLimit" id="CTServerHelloSCTLimit">CTServerHelloSCTLimit</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de SCTs pouvant être renvoyés au cours de la +phase ServerHello</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTServerHelloSCTLimit <em>limit</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>100</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>Cette directive permet de définir le nombre maximum de SCTs pouvant + être renvoyés par un serveur TLS au cours de la phase ServerHello dans + le cas où le nombre de logs définis et de SCTs définis statiquement + est assez important.</p> + + <p>En général, seuls quelques SCTs sont disponibles, cette directive + n'est donc nécessaire que dans certaines circonstances particulières.</p> + + <p>Cette directive ne tient pas compte des SCTs contenus dans les + extensions de certificats ou les réponses OCSP agrafées.</p> + +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctstaticlogconfig" id="ctstaticlogconfig">Directive</a> <a name="CTStaticLogConfig" id="CTStaticLogConfig">CTStaticLogConfig</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration statique d'un log</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTStaticLogConfig <em>log-id|-</em> <em>public-key-file|-</em> +<em>1|0|-</em> <em>min-timestamp|-</em> <em>max-timestamp|-</em> +<em>log-URL|-</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>Cette directive permet de configurer un log particulier. Elle est + particulièrement appropriée dans les cas où cette configuration est + rarement modifiée. Si votre cas nécessite plutôt une configuration + dynamique, veuillez vous référer à la documentation de la directive + <code class="directive"><a href="#ctlogconfigdb">CTLogConfigDB</a></code>.</p> + + <p>Chacun des six champs doit être renseigné, mais en général, la + configuration d'un log nécessite peu d'information ; utilisez + <em>-</em> lorsque vous ne disposez d'aucune information à spécifier + pour un champ particulier. Par exemple, dans le cas d'une + configuration de serveur simple (non mandataire), l'administrateur n'a + besoin de spécifier que l'URL du log auquel soumettre des certificats de + serveur afin d'en extraire les SCTs.</p> + + <p>Les champs se définissent comme suit :</p> + + <dl> + <dt><em>log-id</em></dt> + <dd>Il s'agit de l'identifiant du log qui correspond au hash SHA-256 + de la clé publique du log, codé en hexadécimal. Cette chaîne a une + taille de 64 caractères. + <br /> + Ce champ peut être omis lorsque <em>public-key-file</em> est + renseigné.</dd> + + <dt><em>public-key-file</em></dt> + <dd>Il s'agit du chemin d'un fichier contenant la clé publique du log + codée au format PEM. Si ce chemin n'est pas absolu, il est considéré + comme relatif au chemin défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd> + + <dt><em>trust/distrust</em></dt> + <dd>Définissez ce champ à <em>1</em> pour marquer le log comme non + digne de confiance, ou pour tout simplement interdire son + utilisation pour le traitement des certificats. Définissez ce champ + à <em>-</em> ou <em>0</em> (valeur par défaut) pour accorder votre + confiance au log.</dd> + + <dt><em>min-timestamp</em> et <em>max-timestamp</em></dt> + <dd>Un repère de temps (timestamp) est un temps exprimé en + millisecondes depuis le temps epoch, sans tenir compte des secondes + sautées. C'est le format de temps utilisé dans les SCTs. Le repère + de temps doit être fourni sous la forme d'un nombre décimal. + <br /> + Spécifiez <strong><code>-</code></strong> pour un des repères de + temps s'il n'est pas connu. Par exemple, lorsque vous définissez le + repère de temps minimum valide pour un log qui reste valide, + spécifiez <strong><code>-</code></strong> pour + <em>max-timestamp</em>. + <br /> + Les SCTs reçu par le mandataire depuis ce log seront invalides si le + repère de temps est plus ancien que <em>min-timestamp</em> ou plus + récent que <em>max-timestamp</em>.</dd> + + <dt><em>log-URL</em></dt> + <dd>Il s'agit de l'URL du log auquel soumettre les certificats de + serveur et ainsi obtenir des SCTs à envoyer aux clients.</dd> + </dl> + +<h3>Voir aussi</h3> +<ul> +<li>Le paragraphe <a href="#logconf">Configuration des logs</a> +contient des informations à caractère plus général à propos des champs qui +peuvent être définis via cette directive.</li> +</ul> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="directive-section"><h2><a name="ctstaticscts" id="ctstaticscts">Directive</a> <a name="CTStaticSCTs" id="CTStaticSCTs">CTStaticSCTs</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration statique d'un ou plusieurs SCTs pour un +certificat de serveur +</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CTStaticSCTs <em>certificate-pem-file</em> <em>sct-directory</em></code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl_ct</td></tr> +</table> + <p>Cette directive permet de définir statiquement un ou plusieurs SCTs + correspondant à un certificat de serveur. Ce mécanisme peut être + utilisé à la place ou en complément de l'obtention dynamique des SCTs + en provenance des logs. Toute modification dans le jeu de SCTs d'un + certificat de serveur particulier sera prise en compte de manière + dynamique sans avoir à redémarrer le serveur.</p> + + <p><em>certificate-pem-file</em> fait référence au fichier contenant + le certificat de serveur au format PEM. Si ce chemin n'est pas absolu, + il sera considéré comme relatif au chemin défini par la directive + <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p> + + <p><em>sct-directory</em> doit contenir le chemin vers un ou plusieurs + fichiers possédant l'extension de nom de fichier <code>.sct</code>, + représentant un ou plusieurs SCTs correspondant au certificat de + serveur. Si ce chemin n'est pas absolu, + il sera considéré comme relatif au chemin défini par la directive + <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p> + + <p>Si <em>sct-directory</em> est vide, aucun message d'erreur ne sera + affiché.</p> + + <p>Cette directive peut servir à identifier des répertoires de SCTs + gérés par une autre infrastructure, sous réserve qu'ils soient + enregistrés au format binaire avec l'extension de nom de fichier + <em>.sct</em>.</p> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_ssl_ct.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_ssl_ct.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_ssl_ct.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_syslog.html.fr b/docs/manual/mod/mod_syslog.html.fr new file mode 100644 index 0000000000..7af75c6dae --- /dev/null +++ b/docs/manual/mod/mod_syslog.html.fr @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_syslog - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_syslog</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_syslog.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_syslog.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support du fournisseur de journalisation "syslog"</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>syslog_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_syslog.c</td></tr></table> +<h3>Sommaire</h3> + + + <p>Ce module implémente le fournisseur de journalisation "syslog". + Il permet de journaliser les messages d'erreur via syslogd(8).</p> +</div> +<div id="quickview"><h3>Sujets</h3> +<ul id="topics"> +<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li> +</ul><h3 class="directives">Directives</h3> +<p>Ce module ne fournit aucune directive.</p> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_syslog">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_syslog">Signaler un bug</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="examples" id="examples">Exemples</a></h2> + + + <p>Si le système le supporte, l'utilisation du paramètre + <code>syslog</code> avec la directive ErrorLog (voir la + documentation du module <code class="module"><a href="../mod/core.html">core</a></code>) à la place d'un nom + de fichier permet de journaliser les messages d'erreur via + syslogd(8). Par défaut, c'est le port syslog <code>local7</code> qui + est utilisé, mais vous pouvez le modifier via la syntaxe + <code>syslog:<var>port</var></code> où <var>port</var> pourra + correspondre à un des noms habituellement définis dans la + documentation de syslog(1). La définition de ce port est réellement + globale, et même si elle est modifiée au niveau d'un serveur + virtuel, elle affecte l'ensemble du serveur.</p> + + <pre class="prettyprint lang-config">ErrorLog syslog:user</pre> + + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_syslog.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_syslog.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_syslog.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_systemd.html.fr b/docs/manual/mod/mod_systemd.html.fr new file mode 100644 index 0000000000..27fa2927c1 --- /dev/null +++ b/docs/manual/mod/mod_systemd.html.fr @@ -0,0 +1,118 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_systemd - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_systemd</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_systemd.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_systemd.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fournit un support amélioré pour l'intégration de systemd</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>systemd_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_systemd.c</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module implémente le support de l'intégration de systemd. Il + permet de démarrer httpd en temps que service avec le paramètre de + systemd <code>Type=notify</code> (voir la page de manuel + systemd.service(5) pour plus de détails). Il ajoute aussi des + statistiques à la sortie de la commande <code>systemctl + status</code>, et fournit diverses directives pour l'intégration de + systemd. + </p> +</div> +<div id="quickview"><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#idleshutdown">IdleShutdown</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_systemd">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_systemd">Signaler un bug</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="directive-section"><h2><a name="idleshutdown" id="idleshutdown">Directive</a> <a name="IdleShutdown" id="IdleShutdown">IdleShutdown</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet d'arrêter httpd lorsque qu'il est inactif pendant un +certain temps.</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>IdleShutdown seconds</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>IdleShutdown 0</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_systemd</td></tr> +</table> + <p>La directive <code class="directive">IdleShutdown</code> permet d'arrêter + httpd lorsque qu'il est inactif pendant un certain temps. Ce statut + d'inactivité se base sur le nombre d'octets envoyés ; par conséquent, si + aucun octet n'est envoyé pendant le temps spécifié par cette + directive, httpd sera arrêté. Par défaut, IdleShutdown est définie à + 0, ce qui signifie que cette fonctionnalité est désactivée. + </p> + + <p>Cette fonctionnalité prend tout son sens en combinaison avec + l'activation du socket systemd (voir la page de manuel + systemd.socket(5)). En effet, lorsque httpd est démarré par systemd + suite à l'arrivée d'une ou plusieurs requêtes HTTP, cette directive + vous permet d'arrêter httpd automatiquement lorsque toutes les + requêtes ont été traitées. + </p> + + <div class="warning"><h3>Particularité de cette implémentation</h3><p> + De par la conception de cette implémentation, l'inactivité de httpd + n'est vérifiée que toutes les 10 secondes, ce qui signifie que si + vous spécifiez <code>IdleShutdown 14</code>, httpd ne s'arrêtera + qu'après 20 secondes d'inactivité. + </p></div> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_systemd.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_systemd.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_systemd.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_version.html.fr b/docs/manual/mod/mod_version.html.fr new file mode 100644 index 0000000000..13a3fb1fed --- /dev/null +++ b/docs/manual/mod/mod_version.html.fr @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_version - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_version</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_version.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_version.html" title="Français"> fr </a> | +<a href="../ja/mod/mod_version.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/mod/mod_version.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Configuration dépendant de la version</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>version_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_version.c</td></tr></table> +<h3>Sommaire</h3> + + <p>Ce module a été conçu pour être utilisé dans les suites de tests + et les grands réseaux qui doivent prendre en compte différentes + versions de httpd et différentes configurations. Il fournit un + nouveau conteneur -- <code class="directive"><a href="#ifversion"><IfVersion></a></code>, qui apporte une grande + souplesse dans la vérification de version en permettant une + comparaison numérique et l'utilisation d'expressions + rationnelles.</p> + + <div class="example"><h3>Exemples</h3><pre class="prettyprint lang-config"><IfVersion 2.4.2> + # la version actuelle de httpd est exactement 2.4.2 +</IfVersion> + +<IfVersion >= 2.5> + # utilise vraiment les nouvelles fonctionnalités :-) +</IfVersion></pre> +</div> + + <p>Voir ci-dessous pour d'autres exemples.</p> +</div> +<div id="quickview"><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#ifversion"><IfVersion></a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_version">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_version">Signaler un bug</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="directive-section"><h2><a name="ifversion" id="ifversion">Directive</a> <a name="IfVersion" id="IfVersion"><IfVersion></a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contient des portions de configuration dépendantes de la +version</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code><IfVersion [[!]<var>opérateur</var>] <var>version</var>> ... +</IfVersion></code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr> +<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_version</td></tr> +</table> + <p>La section <code class="directive"><IfVersion></code> + rassemble des directives de configuration qui ne sont exécutées que + si la version de httpd satisfait aux critères spécifiés. Pour une + comparaison normale (numérique), l'argument <var>version</var> doit + être spécifié sous le format + <code><var>majeur</var>[.<var>mineur</var>[.<var>patch</var>]]</code>, + comme par exemple <code>2.1.0</code> ou <code>2.2</code>. + <var>mineur</var> et <var>patch</var> sont optionnels. Si ces + numéros sont absents, il se voient affectée implicitement la valeur + 0. Les <var>opérateur</var>s numériques suivants sont autorisés + :</p> + + <table class="bordered"><tr class="header"><th><var>opérateur</var></th><th>description</th></tr> +<tr><td><code>=</code> ou <code>==</code></td> + <td>La version de httpd est égale à la valeur + spécifiée</td></tr> +<tr class="odd"><td><code>></code></td> + <td>La version de httpd est supérieure à la valeur + spécifiée</td></tr> +<tr><td><code>>=</code></td> + <td>La version de httpd est supérieure ou égale à la valeur + spécifiée</td></tr> +<tr class="odd"><td><code><</code></td> + <td>La version de httpd est inférieure à la valeur + spécifiée</td></tr> +<tr><td><code><=</code></td> + <td>La version de httpd est inférieure ou égale à la valeur + spécifiée</td></tr> +</table> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"><IfVersion >= 2.3> + # la condition n'est satisfaite que pour les versions de httpd + # supérieures ou égales à 2.3 +</IfVersion></pre> +</div> + + <p>En plus d'une comparaison numérique, il est possible de comparer + la version de httpd avec une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression + rationnelle</a>. Il existe deux méthodes pour spécifier cette + dernière :</p> + + <table class="bordered"><tr class="header"><th><var>opérateur</var></th><th>description</th></tr> +<tr><td><code>=</code> ou <code>==</code></td> + <td><var>version</var> est de la forme + <code>/<var>regex</var>/</code></td></tr> +<tr class="odd"><td><code>~</code></td> + <td><var>version</var> est de la forme + <code><var>regex</var></code></td></tr> +</table> + + <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config"><IfVersion = /^2.4.[01234]$/> + # exemple de contournement pour les versions boguées +</IfVersion></pre> +</div> + + <p>Pour inverser la condition, tous les opérateurs peuvent être + préfixés par un point d'exclamation (<code>!</code>) :</p> + + <div class="example"><pre class="prettyprint lang-config"><IfVersion !~ ^2.4.[01234]$> + # pas pour ces versions +</IfVersion></pre> +</div> + + <p>Si <var>opérateur</var> est absent, sa valeur implicite est + <code>=</code>.</p> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_version.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_version.html" title="Français"> fr </a> | +<a href="../ja/mod/mod_version.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/mod/mod_version.html" hreflang="ko" rel="alternate" title="Korean"> ko </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_version.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/mod/mod_watchdog.html.fr b/docs/manual/mod/mod_watchdog.html.fr new file mode 100644 index 0000000000..d6bc3b3f83 --- /dev/null +++ b/docs/manual/mod/mod_watchdog.html.fr @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>mod_watchdog - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body> +<div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> +<div id="page-content"> +<div id="preamble"><h1>Module Apache mod_watchdog</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_watchdog.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_watchdog.html" title="Français"> fr </a></p> +</div> +<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Fournit une infrastructure permettant à d'autres modules +d'exécuter des tâches périodiques.</td></tr> +<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr> +<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>watchdog_module</td></tr> +<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_watchdog.c</td></tr> +<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3 du serveur HTTP +Apache</td></tr></table> +<h3>Sommaire</h3> + +<p>Le module <code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code> définit des +branchements (hooks) programmés pour permettre à d'autres modules +d'exécuter des tâches périodiques. Ces modules peuvent enregistrer des +gestionnaires (handlers) pour les branchements de +<code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code>. Actuellement, seuls les modules suivants +de la distribution Apache utilisent cette fonctionnalité :</p> +<ul> +<li><code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code></li> +<li><code class="module"><a href="../mod/mod_heartmonitor.html">mod_heartmonitor</a></code></li> +</ul> +<div class="warning"> +Pour qu'un module puisse utiliser la fonctionnalité de +<code class="module"><a href="../mod/mod_watchdog.html">mod_watchdog</a></code>, ce dernier doit être lié statiquement +avec le serveur httpd ; s'il a été lié dynamiquement, il doit être +chargé avant l'appel au module qui doit utiliser sa fonctionnalité. +</div> +</div> +<div id="quickview"><h3 class="directives">Directives</h3> +<ul id="toc"> +<li><img alt="" src="../images/down.gif" /> <a href="#watchdoginterval">WatchdogInterval</a></li> +</ul> +<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_watchdog">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_watchdog">Signaler un bug</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="directive-section"><h2><a name="watchdoginterval" id="watchdoginterval">Directive</a> <a name="WatchdogInterval" id="WatchdogInterval">WatchdogInterval</a></h2> +<table class="directive"> +<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Intervalle Watchdog en secondes</td></tr> +<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>WatchdogInterval <var>time-interval</var>[s]</code></td></tr> +<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>WatchdogInterval 1</code></td></tr> +<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr> +<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr> +<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_watchdog</td></tr> +</table> +<p>Cette directive permet de définir l'intervalle entre chaque exécution +du branchement watchdog. La valeur par défaut est de 1 seconde.</p> + +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/mod/mod_watchdog.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/mod/mod_watchdog.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_watchdog.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/ctlogconfig.html b/docs/manual/programs/ctlogconfig.html index d1b41e1493..feca1db8e9 100644 --- a/docs/manual/programs/ctlogconfig.html +++ b/docs/manual/programs/ctlogconfig.html @@ -3,3 +3,7 @@ URI: ctlogconfig.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: ctlogconfig.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/programs/ctlogconfig.html.en b/docs/manual/programs/ctlogconfig.html.en index 0d5b2bda35..d7cedc6b0d 100644 --- a/docs/manual/programs/ctlogconfig.html.en +++ b/docs/manual/programs/ctlogconfig.html.en @@ -23,7 +23,8 @@ <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>ctlogconfig - Certificate Transparency log configuration tool</h1> <div class="toplang"> -<p><span>Available Languages: </span><a href="../en/programs/ctlogconfig.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/ctlogconfig.html" title="English"> en </a> | +<a href="../fr/programs/ctlogconfig.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p><code>ctlogconfig</code> is a tool for creating and maintaining a log @@ -204,7 +205,8 @@ </code></p></div> </div></div> <div class="bottomlang"> -<p><span>Available Languages: </span><a href="../en/programs/ctlogconfig.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/ctlogconfig.html" title="English"> en </a> | +<a href="../fr/programs/ctlogconfig.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/programs/ctlogconfig.html.fr b/docs/manual/programs/ctlogconfig.html.fr new file mode 100644 index 0000000000..1c35331687 --- /dev/null +++ b/docs/manual/programs/ctlogconfig.html.fr @@ -0,0 +1,259 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>ctlogconfig, l'utilitaire de configuration du service de +transparence des certificats - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>ctlogconfig, l'utilitaire de configuration du service de +transparence des certificats</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/ctlogconfig.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/ctlogconfig.html" title="Français"> fr </a></p> +</div> + + <p><code>ctlogconfig</code> est un utilitaire permettant de créer et + maintenir une base de données pour la configuration du service de + transparence des certificats utilisable par le module + <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> ; nous nous référerons à ce service + sous le terme "log" dans la suite de cette documentation.</p> + + <p>Avant d'aller plus loin, et si ce n'est déjà fait, veuillez + consulter le document <a href="../mod/mod_ssl_ct.html#logconf">Configuration des logs</a> + dans la documentation du module <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code>.</p> + + <p>Vous pouvez vous inspirer des <a href="#examples">exemples + ci-dessous</a> pour une utilisation typique.</p> + +</div> +<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Exemples et définitions</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#subcommands">Commandes</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code></li><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="synopsis" id="synopsis">Exemples et définitions</a></h2> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>dump</strong> + </code></p> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>configure-public-key</strong> + [ <em>log-id</em>|<em>record-id</em> ] + <em>/path/to/public-key.pem</em> + </code></p> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>configure-url</strong> + [ <em>log-id</em>|<em>record-id</em> ] + <em>log-URL</em> + </code></p> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>valid-time-range</strong> + <em>log-id</em>|<em>record-id</em> + <em>min-timestamp</em> <em>max-timestamp</em> + </code></p> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>trust</strong> + <em>log-id</em>|<em>record-id</em> + </code></p> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>distrust</strong> + <em>log-id</em>|<em>record-id</em> + </code></p> + + <p><code> + <strong>ctlogconfig</strong> <em>/path/to/db</em> <strong>forget</strong> + <em>log-id</em>|<em>record-id</em> + </code></p> + + <dl> + <dt><em>log-id</em></dt> + <dd>Il s'agit de l'identifiant du log qui est généré en effectuant + un hash SHA-256 au format hexadécimal de la clé publique du log. + La taille de cette chaîne est de 64 caractères. </dd> + + <dt><em>record-id</em></dt> + <dd>Il s'agit du numéro d'enregistrement dans la base de données, + tel qu'il s'affiche avec la sous-commande <strong>dump</strong>, + préfixé par le caractère <strong>#</strong>. Par exemple, + <strong>#4</strong> renvoie au quatrième enregistrement de la base + de données (utilisez le mécanisme d'échappement du shell si + nécessaire).</dd> + + <dt><em>/path/to/public-key.pem</em></dt> + <dd>Il s'agit du chemin vers le fichier contenant la clé publique du + log au format PEM. En effet, la clé publique n'est pas stockée dans la base de + données, et le fichier ne peut donc pas être supprimé jusqu'à ce que + la donnée qui y fait référence dans la base de données soit + supprimée ou modifiée.</dd> + + <dt><em>min-timestamp</em>, <em>max-timestamp</em></dt> + <dd>Un repère de temps (timestamp) est un temps exprimé en + millisecondes depuis le temps epoch, sans tenir compte des secondes + sautées. C'est le format de temps utilisé dans les SCTs. Le repère + de temps doit être fourni sous la forme d'un nombre décimal. + <br /> + Spécifiez <strong><code>-</code></strong> pour un des repères de + temps s'il n'est pas connu. Par exemple, lorsque vous définissez le + repère de temps minimum valide pour un log qui reste valide, + spécifiez <strong><code>-</code></strong> pour + <em>max-timestamp</em>. + <br /> + Les SCTs reçu par le mandataire depuis ce log seront invalides si le + repère de temps est plus ancien que <em>min-timestamp</em> ou plus + récent que <em>max-timestamp</em>.</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="subcommands" id="subcommands">Commandes</a></h2> + + <dl> + <dt>dump</dt> + <dd>Affiche les éléments de configuration de la base de données. + L'identifiant des enregistrements que cette commande affiche peut + servir de référence pour les enregistrements devant être affectés + par les autres commandes.</dd> + + <dt>configure-public-key</dt> + <dd>Ajoute une clé publique pour un log de la base de données ou + modifie la clé publique d'un log existant. La clé publique d'un log + permet de valider la signature des SCTs (Signed certificate + Timestamp) reçus par un mandataire depuis un serveur d'arrière-plan + (La base de données sera créée si elle n'existe pas encore).</dd> + + <dt>configure-url</dt> + <dd>Ajoute une URL pour un log de la base de données ou modifie + l'URL d'un log existant. L'URL d'un log permet de soumettre des + certificats de serveur à ce dernier afin d'obtenir des SCTs qui + pourront être envoyés aux clients (La base de données sera créée si + elle n'existe pas encore).</dd> + + <dt>valid-time-range</dt> + <dd>Cette commande permet de définir le temps de validation minimum + et/ou maximum pour un log. Les SCTs en provenance du log possédant + un repère de temps en dehors de la plage définie seront rejetés. + Utilisez <code>-</code> pour un temps non défini (La base de données + sera créée si elle n'existe pas encore).</dd> + + <dt>trust</dt> + <dd>Marque un log comme digne de confiance, ce qui est la situation + par défaut. Cette command permet de marquer un log comme digne de + confiance, alors que ce n'était pas le cas auparavant (La base de + données sera créée si elle n'existe pas encore).</dd> + + <dt>distrust</dt> + <dd>Marque un log comme non digne de confiance (La base de + données sera créée si elle n'existe pas encore).</dd> + + <dt>forget</dt> + <dd>Supprime de la base de données les informations relatives + à un log.</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="examples" id="examples">Exemples</a></h2> + + + <p>Soit une instance de httpd Apache qui fonctionne en tant que + serveur TLS et mandataire. Le serveur TLS doit obtenir des SCTs de la + part de certains logs connus afin de pouvoir les transmettre aux + clients, et le mandataire doit pouvoir valider la signature des SCTs + en provenance des serveurs d'arrière-plan.</p> + + <p>Nous allons tout d'abord définir les URLs des logs où les + certificats sont enregistrés :</p> + + <div class="example"><p><code> + $ ctlogconfig /path/to/conf/log-config configure-url http://log1.example.com/<br /> + $ ctlogconfig /path/to/conf/log-config configure-url http://log2.example.com/<br /> + $ ctlogconfig /path/to/conf/log-config dump<br /> + Log entry:<br /> + Record 1<br /> + Log id : (not configured)<br /> + Public key file: (not configured)<br /> + URL : http://log1.example.com/<br /> + Time range : -INF to +INF<br /> +<br /> + Log entry:<br /> + Record 2<br /> + Log id : (not configured)<br /> + Public key file: (not configured)<br /> + URL : http://log2.example.com/<br /> + Time range : -INF to +INF<br /> + </code></p></div> + + <p>Nous pouvons maintenant attribuer une clé publique à un log où le + certificat de notre seul serveur d'arrière-plan est publié. Dans notre + cas, il s'agit du log dont l'URL est http://log2.example.com/, et qui + a déjà été configuré.</p> + + <div class="example"><p><code> + $ ctlogconfig /path/to/conf/log-config configure-public-key \#2 /path/to/conf/log2-pub.pem<br /> + $ ctlogconfig /path/to/conf/log-config dump<br /> + Log entry:<br /> + Record 1<br /> + Log id : (not configured)<br /> + Public key file: (not configured)<br /> + URL : http://log1.example.com/<br /> + Time range : -INF to +INF<br /> +<br /> + Log entry:<br /> + Record 2<br /> + Log id : (not configured)<br /> + Public key file: /path/to/conf/log2-pub.pem<br /> + URL : http://log2.example.com/<br /> + Time range : -INF to +INF<br /> + </code></p></div> +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/ctlogconfig.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/ctlogconfig.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/programs/ctlogconfig.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/firehose.html b/docs/manual/programs/firehose.html index be4e77d886..7afc3b3c84 100644 --- a/docs/manual/programs/firehose.html +++ b/docs/manual/programs/firehose.html @@ -3,3 +3,7 @@ URI: firehose.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: firehose.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/programs/firehose.html.en b/docs/manual/programs/firehose.html.en index 2489945eee..84dac9b5a0 100644 --- a/docs/manual/programs/firehose.html.en +++ b/docs/manual/programs/firehose.html.en @@ -23,7 +23,8 @@ <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>firehose - Demultiplex a firehose stream</h1> <div class="toplang"> -<p><span>Available Languages: </span><a href="../en/programs/firehose.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/firehose.html" title="English"> en </a> | +<a href="../fr/programs/firehose.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p><code>firehose</code> demultiplexes the given stream of multiplexed @@ -75,7 +76,8 @@ </div></div> <div class="bottomlang"> -<p><span>Available Languages: </span><a href="../en/programs/firehose.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/firehose.html" title="English"> en </a> | +<a href="../fr/programs/firehose.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/programs/firehose.html.fr b/docs/manual/programs/firehose.html.fr new file mode 100644 index 0000000000..07e114873b --- /dev/null +++ b/docs/manual/programs/firehose.html.fr @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>firehose - Démultiplexe un flux firehose - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>firehose - Démultiplexe un flux firehose</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/firehose.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/firehose.html" title="Français"> fr </a></p> +</div> + + <p><code>firehose</code> démultiplexe le flux de connexions + multiplexées donné, et enregistre chacune d'entre elles dans un + fichier individuel.</p> + + <p>Lors de son enregistrement, chaque connexion est placée dans un + fichier dédié dont le nom est généré à partir de l'UUID de la + connexion dans le flux. Si le flux comporte des requêtes et des + réponses, ces dernières feront l'objet de fichiers séparés.</p> + + <p>Si le paramètre optionnel prefix est spécifié, les connexions qui + commencent par le préfixe donné seront incluses. Le préfixe doit + correspondre exactement au premier fragment pour un résultat de + comparaison positif.</p> + +</div> +<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Syntaxe</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><code class="module"><a href="../mod/mod_firehose.html">mod_firehose</a></code></li><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="synopsis" id="synopsis">Syntaxe</a></h2> + <p><code><strong>firehose</strong> + [ -<strong>f</strong> <var>entrée</var> ] + [ -<strong>o</strong> <var>répertoire-sortie</var> ] + [ -<strong>u</strong> <var>uuid</var> ] + [ -<strong>h</strong> ] + [ --<strong>version</strong> ] + [<var>préfixe1</var> [...]]</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="options" id="options">Options</a></h2> + <dl> + <dt><code>--file, -f <var>nom-fichier</var></code></dt> + <dd>Fichier depuis lequel doit être lu le flux firehose. La valeur + par défaut est stdin.</dd> + + <dt><code>--output-directory, -o </code> <var>répertoire-sortie</var></dt> + <dd>Répertoire dans lequel les connexions démultiplexées doivent + être enregistrées.</dd> + + <dt><code>--uuid, -u</code> <var>uuid</var></dt> + <dd>L'UUID de la connexion à démultiplexer. Plusieurs UUID peuvent + être spécifiés. Par défaut, tout les UUID seront démultiplexés.</dd> + + <dt><code>--help, -h</code></dt> + <dd>Ce texte d'aide.</dd> + + <dt><code>--version</code></dt> + <dd>Affiche la version du programme.</dd> + </dl> + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/firehose.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/firehose.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/programs/firehose.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/log_server_status.html b/docs/manual/programs/log_server_status.html index 192b6142ae..b3a6d91af0 100644 --- a/docs/manual/programs/log_server_status.html +++ b/docs/manual/programs/log_server_status.html @@ -3,3 +3,7 @@ URI: log_server_status.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: log_server_status.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/programs/log_server_status.html.en b/docs/manual/programs/log_server_status.html.en index bcf8d2a057..ee6234af4d 100644 --- a/docs/manual/programs/log_server_status.html.en +++ b/docs/manual/programs/log_server_status.html.en @@ -23,7 +23,8 @@ <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>log_server_status - Log periodic status summaries</h1> <div class="toplang"> -<p><span>Available Languages: </span><a href="../en/programs/log_server_status.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/log_server_status.html" title="English"> en </a> | +<a href="../fr/programs/log_server_status.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p>This perl script is designed to be run at a frequent interval by @@ -56,7 +57,8 @@ which can then be used for statistical analysis.</p> </div></div> <div class="bottomlang"> -<p><span>Available Languages: </span><a href="../en/programs/log_server_status.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/log_server_status.html" title="English"> en </a> | +<a href="../fr/programs/log_server_status.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/programs/log_server_status.html.fr b/docs/manual/programs/log_server_status.html.fr new file mode 100644 index 0000000000..5777c69dc2 --- /dev/null +++ b/docs/manual/programs/log_server_status.html.fr @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>log_server_status - Enregistrement périodique de l'état du serveur - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page" class="no-sidebar"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>log_server_status - Enregistrement périodique de l'état du serveur</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/log_server_status.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/log_server_status.html" title="Français"> fr </a></p> +</div> + + <p>Ce script perl a été conçu pour être exécuté à intervalles + réguliers via un déclencheur de type cron. Il se connecte au serveur + pour en extraire des informations quant à son état. Il formate ces + informations sous la forme d'une seule ligne qu'il enregistre dans + un fichier. Vous devez éditer la valeur des variables en tête de + script afin de définir le chemin du fichier de sortie. Pour que ce + script puisse fonctionner, <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> doit au + préalable être chargé et configuré.</p> +</div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="configure" id="configure">Mode d'emploi</a></h2> + +<p>Le script contient les sections suivantes :</p> + +<pre class="prettyprint lang-perl">my $wherelog = "/usr/local/apache2/logs/"; # Le fichier de sortie sera + # du style "/usr/local/apache2/logs/19960312" +my $server = "localhost"; # Nom du serveur, par exemple "www.foo.com" +my $port = "80"; # Port d'écoute du serveur +my $request = "/server-status/?auto"; # Requête à soumettre</pre> + + +<p>Ces variables doivent contenir des valeurs correctes, et le +gestionnaire <code>/server-status</code> doit être configuré pour le +répertoire considéré. En outre, l'utilisateur qui exécute le script doit +avoir les droits d'écriture sur le chemin du fichier de sortie.</p> + +<p>L'exécution périodique du script via cron permet d'obtenir un jeu de +rapports d'état qui pourra être utilisé à des fins d'analyse +statistique.</p> + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/log_server_status.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/log_server_status.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/programs/log_server_status.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/other.html b/docs/manual/programs/other.html index d9c31cd3c0..d1199ee1cd 100644 --- a/docs/manual/programs/other.html +++ b/docs/manual/programs/other.html @@ -4,6 +4,10 @@ URI: other.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: other.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: other.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/programs/other.html.en b/docs/manual/programs/other.html.en index eb892e8171..cf0a67ffea 100644 --- a/docs/manual/programs/other.html.en +++ b/docs/manual/programs/other.html.en @@ -24,6 +24,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>Other Programs</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/programs/other.html" title="English"> en </a> | +<a href="../fr/programs/other.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/other.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/other.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> @@ -37,6 +38,7 @@ </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/programs/other.html" title="English"> en </a> | +<a href="../fr/programs/other.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/other.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/other.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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> diff --git a/docs/manual/programs/other.html.fr b/docs/manual/programs/other.html.fr new file mode 100644 index 0000000000..2e75a746d2 --- /dev/null +++ b/docs/manual/programs/other.html.fr @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Autres programmes - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page" class="no-sidebar"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programmes</a></div><div id="page-content"><div id="preamble"><h1>Autres programmes</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/other.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/other.html" title="Français"> fr </a> | +<a href="../ko/programs/other.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/programs/other.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> + + + <p>Cette page contenait la documentation de programmes qui possèdent + maintenant leurs propres pages de documentation. Merci de bien + vouloir mettre à jour vos liens.</p> + + <p><code class="program"><a href="../programs/log_server_status.html">log_server_status</a></code></p> + <p><code class="program"><a href="../programs/split-logfile.html">split-logfile</a></code></p> +</div> +</div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/other.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/other.html" title="Français"> fr </a> | +<a href="../ko/programs/other.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/programs/other.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/programs/other.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/other.html.ko.euc-kr b/docs/manual/programs/other.html.ko.euc-kr index daa9f14a57..04be868575 100644 --- a/docs/manual/programs/other.html.ko.euc-kr +++ b/docs/manual/programs/other.html.ko.euc-kr @@ -24,6 +24,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>Other Programs</h1> <div class="toplang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/programs/other.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/other.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/other.html" title="Korean"> ko </a> | <a href="../tr/programs/other.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> @@ -58,6 +59,7 @@ </div></div> <div class="bottomlang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/programs/other.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/other.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/other.html" title="Korean"> ko </a> | <a href="../tr/programs/other.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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> diff --git a/docs/manual/programs/other.html.tr.utf8 b/docs/manual/programs/other.html.tr.utf8 index ad781ea4c9..2ee8b3d92a 100644 --- a/docs/manual/programs/other.html.tr.utf8 +++ b/docs/manual/programs/other.html.tr.utf8 @@ -24,6 +24,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <a href="./">Programlar</a></div><div id="page-content"><div id="preamble"><h1>DiÄŸer Programlar</h1> <div class="toplang"> <p><span>Mevcut Diller: </span><a href="../en/programs/other.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/other.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/other.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/other.html" title="Türkçe"> tr </a></p> </div> @@ -75,6 +76,7 @@ </div></div> <div class="bottomlang"> <p><span>Mevcut Diller: </span><a href="../en/programs/other.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/other.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/other.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/other.html" title="Türkçe"> tr </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">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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> diff --git a/docs/manual/programs/split-logfile.html b/docs/manual/programs/split-logfile.html index 80b48605c0..dfd27f9789 100644 --- a/docs/manual/programs/split-logfile.html +++ b/docs/manual/programs/split-logfile.html @@ -3,3 +3,7 @@ URI: split-logfile.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 + +URI: split-logfile.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/programs/split-logfile.html.en b/docs/manual/programs/split-logfile.html.en index c006b14764..6121d92059 100644 --- a/docs/manual/programs/split-logfile.html.en +++ b/docs/manual/programs/split-logfile.html.en @@ -23,7 +23,8 @@ <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>split-logfile - Split up multi-vhost logfiles</h1> <div class="toplang"> -<p><span>Available Languages: </span><a href="../en/programs/split-logfile.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/split-logfile.html" title="English"> en </a> | +<a href="../fr/programs/split-logfile.html" hreflang="fr" rel="alternate" title="Français"> fr </a></p> </div> <p>This perl script will take a combined Web server access log file and @@ -55,7 +56,8 @@ CustomLog "logs/access_log" combined_plus_vhost</pre> </div></div> <div class="bottomlang"> -<p><span>Available Languages: </span><a href="../en/programs/split-logfile.html" title="English"> en </a></p> +<p><span>Available Languages: </span><a href="../en/programs/split-logfile.html" title="English"> en </a> | +<a href="../fr/programs/split-logfile.html" hreflang="fr" rel="alternate" title="Français"> fr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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'; diff --git a/docs/manual/programs/split-logfile.html.fr b/docs/manual/programs/split-logfile.html.fr new file mode 100644 index 0000000000..3d020ac020 --- /dev/null +++ b/docs/manual/programs/split-logfile.html.fr @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>split-logfile - Eclatement des journaux en fonction des serveurs +virtuels - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page" class="no-sidebar"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>split-logfile - Eclatement des journaux en fonction des serveurs +virtuels</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/split-logfile.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/split-logfile.html" title="Français"> fr </a></p> +</div> + + <p>Ce script perl permet d'extraire un journal pour chaque serveur + virtuel à partir d'un journal d'accès global du serveur web. Pour + que ce script fonctionne, le premier champ de chaque ligne du + journal global doit contenir l'identité du serveur virtuel ; ce + champ aura été ajouté à la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> via la variable + "<code>%v</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="split-logfile" id="split-logfile">Mode d'emploi</a></h2> + + <p>Création d'un fichier journal comportant l'identité du serveur + virtuel considéré :</p> + + <pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_plus_vhost +CustomLog "logs/access_log" combined_plus_vhost</pre> + + + <p>Un fichier journal sera créé dans le répertoire à partir duquel + vous exécutez le script pour chaque serveur virtuel qui apparaît + dans le journal global. Ces fichiers journaux seront nommés à partir + du nom du serveur virtuel considéré, avec l'extension + <code>.log</code>.</p> + + <p>Le fichier journal global est lu depuis l'entrée standard stdin. + Les entrées de ce journal sont alors ajoutées au journal du serveur + virtuel correspondant.</p> + + <div class="example"><p><code>split-logfile < access_log</code></p></div> + + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/split-logfile.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/split-logfile.html" title="Français"> fr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/programs/split-logfile.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/suexec.html b/docs/manual/programs/suexec.html index 439a0689a7..be1c74bb52 100644 --- a/docs/manual/programs/suexec.html +++ b/docs/manual/programs/suexec.html @@ -4,6 +4,10 @@ URI: suexec.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: suexec.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: suexec.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/programs/suexec.html.en b/docs/manual/programs/suexec.html.en index 07421dd25e..cf007dfb92 100644 --- a/docs/manual/programs/suexec.html.en +++ b/docs/manual/programs/suexec.html.en @@ -24,6 +24,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>suexec - Switch user before executing external programs</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/programs/suexec.html" title="English"> en </a> | +<a href="../fr/programs/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> @@ -60,6 +61,7 @@ changeable only at compile time.</dd> </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/programs/suexec.html" title="English"> en </a> | +<a href="../fr/programs/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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> diff --git a/docs/manual/programs/suexec.html.fr b/docs/manual/programs/suexec.html.fr new file mode 100644 index 0000000000..48e0c70bcf --- /dev/null +++ b/docs/manual/programs/suexec.html.fr @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>suexec - Change d'utilisateur avant l'exécution d'un programme +externe - Serveur Apache HTTP 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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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> +<p class="apache">Serveur Apache HTTP Version 2.5</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>suexec - Change d'utilisateur avant l'exécution d'un programme +externe</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/suexec.html" title="Français"> fr </a> | +<a href="../ko/programs/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/programs/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> + + <p><code>suexec</code> permet au serveur HTTP Apache de changer + d'utilisateur avant d'exécuter un programme CGI. Pour ce faire, il + doit être exécuté par <code>root</code>. A cet effet, comme le + démon HTTP ne s'exécute en général pas en tant que + <code>root</code>, l'exécutable <code>suexec</code> doit posséder + le bit setuid et avoir comme propriétaire <code>root</code>. Seul + <code>root</code> doit en posséder les droits en écriture.</p> + + <p>Pour plus d'informations à propos des concepts et du modèle de + sécurité du programme suexec, veuillez vous reporter à sa + documentation : <a href="http://httpd.apache.org/docs/trunk/suexec.html">http://httpd.apache.org/docs/trunk/suexec.html</a>.</p> +</div> +<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Synopsis</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</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="synopsis" id="synopsis">Synopsis</a></h2> + <p><code><strong>suexec</strong> -<strong>V</strong></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="options" id="options">Options</a></h2> + +<dl> +<dt><code>-V</code></dt> + +<dd>Si vous êtes <code>root</code>, cette option permet d'afficher les +options de compilation du programme <code>suexec</code>. Pour des +raisons de sécurité, toutes les options de configuration ne sont +modifiables qu'à la compilation.</dd> + +</dl> +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/programs/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/suexec.html" title="Français"> fr </a> | +<a href="../ko/programs/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/programs/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&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'; +var comments_identifier = 'http://httpd.apache.org/docs/trunk/programs/suexec.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2017 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(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/programs/suexec.html.ko.euc-kr b/docs/manual/programs/suexec.html.ko.euc-kr index 8b357aa716..563a0a982d 100644 --- a/docs/manual/programs/suexec.html.ko.euc-kr +++ b/docs/manual/programs/suexec.html.ko.euc-kr @@ -24,6 +24,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>suexec - ¿ÜºÎ ÇÁ·Î±×·¥À» ½ÇÇàÇϱâ Àü¿¡ »ç¿ëÀÚ¸¦ º¯°æÇÑ´Ù</h1> <div class="toplang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/programs/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/suexec.html" title="Korean"> ko </a> | <a href="../tr/programs/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> @@ -63,6 +64,7 @@ </div></div> <div class="bottomlang"> <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/programs/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/suexec.html" title="Korean"> ko </a> | <a href="../tr/programs/suexec.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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> diff --git a/docs/manual/programs/suexec.html.tr.utf8 b/docs/manual/programs/suexec.html.tr.utf8 index 272d9ffd48..4304c779ce 100644 --- a/docs/manual/programs/suexec.html.tr.utf8 +++ b/docs/manual/programs/suexec.html.tr.utf8 @@ -24,6 +24,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.5</a> > <a href="./">Programlar</a></div><div id="page-content"><div id="preamble"><h1>suexec - harici programları çalıştırmadan önce kullanıcıyı deÄŸiÅŸtirir</h1> <div class="toplang"> <p><span>Mevcut Diller: </span><a href="../en/programs/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/suexec.html" title="Türkçe"> tr </a></p> </div> @@ -61,6 +62,7 @@ </div></div> <div class="bottomlang"> <p><span>Mevcut Diller: </span><a href="../en/programs/suexec.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/programs/suexec.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/programs/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/programs/suexec.html" title="Türkçe"> tr </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">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&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> diff --git a/docs/manual/sections.html.fr b/docs/manual/sections.html.fr index 1c9c81dcbc..d19cab92ea 100644 --- a/docs/manual/sections.html.fr +++ b/docs/manual/sections.html.fr @@ -29,8 +29,6 @@ <a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="./tr/sections.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> -<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version - anglaise pour les changements récents.</div> <p>Les directives des <a href="configuring.html">fichiers de configuration</a> peuvent s'appliquer au serveur dans son ensemble, ou seulement à des répertoires, fichiers, hôtes, ou URLs particuliers. Ce document décrit comment utiliser les conteneurs de @@ -51,7 +49,7 @@ arborescence du site web et expressions booléennes</a></li> <h2><a name="types" id="types">Types de conteneurs de sections de configuration</a></h2> -<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/core.html">core</a></code></li><li><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#files"><Files></a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#if"><If></a></code></li><li><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code></li><li><code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code></li><li><code class="directive"><a href="./mod/core.html#location"><Location></a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code></li><li><code class="directive"><a href="./mod/mod_md.html#mdomainsetsection"><MDomainSet></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslpolicysection"><SSLPolicy></a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></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/core.html">core</a></code></li><li><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#files"><Files></a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#if"><If></a></code></li><li><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code></li><li><code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code></li><li><code class="directive"><a href="./mod/core.html#location"><Location></a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code></li><li><code class="directive"><a href="./mod/mod_md.html#mdomainsetsection"><MDomainSet></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code></li><li><code class="directive"><a href="./mod/mod_ssl.html#sslpolicydefinesection"><SSLPolicyDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table> <p>Il existe deux grands types de conteneurs. La plupart des conteneurs sont évalués pour chaque requête. Les directives qu'ils contiennent s'appliquent @@ -510,7 +508,7 @@ sont interprétées.</p> le conteneur <code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code> prend la place du conteneur <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> dans l'ordre de traitement.</li> </ul> - + <div class="note"><h3>Note technique</h3> Une séquence <code><Location></code>/<code><LocationMatch></code> est réellement traitée juste avant la phase de traduction du nom @@ -559,7 +557,7 @@ modules et sections de configuration</a></h3> <Directory "/example"> Header set CustomHeaderName two </Directory></pre> - + <ul> <li><code class="directive">Directory</code> "/" s'applique, et une configuration initiale est créée qui définit l'en-tête <code>CustomHeaderName</code> @@ -591,7 +589,7 @@ modules et sections de configuration</a></h3> <code class="directive"><a href="./mod/mod_headers.html#header">Header</a></code> ou <code class="directive"><a href="./mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> car elles agissent à des niveaux différents. </p> - + <h3><a name="merge-examples" id="merge-examples">Quelques exemples utiles</a></h3> diff --git a/docs/manual/vhosts/mass.html.fr b/docs/manual/vhosts/mass.html.fr index 4bd7823f1b..3217c585ec 100644 --- a/docs/manual/vhosts/mass.html.fr +++ b/docs/manual/vhosts/mass.html.fr @@ -28,8 +28,6 @@ <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/vhosts/mass.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> -<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version - anglaise pour les changements récents.</div> <p>Ce document propose une méthode performante pour servir un nombre @@ -107,7 +105,7 @@ mod_rewrite</a></li> fichier</a>. Il est préférable de rediriger <a href="../logs.html#piped">les journaux via un pipe ou une file fifo</a> vers un programme, et faire en sorte que ce dernier éclate les journaux - en un journal par serveur virtuel. L'utilitaire <a href="../programs/other.html#split-logfile">split-logfile</a> + en un journal par serveur virtuel. L'utilitaire <a href="../programs/split-logfile.html">split-logfile</a> constitue un exemple de ce traitement.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> @@ -255,18 +253,18 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon <VirtualHost 111.22.33.44> ServerName www.commercial.example.com - + CustomLog "logs/access_log.commercial" vcommon - + VirtualDocumentRoot "/www/commercial/%0/docs" VirtualScriptAlias "/www/commercial/%0/cgi-bin" </VirtualHost> <VirtualHost 111.22.33.45> ServerName www.homepages.example.com - + CustomLog "logs/access_log.homepages" vcommon - + VirtualDocumentRoot "/www/homepages/%0/docs" ScriptAlias "/cgi-bin/" "/www/std-cgi/" </VirtualHost></pre> |