Loading docs/manual/expr.xml.fr +10 −9 Original line number Diff line number Diff line <?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: 1796727:1834256 (outdated) --> <!-- English Revision: 1834256 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -240,8 +240,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <td>Le nom d'hôte de l'hôte distant</td></tr> <tr><td><code>REMOTE_USER</code></td> <td>Le nom de l'utilisateur authentifié, s'il existe (non disponible à l'intérieur d'un bloc <directive><If ></directive>)</td></tr> disponible à l'intérieur d'un bloc <directive><If></directive>)</td></tr> <tr><td><code>REMOTE_IDENT</code></td> <td>Le nom de l'utilisateur défini par <module>mod_ident</module></td></tr> <tr><td><code>SERVER_NAME</code></td> Loading @@ -265,8 +264,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" "<code>basic</code>")</td></tr> <tr><td><code>CONTENT_TYPE</code></td> <td>Le type de contenu de la réponse (non disponible à l'intérieur d'un bloc <directive><If ></directive>)</td></tr> disponible à l'intérieur d'un bloc <directive><If></directive>)</td></tr> <tr><td><code>HANDLER</code></td> <td>Le nom du <a href="handler.html">gestionnaire</a> qui a généré la réponse</td></tr> Loading @@ -281,8 +279,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" "<code>off</code>" dans le cas contraire</td></tr> <tr><td><code>REQUEST_STATUS</code></td> <td>Le code d'erreur HTTP de la requête (non disponible à l'intérieur d'un bloc <directive><If ></directive>)</td></tr> disponible à l'intérieur d'un bloc <directive><If></directive>)</td></tr> <tr><td><code>REQUEST_LOG_ID</code></td> <td>L'identifiant du message d'erreur associé à la requête (voir la directive <directive Loading Loading @@ -508,10 +505,14 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <td>Identique à <code>req</code>, mais aucun nom d'en-tête n'est ajouté à l'en-tête Vary</td><td></td></tr> <tr><td><code>resp</code></td> <td>Lit l'en-tête de réponse HTTP</td><td></td></tr> <td>Lit l'en-tête de réponse HTTP (La plupart des en-têtes de la réponse ne seront pas encore définis pendant le traitement de la directive <directive><If></directive>)</td><td></td></tr> <tr><td><code>reqenv</code></td> <td>Recherche une variable d'environnement de requête (on peut aussi utiliser le raccourci <code>v</code>).</td><td>ordonnancement</td></tr> peut aussi utiliser le raccourci <code>v</code>). </td> <td>ordonnancement</td></tr> <tr><td><code>osenv</code></td> <td>Recherche une variable d'environnement du système d'exploitation</td><td></td></tr> Loading docs/manual/howto/http2.xml.fr +81 −24 Original line number Diff line number Diff line <?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: 1798467:1834265 (outdated) --> <!-- English Revision: 1834265 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -29,12 +29,12 @@ <summary> <p>Ce document est le guide de l'utilisateur de l'implémentation de HTTP/2 dans Apache httpd. Cette fonctionnalité en est au stade de <em>production</em>, et les interfaces et directives devraient maintenant se stabiliser. dans Apache httpd. Cette fonctionnalité en est au stade <em>de production</em>, et les interfaces et directives devraient donc être dorénavant relativement stables. </p> </summary> <seealso><a href="../mod/mod_http2.html">mod_http2</a></seealso> <seealso><module>mod_http2</module></seealso> <section id="protocol"> <title>Le protocole HTTP/2</title> Loading Loading @@ -96,7 +96,7 @@ <section id="implementation"> <title>HTTP/2 dans Apache httpd</title> <p>Le protocole HTTP/2 est implémenté dans Apache httpd via un module propre, pertinemment nommé <a href="../mod/mod_http2.html">mod_http2</a>. Ce propre, pertinemment nommé <module>mod_http2</module>. Ce module implémente toutes les fonctionnalités décrites par la RFC 7540 et supporte les connexions en texte pur (http:), ou sécurisées (https:). La variante texte pur se nomme '<code>h2c</code>', et la variante sécurisée Loading @@ -109,9 +109,9 @@ <section id="building"> <title>Compilation de httpd avec le support de HTTP/2</title> <p><a href="../mod/mod_http2.html">mod_http2</a> se base sur la bibliothèque <p><module>mod_http2</module> se base sur la bibliothèque de <a href="https://nghttp2.org">nghttp2</a> pour son implémentation. Pour pouvoir compiler <code>mod_http2</code>, <code>libnghttp2</code> version pouvoir compiler <module>mod_http2</module>, <code>libnghttp2</code> version 1.2.1. ou supérieure doit être installée dans votre système.</p> <p>Pour déclencher la compilation de <code>mod_http2</code>, vous devez ajouter l'argument '<code>--enable-http2</code>' au script Loading @@ -124,7 +124,7 @@ préféreront lier statiquement <code>nghttp2</code> à ce module. Pour ce faire, utilisez l'argument <code>--enable-nghttp2-staticlib-deps</code>. Cette méthode est pratiquement la même que celle utilisée pour lier statiquement openssl à mod_ssl.</p> statiquement openssl à <module>mod_ssl</module>.</p> <p>En parlant de SSL, vous devez savoir que la plupart des navigateurs ne communiqueront en HTTP/2 que sur des URLs sécurisées de type <code>https:</code> ; votre serveur doit donc supporter SSL. Mais de plus, Loading @@ -137,7 +137,7 @@ <title>Configuration de base</title> <p>Maintenant que vous disposez d'un binaire <code>httpd</code> compilé avec le module <code>mod_http2</code>, l'activation de ce dernier nécessite un module <module>mod_http2</module>, l'activation de ce dernier nécessite un minimum de configuration supplémentaire. En premier lieu, comme pour tout module Apache, vous devez le charger :</p> <highlight language="config"> Loading Loading @@ -172,7 +172,7 @@ Protocols http/1.1 <note><title>Utilisez une chaîne d'algorithmes de chiffrement forte</title> <p>La directive <directive module="mod_ssl">SSLCipherSuite</directive> doit être définie avec une chaîne d'algorithmes de chiffrement TLS forte. Même si la version actuelle de mod_http2 n'impose pas d'algorithmes de chiffrement la version actuelle de <module>mod_http2</module> n'impose pas d'algorithmes de chiffrement particuliers, la plupart des clients le font. Faire pointer un navigateur vers un serveur où <code>h2</code> est activé avec une chaîne d'algorithmes de chiffrement inappropriée entraînera un rejet et une retrogradation vers Loading Loading @@ -209,11 +209,12 @@ ProtocolsHonorOrder Off <p>Avec cette directive, l'ordre des protocoles que <em>vous</em> avez défini devient caduque et seul l'ordre défini par le client sera pris en compte.</p> <p>Une dernière chose : les protocoles que vous définissez ne sont pas vérifiés quant à leurs validité ou orthographe. Vous pouvez très bien définir des protocoles qui n'existent pas, et il n'est donc pas nécessaire de filtrer les <code>Protocoles</code> avec des vérifications de type <code>IfModule</code>.</p> <p>Une dernière chose : les protocoles que vous définissez ne sont pas vérifiés quant à leurs validité ou orthographe. Vous pouvez très bien définir des protocoles qui n'existent pas, et il n'est donc pas nécessaire de filtrer le contenu de la directive <directive module="core">Protocols</directive> avec des vérifications de type <directive type="section" module="core">IfModule</directive>.</p> <p>Pour des conseils plus avancés à propos de la configuration, voir la <a href="../mod/mod_http2.html">Documentation de mod_http2</a>, et en particulier la section à propos de la <a Loading @@ -227,24 +228,24 @@ ProtocolsHonorOrder Off <title>Configuration du MPM</title> <p>Tous les modules multiprocessus (MPM) fournis avec httpd supportent HTTP/2. Cependant, si vous utilisez le MPM <code>prefork</code>, vous allez HTTP/2. Cependant, si vous utilisez le MPM <module>prefork</module>, vous allez faire face à de sévères restrictions.</p> <p>Avec le MPM <code>prefork</code>, <code>mod_http2</code> ne traitera <p>Avec le MPM <module>prefork</module>, <module>mod_http2</module> ne traitera qu'une requête à la fois par connexion alors que les clients tels que les navigateurs internet envoient de nombreuses requêtes au même moment. Si l'une d'entre elles est longue à traiter (ou implique une longue interrogation), les autres requêtes seront mises en attente.</p> <p>Par défaut, <code>mod_http2</code> ne passe pas outre cette limitation pour la simple et bonne raison que le MPM <code>prefork</code> n'est aujourd'hui <p>Par défaut, <module>mod_http2</module> ne passe pas outre cette limitation pour la simple et bonne raison que le MPM <module>prefork</module> n'est aujourd'hui choisi que si vous exécutez des moteurs de traitement qui ne sont pas préparés pour le multithreading (par exemple qui se crashent lorsque plusieurs requêtes arrivent).</p> <p>Si votre plateforme et votre installation de httpd le supportent, la meilleur solution consiste actuellement à utiliser le MPM <code>event</code>. <module>event</module>. </p> <p>Si vous n'avez pas d'autre choix que d'utiliser le MPM <code>prefork</code>, mais souhaitez tout de même traiter plusieurs requêtes <module>prefork</module>, mais souhaitez tout de même traiter plusieurs requêtes simultanément, vous pouvez jouer avec la directive <directive module="mod_http2">H2MinWorkers</directive>, sans garantie que cela fonctionne.</p> Loading Loading @@ -325,7 +326,7 @@ ProtocolsHonorOrder Off meilleur usage de cette fonctionnalité de HTTP/2 et tout le monde en est encore au stade de l'expérimentation. À ce titre, voici des conseils pour procéder vous-même à ces expérimentations :</p> <p><code>mod_http2</code> inspecte l'en-tête de la réponse et recherche les <p><module>mod_http2</module> inspecte l'en-tête de la réponse et recherche les en-têtes <code>Link</code> sous un certain format :</p> <highlight language="config"> Link </xxx.css>;rel=preload, </xxx.js>; rel=preload Loading Loading @@ -361,8 +362,64 @@ H2Push Off un stade très expérimental.</p> <p>L'<a href="https://tools.ietf.org/html/draft-ruellan-http-accept-push-policy-00"> en-tête Accept-Push-Policy</a> est un autre dispositif expérimental implémenté dans <code>mod_http2</code> ; il permet au client de définir pour 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> La fonctionnalité PUSH n'apportera pas toujours le gain de performances dans l'obtention de réponses aux requêtes. Vous trouverez plusieurs études sur ce sujet sur internet qui en expliquent les avantages et inconvénients et comment les particularités des clients et du réseau en influencent le fonctionnement. Par exemple, le seul fait que le serveur PUSHes une ressource n'implique pas forcément que le navigateur l'utilisera.</p> <p>Ce qui influence le plus la réponse PUSHed, c'est la requête qui a été simulée. En effet, l'URL de la requête pour un PUSH est fournie par l'application, mais d'où viennent les en-têtes ? Par exemple, La requête PUSH requiert-elle un en-tête <code>accept-language</code> et si oui, quelle sera sa valeur ?</p> <p>httpd va consulter la requête originale (celle qui a déclenché le PUSH) et copier les en-têtes suivants vers la requête PUSH : <code>user-agent</code>, <code>accept</code>, <code>accept-encoding</code>, <code>accept-language</code> et <code>cache-control</code>.</p> <p>Tous les autres en-têtes sont ignorés. Les cookies eux non plus ne seront pas copiés. PUSHer des ressources qui requièrent la présence d'un cookie ne fonctionnera pas. Ceci peut être sujet à débat, mais tant que ce ne sera pas clairement discuté avec les navigateurs, restons prudents et évitons d'exposer les cookies là où ils ne sont pas censés être visibles.</p> </section> <section id="earlyhints"> <title>Suggestions précoces</title> <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> <p>Pour utiliser cette fonctionnalité, vous devez l'activer explicitement sur le serveur via :</p> <highlight language="config"> H2EarlyHints on </highlight> <p>Elle n'est en effet pas activée par défaut car certains navigateurs anciens perdent pied avec de telles réponses.</p> <p>Une fois cette fonctionnalité activée, vous pouvez utiliser la directive <directive module="mod_http2">H2PushResource</directive> pour déclencher les suggestions précoces et les PUSHes de ressources :</p> <highlight language="config"> <Location /xxx.html> H2PushResource /xxx.css H2PushResource /xxx.js </Location> </highlight> <p>Le serveur enverra alors au client une réponse <code>"103 Early Hints"</code> dès qu'il <em>commencera</em> à traiter la requête. Selon votre application web, cet envoi peut intervenir beaucoup plus tôt que le moment où les premiers en-têtes de réponse auront été déterminés.</p> <p>Si <directive module="mod_http2">H2Push</directive> est activé, ceci déclenchera aussi le PUSH juste après la réponse 103. Mais si <directive module="mod_http2">H2Push</directive> n'est pas activé, la réponse 103 sera quand-même envoyée au client.</p> </section> </manualpage> docs/manual/mod/core.xml.fr +1 −1 Original line number Diff line number Diff line <?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: 1832623:1834777 (outdated) --> <!-- English Revision: 1834777 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading docs/manual/mod/mod_proxy.xml.fr +24 −9 Original line number Diff line number Diff line <?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: 1834093:1834524 (outdated) --> <!-- English Revision: 1834524 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -912,7 +912,8 @@ charge</description> charge des mandataires et aux membres des groupes de répartition de charge</description> <syntax>ProxySet <var>url</var> <var>clé=valeur [clé=valeur ...]</var></syntax> <contextlist><context>directory</context> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <compatibility>ProxySet n'est disponible que depuis la version 2.2 du serveur HTTP Apache.</compatibility> Loading Loading @@ -1625,16 +1626,20 @@ ProxyPass "/" "balancer://hotcluster/" <code>[P]</code>.</p> <p>Le mot-clé optionnel <var>interpolate</var>, en combinaison avec la directive <directive>ProxyPassInterpolateEnv</directive>, permet à ProxyPass <directive module="mod_proxy">ProxyPassInterpolateEnv</directive>, permet à ProxyPass d'interpoler les variables d'environnement à l'aide de la syntaxe <var>${VARNAME}</var>. Notez que de nombreuses variables d'environnement standard dérivées de CGI n'existeront pas lorsque l'interpolation se produit ; vous devrez alors encore avoir avoir recours à <module>mod_rewrite</module> pour des règles complexes. Notez aussi que l'interpolation n'est pas supportée dans la partie protocole d'une URL. La détermination dynamique du protocole peut être effectuée à l'aide de <module>mod_rewrite</module> comme dans l'exemple suivant :</p> complexes. Notez aussi que l'interpolation n'est supportée dans la partie protocole/hostname/port d'une URL que pour les variables qui sont disponibles au moment où la directive est interprétée (comme pour la directive <directive module="core">Define</directive>). La détermination dynamique de ces champs peut être effectuée à l'aide de <module>mod_rewrite</module>, et l'exemple suivant décrit comment utiliser <module>mod_rewrite</module> pour définir dynamiquement le protocole à http ou https :</p> <highlight language="config"> RewriteEngine On Loading Loading @@ -2309,8 +2314,18 @@ les configurations de mandataires inverses</description> de configuration par la valeur de la variable d'environnement <code>nom_var</code> (si l'option <var>interpolate</var> est spécifiée).</p> <p>Conservez cette directive à off (pour les performances du serveur), sauf si vous en avez réellement besoin.</p> <p>La partie protocole/hostname/port de <directive>ProxyPass</directive> peut contenir des variables, mais seulement celles qui sont accessibles au moment où la directive est interprétée (similairement à la directive <directive module="core">Define</directive>). Pour tous les autres cas, utilisez plutôt <module>mod_rewrite</module>.</p> <note type="warning"><title>Avertissement concernant les performances</title> <p>Laissez cette directive à off, à moins que vous n'en ayez réellemnt besoin ! Par exemple, ajouter des variables à <directive>ProxyPass</directive> peut entraîner l'utilisation des serveurs d'arrière-plan de mod_proxy configurés par défaut, et ceux-ci ne permettent pas un réglage fin comme la réutilisation des connexions, entre autres...).</p> </note> </usage> </directivesynopsis> Loading Loading
docs/manual/expr.xml.fr +10 −9 Original line number Diff line number Diff line <?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: 1796727:1834256 (outdated) --> <!-- English Revision: 1834256 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -240,8 +240,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <td>Le nom d'hôte de l'hôte distant</td></tr> <tr><td><code>REMOTE_USER</code></td> <td>Le nom de l'utilisateur authentifié, s'il existe (non disponible à l'intérieur d'un bloc <directive><If ></directive>)</td></tr> disponible à l'intérieur d'un bloc <directive><If></directive>)</td></tr> <tr><td><code>REMOTE_IDENT</code></td> <td>Le nom de l'utilisateur défini par <module>mod_ident</module></td></tr> <tr><td><code>SERVER_NAME</code></td> Loading @@ -265,8 +264,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" "<code>basic</code>")</td></tr> <tr><td><code>CONTENT_TYPE</code></td> <td>Le type de contenu de la réponse (non disponible à l'intérieur d'un bloc <directive><If ></directive>)</td></tr> disponible à l'intérieur d'un bloc <directive><If></directive>)</td></tr> <tr><td><code>HANDLER</code></td> <td>Le nom du <a href="handler.html">gestionnaire</a> qui a généré la réponse</td></tr> Loading @@ -281,8 +279,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" "<code>off</code>" dans le cas contraire</td></tr> <tr><td><code>REQUEST_STATUS</code></td> <td>Le code d'erreur HTTP de la requête (non disponible à l'intérieur d'un bloc <directive><If ></directive>)</td></tr> disponible à l'intérieur d'un bloc <directive><If></directive>)</td></tr> <tr><td><code>REQUEST_LOG_ID</code></td> <td>L'identifiant du message d'erreur associé à la requête (voir la directive <directive Loading Loading @@ -508,10 +505,14 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>" <td>Identique à <code>req</code>, mais aucun nom d'en-tête n'est ajouté à l'en-tête Vary</td><td></td></tr> <tr><td><code>resp</code></td> <td>Lit l'en-tête de réponse HTTP</td><td></td></tr> <td>Lit l'en-tête de réponse HTTP (La plupart des en-têtes de la réponse ne seront pas encore définis pendant le traitement de la directive <directive><If></directive>)</td><td></td></tr> <tr><td><code>reqenv</code></td> <td>Recherche une variable d'environnement de requête (on peut aussi utiliser le raccourci <code>v</code>).</td><td>ordonnancement</td></tr> peut aussi utiliser le raccourci <code>v</code>). </td> <td>ordonnancement</td></tr> <tr><td><code>osenv</code></td> <td>Recherche une variable d'environnement du système d'exploitation</td><td></td></tr> Loading
docs/manual/howto/http2.xml.fr +81 −24 Original line number Diff line number Diff line <?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: 1798467:1834265 (outdated) --> <!-- English Revision: 1834265 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -29,12 +29,12 @@ <summary> <p>Ce document est le guide de l'utilisateur de l'implémentation de HTTP/2 dans Apache httpd. Cette fonctionnalité en est au stade de <em>production</em>, et les interfaces et directives devraient maintenant se stabiliser. dans Apache httpd. Cette fonctionnalité en est au stade <em>de production</em>, et les interfaces et directives devraient donc être dorénavant relativement stables. </p> </summary> <seealso><a href="../mod/mod_http2.html">mod_http2</a></seealso> <seealso><module>mod_http2</module></seealso> <section id="protocol"> <title>Le protocole HTTP/2</title> Loading Loading @@ -96,7 +96,7 @@ <section id="implementation"> <title>HTTP/2 dans Apache httpd</title> <p>Le protocole HTTP/2 est implémenté dans Apache httpd via un module propre, pertinemment nommé <a href="../mod/mod_http2.html">mod_http2</a>. Ce propre, pertinemment nommé <module>mod_http2</module>. Ce module implémente toutes les fonctionnalités décrites par la RFC 7540 et supporte les connexions en texte pur (http:), ou sécurisées (https:). La variante texte pur se nomme '<code>h2c</code>', et la variante sécurisée Loading @@ -109,9 +109,9 @@ <section id="building"> <title>Compilation de httpd avec le support de HTTP/2</title> <p><a href="../mod/mod_http2.html">mod_http2</a> se base sur la bibliothèque <p><module>mod_http2</module> se base sur la bibliothèque de <a href="https://nghttp2.org">nghttp2</a> pour son implémentation. Pour pouvoir compiler <code>mod_http2</code>, <code>libnghttp2</code> version pouvoir compiler <module>mod_http2</module>, <code>libnghttp2</code> version 1.2.1. ou supérieure doit être installée dans votre système.</p> <p>Pour déclencher la compilation de <code>mod_http2</code>, vous devez ajouter l'argument '<code>--enable-http2</code>' au script Loading @@ -124,7 +124,7 @@ préféreront lier statiquement <code>nghttp2</code> à ce module. Pour ce faire, utilisez l'argument <code>--enable-nghttp2-staticlib-deps</code>. Cette méthode est pratiquement la même que celle utilisée pour lier statiquement openssl à mod_ssl.</p> statiquement openssl à <module>mod_ssl</module>.</p> <p>En parlant de SSL, vous devez savoir que la plupart des navigateurs ne communiqueront en HTTP/2 que sur des URLs sécurisées de type <code>https:</code> ; votre serveur doit donc supporter SSL. Mais de plus, Loading @@ -137,7 +137,7 @@ <title>Configuration de base</title> <p>Maintenant que vous disposez d'un binaire <code>httpd</code> compilé avec le module <code>mod_http2</code>, l'activation de ce dernier nécessite un module <module>mod_http2</module>, l'activation de ce dernier nécessite un minimum de configuration supplémentaire. En premier lieu, comme pour tout module Apache, vous devez le charger :</p> <highlight language="config"> Loading Loading @@ -172,7 +172,7 @@ Protocols http/1.1 <note><title>Utilisez une chaîne d'algorithmes de chiffrement forte</title> <p>La directive <directive module="mod_ssl">SSLCipherSuite</directive> doit être définie avec une chaîne d'algorithmes de chiffrement TLS forte. Même si la version actuelle de mod_http2 n'impose pas d'algorithmes de chiffrement la version actuelle de <module>mod_http2</module> n'impose pas d'algorithmes de chiffrement particuliers, la plupart des clients le font. Faire pointer un navigateur vers un serveur où <code>h2</code> est activé avec une chaîne d'algorithmes de chiffrement inappropriée entraînera un rejet et une retrogradation vers Loading Loading @@ -209,11 +209,12 @@ ProtocolsHonorOrder Off <p>Avec cette directive, l'ordre des protocoles que <em>vous</em> avez défini devient caduque et seul l'ordre défini par le client sera pris en compte.</p> <p>Une dernière chose : les protocoles que vous définissez ne sont pas vérifiés quant à leurs validité ou orthographe. Vous pouvez très bien définir des protocoles qui n'existent pas, et il n'est donc pas nécessaire de filtrer les <code>Protocoles</code> avec des vérifications de type <code>IfModule</code>.</p> <p>Une dernière chose : les protocoles que vous définissez ne sont pas vérifiés quant à leurs validité ou orthographe. Vous pouvez très bien définir des protocoles qui n'existent pas, et il n'est donc pas nécessaire de filtrer le contenu de la directive <directive module="core">Protocols</directive> avec des vérifications de type <directive type="section" module="core">IfModule</directive>.</p> <p>Pour des conseils plus avancés à propos de la configuration, voir la <a href="../mod/mod_http2.html">Documentation de mod_http2</a>, et en particulier la section à propos de la <a Loading @@ -227,24 +228,24 @@ ProtocolsHonorOrder Off <title>Configuration du MPM</title> <p>Tous les modules multiprocessus (MPM) fournis avec httpd supportent HTTP/2. Cependant, si vous utilisez le MPM <code>prefork</code>, vous allez HTTP/2. Cependant, si vous utilisez le MPM <module>prefork</module>, vous allez faire face à de sévères restrictions.</p> <p>Avec le MPM <code>prefork</code>, <code>mod_http2</code> ne traitera <p>Avec le MPM <module>prefork</module>, <module>mod_http2</module> ne traitera qu'une requête à la fois par connexion alors que les clients tels que les navigateurs internet envoient de nombreuses requêtes au même moment. Si l'une d'entre elles est longue à traiter (ou implique une longue interrogation), les autres requêtes seront mises en attente.</p> <p>Par défaut, <code>mod_http2</code> ne passe pas outre cette limitation pour la simple et bonne raison que le MPM <code>prefork</code> n'est aujourd'hui <p>Par défaut, <module>mod_http2</module> ne passe pas outre cette limitation pour la simple et bonne raison que le MPM <module>prefork</module> n'est aujourd'hui choisi que si vous exécutez des moteurs de traitement qui ne sont pas préparés pour le multithreading (par exemple qui se crashent lorsque plusieurs requêtes arrivent).</p> <p>Si votre plateforme et votre installation de httpd le supportent, la meilleur solution consiste actuellement à utiliser le MPM <code>event</code>. <module>event</module>. </p> <p>Si vous n'avez pas d'autre choix que d'utiliser le MPM <code>prefork</code>, mais souhaitez tout de même traiter plusieurs requêtes <module>prefork</module>, mais souhaitez tout de même traiter plusieurs requêtes simultanément, vous pouvez jouer avec la directive <directive module="mod_http2">H2MinWorkers</directive>, sans garantie que cela fonctionne.</p> Loading Loading @@ -325,7 +326,7 @@ ProtocolsHonorOrder Off meilleur usage de cette fonctionnalité de HTTP/2 et tout le monde en est encore au stade de l'expérimentation. À ce titre, voici des conseils pour procéder vous-même à ces expérimentations :</p> <p><code>mod_http2</code> inspecte l'en-tête de la réponse et recherche les <p><module>mod_http2</module> inspecte l'en-tête de la réponse et recherche les en-têtes <code>Link</code> sous un certain format :</p> <highlight language="config"> Link </xxx.css>;rel=preload, </xxx.js>; rel=preload Loading Loading @@ -361,8 +362,64 @@ H2Push Off un stade très expérimental.</p> <p>L'<a href="https://tools.ietf.org/html/draft-ruellan-http-accept-push-policy-00"> en-tête Accept-Push-Policy</a> est un autre dispositif expérimental implémenté dans <code>mod_http2</code> ; il permet au client de définir pour 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> La fonctionnalité PUSH n'apportera pas toujours le gain de performances dans l'obtention de réponses aux requêtes. Vous trouverez plusieurs études sur ce sujet sur internet qui en expliquent les avantages et inconvénients et comment les particularités des clients et du réseau en influencent le fonctionnement. Par exemple, le seul fait que le serveur PUSHes une ressource n'implique pas forcément que le navigateur l'utilisera.</p> <p>Ce qui influence le plus la réponse PUSHed, c'est la requête qui a été simulée. En effet, l'URL de la requête pour un PUSH est fournie par l'application, mais d'où viennent les en-têtes ? Par exemple, La requête PUSH requiert-elle un en-tête <code>accept-language</code> et si oui, quelle sera sa valeur ?</p> <p>httpd va consulter la requête originale (celle qui a déclenché le PUSH) et copier les en-têtes suivants vers la requête PUSH : <code>user-agent</code>, <code>accept</code>, <code>accept-encoding</code>, <code>accept-language</code> et <code>cache-control</code>.</p> <p>Tous les autres en-têtes sont ignorés. Les cookies eux non plus ne seront pas copiés. PUSHer des ressources qui requièrent la présence d'un cookie ne fonctionnera pas. Ceci peut être sujet à débat, mais tant que ce ne sera pas clairement discuté avec les navigateurs, restons prudents et évitons d'exposer les cookies là où ils ne sont pas censés être visibles.</p> </section> <section id="earlyhints"> <title>Suggestions précoces</title> <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> <p>Pour utiliser cette fonctionnalité, vous devez l'activer explicitement sur le serveur via :</p> <highlight language="config"> H2EarlyHints on </highlight> <p>Elle n'est en effet pas activée par défaut car certains navigateurs anciens perdent pied avec de telles réponses.</p> <p>Une fois cette fonctionnalité activée, vous pouvez utiliser la directive <directive module="mod_http2">H2PushResource</directive> pour déclencher les suggestions précoces et les PUSHes de ressources :</p> <highlight language="config"> <Location /xxx.html> H2PushResource /xxx.css H2PushResource /xxx.js </Location> </highlight> <p>Le serveur enverra alors au client une réponse <code>"103 Early Hints"</code> dès qu'il <em>commencera</em> à traiter la requête. Selon votre application web, cet envoi peut intervenir beaucoup plus tôt que le moment où les premiers en-têtes de réponse auront été déterminés.</p> <p>Si <directive module="mod_http2">H2Push</directive> est activé, ceci déclenchera aussi le PUSH juste après la réponse 103. Mais si <directive module="mod_http2">H2Push</directive> n'est pas activé, la réponse 103 sera quand-même envoyée au client.</p> </section> </manualpage>
docs/manual/mod/core.xml.fr +1 −1 Original line number Diff line number Diff line <?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: 1832623:1834777 (outdated) --> <!-- English Revision: 1834777 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading
docs/manual/mod/mod_proxy.xml.fr +24 −9 Original line number Diff line number Diff line <?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: 1834093:1834524 (outdated) --> <!-- English Revision: 1834524 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> Loading Loading @@ -912,7 +912,8 @@ charge</description> charge des mandataires et aux membres des groupes de répartition de charge</description> <syntax>ProxySet <var>url</var> <var>clé=valeur [clé=valeur ...]</var></syntax> <contextlist><context>directory</context> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context> </contextlist> <compatibility>ProxySet n'est disponible que depuis la version 2.2 du serveur HTTP Apache.</compatibility> Loading Loading @@ -1625,16 +1626,20 @@ ProxyPass "/" "balancer://hotcluster/" <code>[P]</code>.</p> <p>Le mot-clé optionnel <var>interpolate</var>, en combinaison avec la directive <directive>ProxyPassInterpolateEnv</directive>, permet à ProxyPass <directive module="mod_proxy">ProxyPassInterpolateEnv</directive>, permet à ProxyPass d'interpoler les variables d'environnement à l'aide de la syntaxe <var>${VARNAME}</var>. Notez que de nombreuses variables d'environnement standard dérivées de CGI n'existeront pas lorsque l'interpolation se produit ; vous devrez alors encore avoir avoir recours à <module>mod_rewrite</module> pour des règles complexes. Notez aussi que l'interpolation n'est pas supportée dans la partie protocole d'une URL. La détermination dynamique du protocole peut être effectuée à l'aide de <module>mod_rewrite</module> comme dans l'exemple suivant :</p> complexes. Notez aussi que l'interpolation n'est supportée dans la partie protocole/hostname/port d'une URL que pour les variables qui sont disponibles au moment où la directive est interprétée (comme pour la directive <directive module="core">Define</directive>). La détermination dynamique de ces champs peut être effectuée à l'aide de <module>mod_rewrite</module>, et l'exemple suivant décrit comment utiliser <module>mod_rewrite</module> pour définir dynamiquement le protocole à http ou https :</p> <highlight language="config"> RewriteEngine On Loading Loading @@ -2309,8 +2314,18 @@ les configurations de mandataires inverses</description> de configuration par la valeur de la variable d'environnement <code>nom_var</code> (si l'option <var>interpolate</var> est spécifiée).</p> <p>Conservez cette directive à off (pour les performances du serveur), sauf si vous en avez réellement besoin.</p> <p>La partie protocole/hostname/port de <directive>ProxyPass</directive> peut contenir des variables, mais seulement celles qui sont accessibles au moment où la directive est interprétée (similairement à la directive <directive module="core">Define</directive>). Pour tous les autres cas, utilisez plutôt <module>mod_rewrite</module>.</p> <note type="warning"><title>Avertissement concernant les performances</title> <p>Laissez cette directive à off, à moins que vous n'en ayez réellemnt besoin ! Par exemple, ajouter des variables à <directive>ProxyPass</directive> peut entraîner l'utilisation des serveurs d'arrière-plan de mod_proxy configurés par défaut, et ceux-ci ne permettent pas un réglage fin comme la réutilisation des connexions, entre autres...).</p> </note> </usage> </directivesynopsis> Loading