-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1702012:1774505 (outdated) -->
+<!-- English Revision: 1774505 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<modulesynopsis metafile="mod_info.xml.meta">
<name>mod_info</name>
-<description>Affiche une présentation complète de la configuration du
+<description>Affiche une présentation complète de la configuration du
serveur</description>
<status>Extension</status>
<sourcefile>mod_info.c</sourcefile>
<summary>
<p>Pour activer <module>mod_info</module>, ajoutez les lignes
- suivantes à votre fichier <code>httpd.conf</code>.</p>
+ suivantes à votre fichier <code>httpd.conf</code>.</p>
<highlight language="config">
<Location "/server-info">
</Location>
</highlight>
- <p>Il est recommandé d'utiliser <module>mod_authz_host</module> à
- l'intérieur de la section <directive type="section"
- module="core">Location</directive> afin de restreindre l'accès aux
+ <p>Il est recommandé d'utiliser <module>mod_authz_host</module> à
+ l'intérieur de la section <directive type="section"
+ module="core">Location</directive> afin de restreindre l'accès aux
informations de configuration de votre serveur :</p>
<highlight language="config">
</Location>
</highlight>
- <p>Une fois cette configuration effectuée, les informations du
- serveur sont disponibles à l'adresse
+ <p>Une fois cette configuration effectuée, les informations du
+ serveur sont disponibles à l'adresse
<code>http://votre-serveur.com/infos-serveur</code>.</p>
</summary>
-<section id="security"><title>Problèmes liés à la sécurité</title>
- <p>Une fois <module>mod_info</module> chargé dans le serveur, sa
- fonctionnalité de gestionnaire est disponible dans <em>tous</em> les
+<section id="security"><title>Problèmes liés à la sécurité</title>
+ <p>Une fois <module>mod_info</module> chargé dans le serveur, sa
+ fonctionnalité de gestionnaire est disponible dans <em>tous</em> les
fichiers de configuration, y compris les fichiers de configuration
- des répertoires (par exemple <code>.htaccess</code>). Ceci peut
- avoir des répercutions en matière de sécurité pour votre site.</p>
+ des répertoires (par exemple <code>.htaccess</code>). Ceci peut
+ avoir des répercutions en matière de sécurité pour votre site.</p>
- <p>En particulier, l'utilisation de ce module peut conduire à la
- divulgation d'informations sensibles à partir des directives de
- configuration d'autres modules Apache comme des chemins systèmes,
+ <p>En particulier, l'utilisation de ce module peut conduire à la
+ divulgation d'informations sensibles à partir des directives de
+ configuration d'autres modules Apache comme des chemins systèmes,
des couples nom d'utilisateur/mot de passe, des noms de bases de
- données, etc... C'est pourquoi ce module ne doit être utilisé
- <strong>que</strong> dans un environnement sous contrôle et toujours
- avec les plus grandes précautions.</p>
+ données, etc... C'est pourquoi ce module ne doit être utilisé
+ <strong>que</strong> dans un environnement sous contrôle et toujours
+ avec les plus grandes précautions.</p>
- <p>Il est recommandé d'utiliser <module>mod_authz_host</module> pour
- restreindre l'accès aux informations de configuration de votre
+ <p>Il est recommandé d'utiliser <module>mod_authz_host</module> pour
+ restreindre l'accès aux informations de configuration de votre
serveur.</p>
- <example><title>Contrôle d'accès</title>
+ <example><title>Contrôle d'accès</title>
<highlight language="config">
<Location "/server-info">
SetHandler server-info
- # Autorisation d'accès depuis le serveur lui-même
+ # Autorisation d'accès depuis le serveur lui-même
Require ip 127.0.0.1
- # Autorisation d'accès depuis une station de travail du réseau
+ # Autorisation d'accès depuis une station de travail du réseau
# local
Require ip 192.168.1.17
</Location>
</example>
</section>
-<section id="queries"><title>Filtrage des informations affichées</title>
- <p>Par défaut, les informations affichées comprennent une liste de
- tous les modules activés, et pour chaque module, une description des
+<section id="queries"><title>Filtrage des informations affichées</title>
+ <p>Par défaut, les informations affichées comprennent une liste de
+ tous les modules activés, et pour chaque module, une description des
directives qu'il accepte, les branchements (hooks) qu'il
- implémente, ainsi que les directives concernées dans la
+ implémente, ainsi que les directives concernées dans la
configuration courante.</p>
<p>Il est possible d'afficher d'autres vues de la configuration en
- ajoutant un argument à la requête <code>infos-serveur</code>. Par
+ ajoutant un argument à la requête <code>infos-serveur</code>. Par
exemple, <code>http://votre-serveur.com/infos-serveur?config</code>
affichera toutes les directives de configuration.</p>
<dl>
<dt><code>?<module-name></code></dt>
<dd>Uniquement les informations relatives au module
- spécifié</dd>
+ spécifié</dd>
<dt><code>?config</code></dt>
- <dd>Uniquement les directives de configuration, non triées
+ <dd>Uniquement les directives de configuration, non triées
par module</dd>
<dt><code>?hooks</code></dt>
<dd>Uniquement la liste des branchements (hooks)
- auxquels le module est attaché</dd>
+ auxquels le module est attaché</dd>
<dt><code>?list</code></dt>
- <dd>Une simple liste des modules activés</dd>
+ <dd>Une simple liste des modules activés</dd>
<dt><code>?server</code></dt>
<dd>Uniquement des informations de base sur le serveur</dd>
+ <dt><code>?providers</code></dt>
+ <dd>Liste des fournisseurs disponbles pour votre serveur</dd>
</dl>
</section>
-<section id="startup"><title>Affichage de la configuration au démarrage</title>
+<section id="startup"><title>Affichage de la configuration au démarrage</title>
<p>Si la directive de configuration define
- <code>-DDUMP_CONFIG</code> est utilisée, <module>mod_info</module> va
- envoyer la configuration préinterprétée vers <code>stdout</code> au
- cours du démarrage du serveur. "Préinterprétée" signifie que
+ <code>-DDUMP_CONFIG</code> est utilisée, <module>mod_info</module> va
+ envoyer la configuration préinterprétée vers <code>stdout</code> au
+ cours du démarrage du serveur.</p>
+
+ <highlight language="sh">
+ httpd -DDUMP_CONFIG -k start
+ </highlight>
+
+ <p>"Préinterprétée" signifie que
les directives telles que <directive type="section"
module="core">IfDefine</directive> et <directive type="section"
- module="core">IfModule</directive> sont évaluées et les variables
- d'environnement remplacées par leurs valeurs. Cela ne représente
- cependant pas la configuration définitive. En particulier, les
- fusions ou écrasementsde définitions en cas de directives multiples ne sont pas
- représentés.</p>
+ module="core">IfModule</directive> sont évaluées et les variables
+ d'environnement remplacées par leurs valeurs. Cela ne représente
+ cependant pas la configuration définitive. En particulier, les
+ fusions ou écrasementsde définitions en cas de directives multiples ne sont pas
+ représentés.</p>
- <p>Le résultat est équivalent à celui de la requête
+ <p>Le résultat est équivalent à celui de la requête
<code>?config</code>.</p>
</section>
<section id="limitations"><title>Limitations connues</title>
<p><module>mod_info</module> tire ses informations de
- la configuration interprétée, et non du fichier de configuration
- original. La manière dont l'arbre de configuration interprété est
- créé induit quelques limitations :</p>
+ la configuration interprétée, et non du fichier de configuration
+ original. La manière dont l'arbre de configuration interprété est
+ créé induit quelques limitations :</p>
<ul>
- <li>Les directives qui sont traitées immédiatement sans être
- enregistrées dans l'arbre de configuration interprété ne sont pas
+ <li>Les directives qui sont traitées immédiatement sans être
+ enregistrées dans l'arbre de configuration interprété ne sont pas
prises en compte. Celles-ci comprennent <directive
module="core">ServerRoot</directive>, <directive
module="mod_so">LoadModule</directive> et <directive
module="mod_so">LoadFile</directive>.</li>
- <li>Les directives qui contrôlent le fichier de configuration
- lui-même, comme <directive module="core">Include</directive>,
+ <li>Les directives qui contrôlent le fichier de configuration
+ lui-même, comme <directive module="core">Include</directive>,
<directive type="section" module="core">IfModule</directive> et
<directive type="section" module="core">IfDefine</directive> ne
sont pas prises en compte, mais les directives de configuration
incluses le sont.</li>
- <li>Les commentaires ne sont pas pris en compte (Ce qui peut être
- considéré comme une fonctionnalité).</li>
+ <li>Les commentaires ne sont pas pris en compte (Ce qui peut être
+ considéré comme une fonctionnalité).</li>
<li>Les directives de configuration des fichiers
<code>.htaccess</code> ne sont pas prises en compte (car elles ne
font pas partie de la configuration permanente du serveur).</li>
<li>Les directives de conteneur comme <directive type="section"
- module="core">Directory</directive> sont affichées
+ module="core">Directory</directive> sont affichées
normalement, mais <module>mod_info</module> est incapable de
- déterminer le numéro de ligne de la balise fermante
+ déterminer le numéro de ligne de la balise fermante
<directive type="section" module="core"
name="Directory">/Directory</directive>.</li>
- <li>Les directives générées par des modules tiers comme
- <a href="http://perl.apache.org">mod_perl</a> peuvent ne pas être
+ <li>Les directives générées par des modules tiers comme
+ <a href="http://perl.apache.org">mod_perl</a> peuvent ne pas être
prises en compte.</li>
</ul>
</section>
<directivesynopsis>
<name>AddModuleInfo</name>
-<description>Ajoute des données supplémentaires aux informations de
-module affichées par le gestionnaire server-info</description>
-<syntax>AddModuleInfo <var>nom-module</var> <var>chaîne</var></syntax>
+<description>Ajoute des données supplémentaires aux informations de
+module affichées par le gestionnaire server-info</description>
+<syntax>AddModuleInfo <var>nom-module</var> <var>chaîne</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
- <p>Cette directive permet d'afficher le contenu de <var>chaîne</var>
- en tant qu'<strong>Information supplémentaire</strong> interprétée
+ <p>Cette directive permet d'afficher le contenu de <var>chaîne</var>
+ en tant qu'<strong>Information supplémentaire</strong> interprétée
en HTML pour le module <var>nom-module</var>. Exemple :</p>
<highlight language="config">
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1704683:1776624 (outdated) -->
+<!-- English Revision: 1776624 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
l'en-tête de requête configuré via la directive
<directive module="mod_remoteip">RemoteIPHeader</directive>.</p>
+ <p>En outre, ce module implémente la partie serveur du <a
+ href="http://blog.haproxy.com/haproxy/proxy-protocol/">protocole PROXY</a>
+ de HAProxy lorsqu'on utilise la directive <directive
+ module="mod_remoteip">RemoteIPProxyProtocol</directive>.</p>
+
<p>Une fois sa valeur modifiée comme indiqué, cette adresse IP client est
utilisée pour la fonctionnalité <directive
module="mod_authz_host" name="Require">Require ip</directive> de
<seealso><module>mod_authz_host</module></seealso>
<seealso><module>mod_status</module></seealso>
<seealso><module>mod_log_config</module></seealso>
+<seealso><a href="http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt">Proxy Protocol Spec</a></seealso>
<section id="processing"><title>Traitement des adresses distantes</title>
</usage>
</directivesynopsis>
+<directivesynopsis>
+<name>RemoteIPProxyProtocol</name>
+<description>Active ou désactive la gestion du protocole PROXY</description>
+<syntax>RemoteIPProxyProtocol On|Optional|Off</syntax>
+<contextlist><context>server config</context><context>virtual host</context>
+</contextlist>
+
+<usage>
+ <p>La directive <directive>RemoteIPProxyProtocol</directive> permet
+ d'activer ou de désactiver la prise en compte et la gestion de l'en-tête de
+ connexion du protocole PROXY. Si elle est définie à <code>On</code>, la
+ demande du client <em>doit</em> envoyer l'en-tête approprié pour chaque
+ nouvelle connexion, sinon cette dernière sera fermée. Si elle est définie à
+ <code>Optional</code>, la demande du client <em>peut</em> envoyer l'en-tête
+ approprié, mais ce n'est pas obligatoire.</p>
+
+ <p>Bien que cette directive peut être définie au niveau de n'importe quel
+ serveur virtuel, il est important de garder à l'esprit que, étant donné que
+ le protocole PROXY est basé sur la connexion et agnostique quant au
+ protocle, son activation/désactivation est basée sur le couple adresse
+ IP/port. Cela signifie que si plusieurs serveurs virtuels à base de nom sont
+ configurés avec le même couple adresse IP/port, et si vous activez le
+ protocole PROXY pour l'un d'entre eux, il le sera aussi pour tous les autres
+ (avec le même couple adresse IP/port). Cela signifie aussi que si vous
+ tentez d'activer le protocole PROXY pour un serveur virtuel et de le
+ désactiver pour un autre, cela ne marchera pas ; dans ce dernier cas, la
+ dernière directive l'emporte sur les autres et une notification sera
+ enregistrée dans le journal pour indiquer les réglages qui ont été annulés.</p>
+
+ <note type="hint">Lorsque plusieurs serveurs virtuels avec le même couple
+ adresse IP/port sont configurés avec une combinaison de drapeaux
+ <code>On</code> et <code>Optional</code>, les connexions ne seront pas
+ fermées si l'en-tête approprié n'est pas envoyé. L'activation interviendra
+ alors après la lecture de la requête si bien que les serveurs virtuels
+ configurés avec le drapeau <code>On</code> renverront une erreur 400 Bad
+ Request. Les serveurs virtuels configurés avec le drapeau
+ <code>Optional</code> quant à eux continueront de fonctionner de manière
+ habituelle mais sans remplacer les informations IP du client.</note>
+
+ <highlight language="config">
+Listen 80
+<VirtualHost *:80>
+ ServerName www.example.com
+ RemoteIPProxyProtocol Optional
+
+ #Les requêtes pour ce serveur virtuel ne doivent pas obligatoirement
+ #contenir d'en-tête du protocole PROXY
+</VirtualHost>
+
+<VirtualHost *:80>
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+
+ #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+ #protocole PROXY. Si ce n'est pas le cas, une erreur 400 sera renvoyée
+</VirtualHost>
+
+Listen 8080
+<VirtualHost *:8080>
+ ServerName www.example.com
+ RemoteIPProxyProtocol On
+
+ #Les requêtes pour ce serveur virtuel doivent contenir un en-tête du
+ #protocole PROXY. Si ce n'est pas le cas, la connexion sera fermée
+</VirtualHost>
+ </highlight>
+</usage>
+</directivesynopsis>
+
<directivesynopsis>
<name>RemoteIPTrustedProxy</name>
<description>Restreint les adresses IP clients dignes de