<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1887636:1933687 (outdated) -->
+<!-- English Revision: 1933687 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviwed by : Vincent Deffontaines -->
href="../mod/mod_authz_core.html#logic">Conteneurs
d'autorisations</a> pour un exemple de la manière de les
utiliser pour exprimer des logiques d'autorisation
- complexes.</p>
+ complexes. Chaque fournisseur d’autorisation renvoie un des trois
+ résultats possibles ; voir <a
+ href="../mod/mod_authz_core.html#authzresults">États des résultats
+ d’autorisation</a> pour des détails sur la manière dont les conteneurs
+ interprètent ces résultats.</p>
<p>Par défaut, toutes les directives <directive
module="mod_authz_core">Require</directive> sont
<section id="filesystem"><title>Compatibilité ascendante du contrôle
d'accès</title>
<p>L'adoption d'un mécanisme à base de fournisseurs pour
- l'authentification, a pour effet colatéral de rendre inutiles
+ l'autorisation, a pour effet colatéral de rendre inutiles
les directives <directive
module="mod_access_compat">Order</directive>, <directive
module="mod_access_compat">Allow</directive>, <directive
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1933084:1933506 (outdated) -->
+<!-- English Revision: 1933506 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
d'environnement</a> non standards, vous devrez vous assurez que
ces variables lui sont bien transmises par httpd.</p>
- <p>Lorsque des en-têtes HTTP ne sont pas transmis à
- l'environnement, assurez-vous qu'ils sont bien formatés selon la
- <a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>, section
- 4.2 : les noms d'en-têtes doivent commencer par une lettre,
- elle-même suivie de lettres, chiffres ou traits d'union. Tout
- en-tête dont le nom viole cette règle sera ignoré.</p>
+ <p>Lorsque des en-têtes HTTP ne sont pas transmis à l'environnement,
+ assurez-vous qu'ils sont bien formatés selon la <rfc>2616</rfc>, section
+ 4.2 : les noms d'en-têtes doivent commencer par une lettre, elle-même
+ suivie de lettres, chiffres ou traits d'union. Tout en-tête dont le nom
+ viole cette règle sera ignoré.</p>
</section>
serveur (httpd, IIS, WebSite), le nom du programme CGI en cours
d'exécution, etc...</p>
- <p>Ces variables sont à la disposition du programmeur CGI, et
- elles constituent 50% de la communication client-serveur. La liste
- complète des variables requises se trouve à
- <a href="http://www.ietf.org/rfc/rfc3875">Common Gateway
- Interface RFC</a>.</p>
+ <p>Ces variables sont à la disposition du programmeur CGI, et elles
+ constituent 50% de la communication client-serveur. La liste complète des
+ variables requises se trouve dans la <rfc>3875</rfc> (Common Gateway
+ Interface).</p>
<p>Ce programme CGI basique en Perl permet d'afficher toutes les
variables d'environnement qui sont échangées. Deux programmes
<section id="moreinfo">
<title>Pour plus d'informations</title>
- <p>La spécification CGI actuelle est disponible dans la <a
- href="http://www.ietf.org/rfc/rfc3875">Common Gateway
- Interface RFC</a>.</p>
+ <p>La spécification CGI actuelle est disponible dans la <rfc>3875</rfc>
+ (Common Gateway Interface).</p>
<p>Lorsque vous postez une question à propos d'un problème CGI que
vous rencontrez, que ce soit dans une liste de diffusion ou dans un
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision: 1899234:1933860 (outdated) -->
+<!-- English Revision: 1933860 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
requêtes, des réponses et des en-têtes. Par conséquent, si vous connaissez
HTTP/1, vous connaissez déjà 95% de HTTP/2.</p>
<p>Beaucoup a déjà été écrit à propos de HTTP/2 et de son fonctionnement. La
- documentation la plus officielle est bien entendu sa <a
- href="https://tools.ietf.org/html/rfc7540">RFC 7540</a> (ou <a
- href="http://httpwg.org/specs/rfc7540.html">cette version au format plus
- lisible</a>). Vous trouverez ici une description des rouages de HTTP/2 dans
+ documentation la plus officielle est bien entendu sa <rfc>7540</rfc> (ou cette version au format plus
+ lisible : YMMV (<rfc>7540</rfc>). Vous trouverez ici une description des rouages de HTTP/2 dans
leurs moindres détails.</p>
<p>Le premier document à lire lorsqu'on ne connaît pas un mécanisme n'est
cependant pas sa RFC. Il est préférable de comprendre tout d'abord <em>ce
<li>Une <strong>frame</strong> ou trame est la plus petite unité de
communication au sein d'une connexion HTTP/2 et comporte une en-tête et
une séquence d'octets de longueur variable dont la structure correspond
- au type de trame. Voir la <a
- href="http://httpwg.org/specs/rfc7540.html#FramingLayer">section
- correspondante</a> de la documentation officielle pour plus de
- détails.</li>
- <li>Un <strong>stream</strong> est un flux bidirectionnel de frames au
- sein d'une connexion HTTP/2. La notion correspondante dans HTTP/1 est un
- échange de messages de type requête et réponse. Voir la <a
- href="http://httpwg.org/specs/rfc7540.html#StreamsLayer">section
- correspondante</a> de la documentation officielle pour plus de détails.</li>
+ au type de trame. Voir la section correspondante de la documentation
+ officielle pour plus de détails (<rfc>7540</rfc>).</li> <li>Un
+ <strong>stream</strong> est un flux bidirectionnel de frames au sein
+ d'une connexion HTTP/2. La notion correspondante dans HTTP/1 est un
+ échange de messages de type requête et réponse. Voir la section
+ correspondante de la documentation officielle pour plus de détails
+ (<rfc>7540</rfc>).</li>
<li>HTTP/2 peut gérer <strong>plusieurs streams</strong> de données sur
la même connexion TCP, ce qui permet d'éviter le point de blocage
classique de HTTP/1 pour les requêtes lentes, et de ne pas avoir à
lorsqu'on configure httpd pour HTTP/2 pour la première fois ; donc gardez la
à l'esprit si vous voulez éviter de longues sessions de débogage ! Si vous
voulez être sûr de définir une chaîne d'algorithmes de chiffrement
- appropriée, évitez ceux qui sont listés dans la <a
- href="http://httpwg.org/specs/rfc7540.html#BadCipherSuites">liste des
- algorithmes de chiffrement TLS HTTP/2 à proscrire</a>.</p>
+ appropriée, évitez ceux qui sont listés dans la liste des
+ algorithmes de chiffrement TLS HTTP/2 à proscrire (<rfc>7540</rfc>).</p>
</note>
<p>L'ordre des protocoles indiqués est aussi important. Par défaut, le
premier sera le protocole préféré. Lorsqu'un client offre plusieurs choix,
d'informer le serveur des ressources qu'il possède déjà dans son cache afin
d'éviter les PUSHes pour ces dernières, mais ceci n'en est actuellement qu'à
un stade très expérimental.</p>
- <p>L'<a href="https://tools.ietf.org/html/draft-ruellan-http-accept-push-policy-00">
+ <p>L'<a href="https://datatracker.ietf.org/doc/html/draft-ruellan-http-accept-push-policy-00">
en-tête Accept-Push-Policy</a> est un autre dispositif expérimental
implémenté dans <module>mod_http2</module> ; il permet au client de définir pour
chaque requête quels genres de PUSHes il accepte.</p>
<p>A l'instar des ressources PUSHées, une autre méthode consiste à envoyer
des en-têtes <code>Link</code> au client avant même que la réponse ne soit
prête. Cette méthode utilise la fonctionnalité appelée "Suggestions
- précoces" (Early Hints) décrite dans la <a
- href="https://tools.ietf.org/html/rfc8297">RFC 8297</a>.</p>
+ précoces" (Early Hints) décrite dans la <rfc>8297</rfc>.</p>
<p>Pour utiliser cette fonctionnalité, vous devez l'activer explicitement
sur le serveur via :</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: 1932902:1933854 (outdated) -->
+<!-- English Revision: 1933854 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<ol>
<li><strong>Non-conformité aux RFC :</strong> les documents des normes
insistent sur la nécessité de définir l'en-tête Content-Encoding pour les
- fichiers déjà compressés (comme les fichiers .zip ou .gz). Voir la <a
- href="https://www.rfc-editor.org/rfc/rfc9110.html#name-content-encoding">RFC
- 9110</a>.</li>
+ fichiers déjà compressés (comme les fichiers .zip ou .gz). Voir la <rfc
+ anchor="name-content-encoding">9110</rfc>.</li>
<li><strong>Atteinte à l'intégrité du contenu :</strong> lorsque l'en-tête
Content-Encoding est défini, la plupart des clients HTTP décompressent le
<?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: 1918407:1933536 (outdated) -->
+<!-- English Revision: 1933536 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<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
+ href="https://www.haproxy.org/download/3.1/doc/proxy-protocol.txt">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
- <module>mod_authz_host</module> ; elle est aussi affichée par
- <module>mod_status</module>, et enregistrée via les chaînes de formatage
- <code>%a</code> des modules <module>mod_log_config</module> et <module>core</module>.
- L'adresse IP client sous-jacente de la connexion est enregistrée via la chaîne de
- formatage <code>%{c}a</code>.
+ utilisée pour la fonctionnalité <directive module="mod_authz_host"
+ name="Require">Require ip</directive> de <module>mod_authz_host</module> ;
+ elle est aussi affichée par <module>mod_status</module>, et enregistrée via
+ les chaînes de formatage <code>%a</code> des modules
+ <module>mod_log_config</module> et <module>core</module>. L'adresse IP
+ client sous-jacente de la connexion est enregistrée via la chaîne de
+ formatage <code>%{c}a</code> et via la variable
+ <code>CONN_REMOTE_ADDR</code> dans les <a
+ href="../expr.html">expressions</a>.
</p>
<note type="warning">Il est essentiel de n'activer cette
<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.8/doc/proxy-protocol.txt">Proxy Protocol Spec</a></seealso>
+<seealso><a href="https://www.haproxy.org/download/3.1/doc/proxy-protocol.txt">Proxy Protocol Spec</a></seealso>
<section id="processing"><title>Traitement des adresses distantes</title>
<?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: 1915443:1933502 (outdated) -->
+<!-- English Revision: 1933502 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
se présenter sous l'une des formes suivantes :</p>
<ol>
-<li>Un champ d'en-tête de requête HTTP (voir la <a
- href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a> pour
+<li>Un champ d'en-tête de requête HTTP (voir la <rfc>2616</rfc> pour
plus d'information à leur propos) ; par exemple : <code>Host</code>,
<code>User-Agent</code>, <code>Referer</code>, ou
<code>Accept-Language</code>. Il est possible d'utiliser une
<?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: 1933179:1933657 (outdated) -->
+<!-- English Revision: 1933657 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<p>Pour les serveur threadés et hybrides (utilisant <em>par
exemple</em> <module>event</module> ou <module>worker</module>),
<directive>MaxRequestWorkers</directive> définit alors le nombre total de
- threads qui seront disponibles pour servir les clients. Dans le
- cas des MPMs hybrides, la valeur par défaut est <code>16</code>
+ threads qui seront disponibles pour servir les clients. Pour les MPMs
+ hybrides et threadés, la valeur par défaut est <code>16</code>
(directive <directive
module="mpm_common">ServerLimit</directive>) multiplié par la valeur
<code>25</code> (directive <directive module="mpm_common"
directive <directive module="mpm_common"
>ServerLimit</directive>.</p>
+ <p>Pour les MPMs threadés et hybrides, la valeur de la directive
+ <directive>MaxRequestWorkers</directive> doit supérieure ou égale à celle de
+ la directive <directive module="mpm_common">ThreadsPerChild</directive> et
+ doit être un multiple entier de cette dernière. Si elle n’est pas un
+ multiple de cette dernière, le serveur l’arrondit par le bas au démarrage au
+ multiple le plus proche et journalise un avertissement.</p>
+
+ <example><title>Avertissement : MaxRequestWorkers trop petit</title>
+ WARNING: MaxRequestWorkers of 10 is less than ThreadsPerChild
+ of 25, increasing to 25. MaxRequestWorkers must be at least as
+ large as the number of threads in a single server.
+ </example>
+
+ <example><title>Avertissement : MaxRequestWorkers n’est pas un multiple de
+ ThreadsPerChild</title>
+ WARNING: MaxRequestWorkers of 90 is not an integer multiple of
+ ThreadsPerChild of 25, decreasing to nearest multiple 75, for a
+ maximum of 3 servers.
+ </example>
+
<p>Le nom de la directive <directive>MaxRequestWorkers</directive>
était <directive>MaxClients</directive> avant la version 2.3.13. Cet
ancien nom est encore supporté.</p>
<p>La valeur de la directive <directive>ThreadsPerChild</directive> doit
être supérieure ou égale à 1. Une valeur inférieure à 1 sera automatiquement
augmentée à 1 et un avertissement sera journalisé.</p>
+
+ <p>La valeur de la directive <directive
+ module="mpm_common">MaxRequestWorkers</directive> doit être un multiple
+ entier de celle de la directive <directive>ThreadsPerChild</directive>. Voir
+ la directive <directive module="mpm_common">MaxRequestWorkers</directive>
+ pour les détails.</p>
</usage>
</directivesynopsis>