diff options
author | Lucien Gentis <lgentis@apache.org> | 2010-12-29 16:43:54 +0100 |
---|---|---|
committer | Lucien Gentis <lgentis@apache.org> | 2010-12-29 16:43:54 +0100 |
commit | 15c4eb2d4017d1152b4af5c6b609ac3d0ba84386 (patch) | |
tree | c09757442d3c06a8d22f4623826ccd8d8168235a /docs/manual | |
parent | * Fix r1039304 and make the patch similar to the one proposed for (diff) | |
download | apache2-15c4eb2d4017d1152b4af5c6b609ac3d0ba84386.tar.xz apache2-15c4eb2d4017d1152b4af5c6b609ac3d0ba84386.zip |
Updates.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1053655 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual')
-rw-r--r-- | docs/manual/env.xml.fr | 42 | ||||
-rw-r--r-- | docs/manual/howto/cgi.xml.fr | 22 | ||||
-rw-r--r-- | docs/manual/mod/core.xml.fr | 181 | ||||
-rw-r--r-- | docs/manual/mod/mod_headers.xml | 2 | ||||
-rw-r--r-- | docs/manual/mod/mod_headers.xml.fr | 52 | ||||
-rw-r--r-- | docs/manual/new_features_2_4.xml.fr | 15 | ||||
-rw-r--r-- | docs/manual/vhosts/details.xml.fr | 399 | ||||
-rw-r--r-- | docs/manual/vhosts/examples.xml.fr | 53 | ||||
-rw-r--r-- | docs/manual/vhosts/index.xml.fr | 3 | ||||
-rw-r--r-- | docs/manual/vhosts/name-based.xml.fr | 83 |
10 files changed, 346 insertions, 506 deletions
diff --git a/docs/manual/env.xml.fr b/docs/manual/env.xml.fr index 5508ca3833..ceaa626c41 100644 --- a/docs/manual/env.xml.fr +++ b/docs/manual/env.xml.fr @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?> -<!-- English revision : 1001639 --> +<!-- English revision : 1053353 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> @@ -151,6 +151,15 @@ seront remplacés par un caractère "sousligné" quand ils seront transmis aux scripts CGI et aux pages SSI.</li> + <li>Les contenus d'en-têtes HTTP transmis aux scripts de type + CGI ou autre via des variables d'environnement constituent un + cas particulier (voir plus loin). Leur nom est converti en + majuscules et seuls les tirets sont remplacés par des + caractères '_' ("souligné") ; si le format du nom de l'en-tête + n'est pas valide, celui-ci est ignoré. Voir <a + href="#fixheader">plus loin</a> pour une solution de + contournement du problème.</li> + <li>La directive <directive module="mod_env">SetEnv</directive> s'exécute assez tard au cours du traitement de la requête, ce qui signifie que des @@ -449,6 +458,37 @@ <section id="examples"> <title>Exemples</title> + <section id="fixheader"> + <title>Transmission du contenu d'en-têtes non valides aux scripts + CGI</title> + + <p>Avec la version 2.4, Apache est plus strict avec la conversion + des en-têtes HTTP en variables d'environnement dans + <module>mod_cgi</module> et d'autres modules : dans les versions + précédentes, tout caractère invalide dans les noms d'en-têtes + était tout simplement remplacé par un caractère '_', ce qui + pouvait exposer à des attaques de type cross-site-scripting via + injection d'en-têtes (voir <a + href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html">Bogues + du Web inhabituelles</a>, planche 19/20).</p> + + <p>Si vous devez supporter un client qui envoie des en-têtes non + conformes et si ceux-ci ne peuvent pas être corrigés, il existe + une solution de contournement simple mettant en jeu les modules + <module>mod_setenvif</module> et <module>mod_header</module>, + et permettant de prendre en compte ces en-têtes :</p> + +<example><pre> +# +# L'exemple suivant montre comment prendre en compte un en-tête +# Accept_Encoding non conforme envoyé par un client. +# +SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1 +RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding +</pre></example> + + </section> + <section id="misbehaving"> <title>Modification du comportement protocolaire face à des clients réagissant de manière non conforme</title> diff --git a/docs/manual/howto/cgi.xml.fr b/docs/manual/howto/cgi.xml.fr index f78b069c36..38b9e26466 100644 --- a/docs/manual/howto/cgi.xml.fr +++ b/docs/manual/howto/cgi.xml.fr @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision : 1031597 --> +<!-- English Revision : 1053353 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> @@ -381,10 +381,6 @@ <p>Assurez-vous qu'il s'agit bien du chemin correct vers l'interpréteur.</p> - <p>De plus, si votre programme CGI dépend d'autres <a - href="#env">variables d'environnement</a>, vous devrez vous - assurer qu'elles lui sont bien transmises par Apache.</p> - <note type="warning"> Lors de l'édition de scripts CGI sous Windows, il se peut que des caractères de fin de ligne soient ajoutés au chemin de @@ -395,6 +391,22 @@ faisant partie du nom de fichier de l'interpréteur. </note> + </section> + + <section id="missingenv"> + <title>Variables d'environnement manquantes</title> + + <p>Si votre programme CGI dépend de <a href="#env">variables + d'environnement</a> non standards, vous devrez vous assurez que + ces variables lui sont bien transmises par Apache.</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> + </section> <section id="syntaxerrors"> diff --git a/docs/manual/mod/core.xml.fr b/docs/manual/mod/core.xml.fr index d09db31a1b..2546a38070 100644 --- a/docs/manual/mod/core.xml.fr +++ b/docs/manual/mod/core.xml.fr @@ -1,7 +1,7 @@ <?xml version="1.0"?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision : 1052419 --> +<!-- English Revision : 1053375 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> @@ -677,7 +677,7 @@ host</context> </indent> </Directory><br /> <br /> - <Directory /home/><br /> + <Directory /home><br /> <indent> AllowOverride FileInfo<br /> </indent> @@ -2091,11 +2091,9 @@ possible depuis les versions 2.3.2 et supérieures d'Apache httpd</compati est élévé, plus nombreux seront les processus serveur en attente de requêtes de la part de clients inactifs.</p> - <p>Dans un contexte de serveur virtuel à base de nom, c'est le délai - du premier serveur virtuel défini (le serveur par défaut) parmi un - ensemble de directives <directive - module="core">NameVirtualHost</directive> qui sera utilisé. Les - autres valeurs seront ignorées.</p> + <p>Dans un contexte de serveur virtuel à base de nom, c'est + la valeur de la paire adresse IP/port du serveur virtuel qui + correspond le mieux qui sera utilisée.</p> </usage> </directivesynopsis> @@ -2363,8 +2361,7 @@ requête HTTP</description> <note type="warning"><title>Avertissement</title> <p>Dans le cas des serveurs virtuels à base de noms, la valeur de cette directive est extraite du serveur virtuel par défaut (le - premier de la liste) pour lequel la connexion correspondait à la - directive <directive>NameVirtualHost</directive>.</p> + premier de la liste) pour la paire adresse IP/port.</p> </note> </usage> @@ -2410,10 +2407,9 @@ requête HTTP</description> <note type="warning"><title>Avertissement</title> <p>Dans le cas des serveurs virtuels à base de noms, la valeur de cette directive est extraite du serveur virtuel par défaut (le - premier de la liste) pour lequel la connexion correspondait à la - directive <directive>NameVirtualHost</directive>.</p> + premier de la liste) pour lequel la paire adresse IP/port + correspond le mieux.</p> </note> - </usage> </directivesynopsis> @@ -2457,8 +2453,8 @@ HTTP</description> <note type="warning"><title>Avertissement</title> <p>Dans le cas des serveurs virtuels à base de noms, la valeur de cette directive est extraite du serveur virtuel par défaut (le - premier de la liste) pour lequel la connexion correspondait à la - directive <directive>NameVirtualHost</directive>.</p> + premier de la liste) pour lequel la paire adresse IP/port + correspond le mieux.</p> </note> </usage> @@ -3083,7 +3079,7 @@ verrou pour tous les mutex ou seulement les mutex spécifiés</descr sera <code>/var/httpd/locks/mpm-accept.12345</code>.</p> <note type="warning"><title>Sécurité</title> - <p>Il est déconseillé d'<em>éviter</em> de placer les fichiers mutex + <p>Il est conseillé d'<em>éviter</em> de placer les fichiers mutex dans un répertoire où tout le monde peut écrire comme <code>/var/tmp</code>, car quelqu'un pourrait initier une attaque par déni de service et empêcher le serveur de démarrer en créant un @@ -3175,86 +3171,15 @@ nom</description> <usage> -<p>Une seule directive <directive>NameVirtualHost</directive> permet -d'identifier un ensemble de serveurs virtuels identiques que le serveur -va sélectionner en fonction du <em>nom d'hôte</em> spécifié par le -client. La directive <directive>NameVirtualHost</directive> est -obligatoire si vous souhaitez configurer des <a -href="../vhosts/">serveurs virtuels à base de nom</a>.</p> - -<p>Cette directive, ainsi que les directives <directive ->VirtualHost</directive> correspondantes, <em>doit</em> comporter un -numéro de port si le serveur supporte les connexions HTTP et HTTPS.</p> - -<p>Bien que <var>adresse</var> puisse contenir un nom d'hôte, il est -recommandé d'utiliser plutôt une adresse IP ou un nom d'hôte avec -caractères génériques. Une directive NameVirtualHost contenant des -caractères génériques ne peut correspondre qu'à des serveurs virtuels -qui contiennent aussi des caractères génériques dans leur argument.</p> - -<p>Dans les cas où un pare-feu ou autre mandataire reçoit les requêtes -et les redirige sous une adresse IP différente vers le serveur, vous -devez spécifier l'adresse IP de l'interface physique de la machine qui -va servir les requêtes.</p> - -<p>Dans l'exemple ci-dessous, les requêtes reçues sur l'interface -192.0.2.1 et le port 80 ne vont déclencher une sélection que parmi les -deux premiers serveurs virtuels. Les requêtes reçues sur le port 80 et -sur toute interface ne vont déclencher une sélection que parmi les -troisième et quatrième serveurs virtuels. D'une manière générale, -lorsque l'interface ne constitue pas un critère important de sélection, -la valeur "*:80" suffit pour les directives NameVirtualHost et -VirtualHost.</p> - -<example> - NameVirtualHost 192.0.2.1:80<br /> - NameVirtualHost *:80<br /><br /> - - <VirtualHost 192.0.2.1:80><br /> - ServerName namebased-a.example.com<br /> - </VirtualHost><br /> - <br /> - <VirtualHost 192.0.2.1:80><br /> - Servername namebased-b.example.com<br /> - </VirtualHost><br /> - <br /> - <VirtualHost *:80><br /> - ServerName namebased-c.example.com <br /> - </VirtualHost><br /> - <br /> - <VirtualHost *:80><br /> - ServerName namebased-d.example.com <br /> - </VirtualHost><br /> - <br /> - - </example> - - <p>Si aucun serveur virtuel ne correspond, c'est le premier serveur - virtuel correspondant à l'adresse IP qui sera utilisé.</p> - - <p>Les adresses IPv6 doivent être entourées de crochets, comme dans - l'exemple suivant :</p> - - <example> - NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 - </example> - - - - <note><title>Argument de la directive <directive - type="section">VirtualHost</directive></title> - <p>Notez que l'argument de la directive <directive - type="section">VirtualHost</directive> doit être identique à - l'argument de la directive <directive - >NameVirtualHost</directive>.</p> - - <example> - NameVirtualHost 192.0.2.2:80<br /> - <VirtualHost 192.0.2.2:80><br /> - # ...<br /> - </VirtualHost><br /> - </example> - </note> + <p>Avant la version 2.3.11, il était nécessaire de définir une + directive <directive>NameVirtualHost</directive> pour indiquer au + serveur qu'une paire adresse IP/port particulière pouvait être + utilisée comme serveur virtuel à base de nom. Depuis la version + 2.3.11, chaque fois qu'une paire adresse IP/port est utilisée dans + plusieurs serveurs virtuels, l'hébergement virtuel à base de nom est + automatiquement activé pour cette adresse.</p> + + <p>Cette directive n'a actuellement plus aucun effet.</p> </usage> <seealso><a href="../vhosts/">Documentation sur les serveurs @@ -3387,11 +3312,12 @@ host</context> <code>-</code> est supprimée de la liste des options courantes de la même manière.</p> - <note type="warning"><title>Avertissement</title> + <note><title>Note</title> <p>Mélanger des <directive>Options</directive> avec <code>+</code> ou <code>-</code> avec des <directive>Options</directive> sans <code>+</code> ou <code>-</code> constitue une erreur de syntaxe, et - peut résulter en des comportements inattendus.</p> + la vérification de la syntaxe au cours du démarrage du serveur fera + échouer ce dernier.</p> </note> <p>Par exemple, sans aucun symbole <code>+</code> et <code>-</code> @@ -3869,7 +3795,6 @@ le serveur HTTP Apache</a></seealso> du serveur HTTP Apache</a></seealso> <seealso><directive module="core">UseCanonicalName</directive></seealso> <seealso><directive module="core">UseCanonicalPhysicalPort</directive></seealso> -<seealso><directive module="core">NameVirtualHost</directive></seealso> <seealso><directive module="core">ServerAlias</directive></seealso> </directivesynopsis> @@ -4382,7 +4307,8 @@ d'hôte spécifique ou à une adresse IP</description> pour un document hébergé par un serveur virtuel particulier, il applique les directives de configuration rassemblées dans la section <directive type="section">VirtualHost</directive>. <var>adresse - IP</var> peut être :</p> + IP</var> peut être une des entités suivantes, éventuellement suivies + d'un caractère ':' et d'un numéro de port (ou *) :</p> <ul> <li>L'adresse IP du serveur virtuel ;</li> @@ -4390,18 +4316,16 @@ d'hôte spécifique ou à une adresse IP</description> <li>Un nom de domaine entièrement qualifié correspondant à l'adresse IP du serveur virtuel (non recommandé) ;</li> - <li>Le caractère <code>*</code>, qui n'est utilisé qu'en - combinaison avec <code>NameVirtualHost *</code> pour intercepter - toutes les adresses IP ; ou</li> + <li>Le caractère <code>*</code>, qui agit comme un + caractère générique, et correspond à toute adresse IP.</li> + + <li>La chaîne <code>_default_</code>, dont la signification est + identique à celle du caractère <code>*</code></li> - <li>La chaîne de caractères <code>_default_</code>, qui n'est - utilisée qu'avec l'hébergement virtuel à base d'adresse IP pour - intercepter les adresses IP qui ne correspondent à aucun serveur - virtuel.</li> </ul> <example><title>Exemple</title> - <VirtualHost 10.1.2.3><br /> + <VirtualHost 10.1.2.3:80><br /> <indent> ServerAdmin webmaster@host.example.com<br /> DocumentRoot /www/docs/host.example.com<br /> @@ -4419,7 +4343,7 @@ d'hôte spécifique ou à une adresse IP</description> :</p> <example> - <VirtualHost [2001:db8::a00:20ff:fea7:ccea]><br /> + <VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80><br /> <indent> ServerAdmin webmaster@host.example.com<br /> DocumentRoot /www/docs/host.example.com<br /> @@ -4445,25 +4369,7 @@ d'hôte spécifique ou à une adresse IP</description> dans la liste des adresses précisées par la directive <directive module="mpm_common">Listen</directive>.</p> </note> - - <p>Avec l'hébergement virtuel à base d'adresse IP, on peut utiliser - le nom spécial <code>_default_</code>, auquel cas le serveur virtuel - considéré interceptera toute adresse IP qui n'est pas explicitement - associée à un autre serveur virtuel. En l'absence de serveur virtuel - associé à <code>_default_</code>, et si l'adresse IP demandée ne - correspond à aucun serveur virtuel, c'est la configuration du - serveur "principal" qui sera utilisée, c'est à dire l'ensemble des - définitions situées en dehors de toute section VirtualHost.</p> - - <p>Vous pouvez spécifier <code>:port</code> pour modifier le port du - serveur virtuel. S'il n'est pas spécifié, sa valeur par défaut - correspond à celle qui est définie par la dernière directive - <directive module="mpm_common">Listen</directive> du serveur - principal. Vous pouvez aussi spécifier <code>:*</code> pour accepter - tous les ports associés à l'adresse du serveur virtuel (c'est une - configuration recommandée lorsqu'on utilise - <code>_default_</code>).</p> - + <p>Tout bloc <directive type="section">VirtualHost</directive> doit comporter une directive <directive module="core">ServerName</directive>. Dans le cas @@ -4471,10 +4377,23 @@ d'hôte spécifique ou à une adresse IP</description> <directive module="core">ServerName</directive> issue de la configuration du serveur principal.</p> - <p>Si aucun serveur virtuel ne correspond, c'est le premier serveur - virtuel correspondant à l'adresse IP qui sera utilisé. Par - conséquent, le premier serveur virtuel défini est le serveur virtuel - par défaut.</p> + <p>A l'arrivée d'une requête, le serveur tente de la + faire prendre en compte par la section <directive + type="section">VirtualHost</directive> qui correspond le mieux en ne + se basant que sur la paire adresse IP/port. Les chaînes sans + caractères génériques l'emportent sur celles qui en contiennent. Si + aucune correspondance du point de vue de l'adresse IP/port n'est + trouvée, c'est la configuration du serveur "principal" qui sera + utilisée.</p> + + <p>Si plusieurs serveurs virtuels correspondent du point de vue de + l'adresse IP/port, le serveur sélectionne celui qui correspond le + mieux du point de vue du nom d'hôte de la requête. Si aucune + correspondance du point de vue du nom d'hôte n'est trouvée, c'est le + premier serveur virtuel dont l'adresse IP/port correspond qui sera + utilisé. Par voie de conséquence, le premier serveur virtuel + comportant une certaine paire adresse IP/port est le serveur virtuel + par défaut pour cette paire adresse IP/port.</p> <note type="warning"><title>Sécurité</title> <p>Voir le document sur les <a diff --git a/docs/manual/mod/mod_headers.xml b/docs/manual/mod/mod_headers.xml index 5b5076fdce..db3c64e5c7 100644 --- a/docs/manual/mod/mod_headers.xml +++ b/docs/manual/mod/mod_headers.xml @@ -299,8 +299,8 @@ headers</description> <var>header</var> [<var>value</var>] [early|env=[!]<var>variable</var>]</syntax> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> -<compatibility>Default condition was temporarily changed to "always" in 2.3.9 and 2.3.10</compatibility> <override>FileInfo</override> +<compatibility>Default condition was temporarily changed to "always" in 2.3.9 and 2.3.10</compatibility> <usage> <p>This directive can replace, merge or remove HTTP response diff --git a/docs/manual/mod/mod_headers.xml.fr b/docs/manual/mod/mod_headers.xml.fr index 12815f928c..675b13f2af 100644 --- a/docs/manual/mod/mod_headers.xml.fr +++ b/docs/manual/mod/mod_headers.xml.fr @@ -1,7 +1,7 @@ <?xml version="1.0"?> <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision : 1031670 --> +<!-- English Revision : 1053526 --> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> @@ -328,8 +328,8 @@ tardif</title> <contextlist><context>server config</context><context>virtual host</context> <context>directory</context><context>.htaccess</context></contextlist> <override>FileInfo</override> -<compatibility>La condition par défaut passe de "onsuccess" à "always" à -partir de la version 2.3.9</compatibility> +<compatibility>La condition par défaut est temporairement passée +à "always" dans les version 2.3.9 et 2.3.10</compatibility> <usage> <p>Cette directive permet de remplacer, fusionner, ou @@ -338,20 +338,38 @@ partir de la version 2.3.9</compatibility> s'exécutent, ce qui permet la modification des en-têtes sortants.</p> - <p>A partir de la version 2.3.9, la condition par défaut est - "always", ce qui implique que cette directive agit sans tenir compte - du code d'état de la réponse. Dans les versions 2.3.8 et - antérieures, "onsuccess" était la condition par défaut, ce qui - impliquait que les en-têtes n'étaient modifiés que pour les réponses - avec code d'état <code>2<var>xx</var></code>.</p> - - <p>Une valeur effective <code>always</code> peut être nécessaire - pour forcer la définition des en-têtes par certains modules internes - (tels que <module>mod_cgi</module>), même dans le cas de réponses - positives, et doit toujours être présente pour modifier les réponses avec un code - d'état autre que <code>2<var>xx</var></code>, comme les redirections - ou les erreurs clients.</p> - + <p>L'argument optionnel <var>condition</var> permet de déterminer + sur quelle table interne d'en-têtes de réponses cette directive va + opérer. D'autres composants du serveur peuvent avoir stocké leurs + en-têtes de réponses dans la table correspondant à + <code>onsuccess</code> ou dans celle correspondant à + <code>always</code>. Dans ce contexte, "Always" fait référence au + choix d'envoyer les en-têtes que vous ajoutez aux réponses, qu'elle + soient avec succès ou échouées ; par contre, si votre action est une + fonction d'un en-tête existant, vous devrez lire la documentation de + manière plus approfondie car dans ce cas, les choses se compliquent.</p> + + <p>Vous pouvez avoir à changer la valeur par défaut + <code>onsuccess</code> en <code>always</code> dans des circonstances + similaires à celles exposées plus loin. Notez aussi que la répétition + de cette directive avec les deux conditions peut être pertinente + dans certains scénarios, car <code>always</code> n'englobe pas + <code>onsuccess</code> en ce qui concerne les en-têtes existants :</p> + + <ul> + <li>Vous ajoutez un en-tête à une réponse échouée (non-2xx), + une redirection par exemple, et dans ce cas, seule la table + correspondant à <code>always</code> est utilisée dans la réponse + définitive.</li> + <li>Vous modifiez ou supprimez un en-tête généré par un script + CGI, et dans ce cas, les scripts CGI sont dans la table + correspondant à <code>always</code> et non dans la table par + défaut.</li> + <li>Vous modifiez ou supprimez un en-tête généré par tel ou tel + composant du serveur, mais cet en-tête n'est pas trouvé par la + condition par défaut <code>onsuccess</code>.</li> + </ul> + <p>L'action que cette directive provoque est déterminée par le premier argument (ou par le second argument si une <var>condition</var> est spécifiée). Il peut prendre diff --git a/docs/manual/new_features_2_4.xml.fr b/docs/manual/new_features_2_4.xml.fr index 7688bf6b8e..0d70c283d4 100644 --- a/docs/manual/new_features_2_4.xml.fr +++ b/docs/manual/new_features_2_4.xml.fr @@ -3,7 +3,7 @@ <?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?> <!-- French translation : Lucien GENTIS --> <!-- Reviewed by : Vincent Deffontaines --> -<!-- English Revision : 1037335 --> +<!-- English Revision : 1053353 --> <!-- Licensed to the Apache Software Foundation (ASF) under one or more @@ -126,10 +126,21 @@ serveur HTTP Apache</title> HTTP sans interférer avec l'authentification et l'autorisation.</dd> <dt><module>mod_include</module></dt> - <dd>Support de l'attribut 'onerror' dans un élément 'include', permettant de servir un message d'erreur personnalisé à la place du message d'erreur par défaut.</dd> + + <dt><module>mod_cgi</module>, <module>mod_include</module>, + <module>mod_isapi</module>, ...</dt> + <dd>La traduction des en-têtes en variables d'environnement est + plus stricte qu'avant, ce qui permet de diminuer l'exposition aux attaques + de type cross-site-scripting via injection d'en-têtes. Les + en-têtes contenant des caractères invalides (comme les caractères + de soulignement) sont maintenant ignorés. Le document <a + href="env.html">Les variables d'environnement dans Apache</a> + présentent quelques pistes pour contourner ce problème avec les + clients anciens qui nécessitent de tels en-têtes (Ceci affecte + tous les modules qui utilisent ces variables d'environnement).</dd> </dl> </section> diff --git a/docs/manual/vhosts/details.xml.fr b/docs/manual/vhosts/details.xml.fr index 4e8faf5df0..b7150ea5d5 100644 --- a/docs/manual/vhosts/details.xml.fr +++ b/docs/manual/vhosts/details.xml.fr @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='ISO-8859-1' ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision: 420990:1053231 (outdated) --> +<!-- English Revision: 1053231 --> <!-- French translation by Vincent Deffontaines, review by alain B --> <!-- Updated by Lucien Gentis --> @@ -28,160 +28,95 @@ <summary> - <p>Le code gérant les serveurs virtuels a été réécrit à partir de - zéro dans <strong>Apache 1.3</strong>. Ce document vise à expliquer - dans le détail comment Apache procède lors du choix de l'utilisation - d'un serveur virtuel en fonction d'une requête reçue. L'apparition - de la directive <directive module="core">NameVirtualHost</directive> - a rendu beaucoup plus facile et plus sûre la configuration des - serveurs virtuels par rapport aux versions précédant la 1.3.</p> + <p>Ce document vise à expliquer dans le détail comment le serveur + HTTP Apache procède lors du choix de l'utilisation + d'un serveur virtuel en fonction d'une requête reçue.</p> - <p>Si vous voulez juste <cite>que ça marche</cite> sans en - comprendre le fonctionnement, voici <a href="examples.html">quelques - exemples</a>.</p> + <p>Il est recommandé de lire la documentation<a href="name-based.html#namevip"> + Serveurs virtuels à base de nom et serveurs virtuels à base + d'adresse IP</a> pour déterminer quel type de serveur virtuel nous + convient le mieux, puis de lire les documentations <a + href="name-based.html">serveurs virtuels à base de nom</a> ou <a + href="ip-based.html">serveurs virtuels à base d'adresse IP</a>, et enfin + d'étudier <a href="examples.html">quelques exemples</a>.</p> + + <p>Si vous voulez entrer dans les détails, vous pouvez revenir vers + cette page.</p> </summary> -<section id="configparsing"><title>Interprétation des fichiers -de configuration</title> +<seealso><a href="ip-based.html">Support des serveurs virtuels à base +d'adresse IP</a></seealso> +<seealso><a href="name-based.html">Support des serveurs virtuels à base +de nom</a></seealso> +<seealso><a href="examples.html">Exemples de serveurs virtuels pour une +configuration courante</a></seealso> +<seealso><a href="mass.html">Hébergement virtuel de masse configuré +dynamiquement</a></seealso> + + +<section id="configparsing"><title>Fichier de configuration</title> <p>Un <em>serveur principal (main_server)</em> contient toutes les définitions qui apparaissent en dehors des sections - <code><VirtualHost></code>. Les serveurs virtuels, aussi + <code><VirtualHost></code>.</p> + + <p>Les serveurs virtuels, aussi appelés <em>vhosts</em> (pour virtual hosts), sont définis par les sections <directive type="section" module="core">VirtualHost</directive>.</p> - <p>Les directives - <directive module="mpm_common">Listen</directive>, - <directive module="core">ServerName</directive>, - <directive module="core">ServerPath</directive>, - et <directive module="core">ServerAlias</directive> - peuvent être placées n'importe où dans le cadre de définition d'un - serveur. Cependant, chaque fois que l'une d'elles est lue, elle écrase - ses instances précédentes (dans le contexte du même serveur).</p> - - <p>La valeur par défaut du champ <code>Listen</code> pour le serveur - principal est de 80. Le serveur principal n'a pas de valeur par - défaut pour <code>ServerPath</code> ni pour <code>ServerAlias</code>. - La valeur par défaut de <code>ServerName</code> est déduite à partir - de l'adresses IP du serveur.</p> - - <p>La directive Listen associée au serveur principal a deux utilités. - La première détermine le port réseau sur lequel Apache va écouter. - La deuxième spécifie le port qui sera utilisé dans les URIs absolus - lors des redirections.</p> - - <p>À la différence du serveur principal, les ports des serveurs - virtuels <em>n</em>'affectent <em>pas</em> les ports sur lesquels - Apache se met à l'écoute.</p> - - <p>Chaque adresse incluse dans une directive <code>VirtualHost</code> - peut disposer d'un port optionnel. Si le port n'est pas précisé, il - prend par défaut la dernière valeur de <code>Listen</code> lue dans - la configuration du serveur principal. Le port particulier - <code>*</code> représente un joker qui correspond à tous les ports. - L'ensemble des adresses (y compris les résultats multiples + <p>Chaque directive <code>VirtualHost</code> comporte une ou + plusieurs adresses et des ports optionnels.</p> + + <p>Il est possible d'utiliser des noms d'hôtes dans la définition + d'un serveur virtuel, mais ils seront résolus en adresses IP au + démarrage du serveur, et si une résolution de nom échoue, cette + définition de serveur virtuel sera ignorée. Cette méthode est par + conséquent déconseillée.</p> + + <p>L'adresse peut + être spécifiée sous la forme <code>*</code>, ce qui conviendra à la + requête si aucun autre serveur virtuel ne possède l'adresse IP + explicite correspondant à celle de la requête.</p> + + <p>L'adresse qui apparaît dans la directive <code>VirtualHost</code> + peut être associée à un port optionnel. Si aucun port n'est + spécifié, il s'agit d'un port générique qui peut aussi être spécifié + comme <code>*</code>. Le port générique correspond à toutes les + valeurs de port.</p> + + <p>(Il ne faut pas confondre les numéros de port sur lesquels Apache + est en écoute avec les numéros de port spécifiés dans la directive + <code>VirtualHost</code> ; ces derniers ne servent qu'à définir le + <code>serveur virtuel</code> qui sera sélectionné pour traiter la + requête. Pour définir les ports sur lesquels Apache est en écoute, + utilisez la directive <directive module="core">Listen</directive>). + </p> + + <p>L'ensemble des adresses (y compris les résultats multiples <code>A</code> issus des requêtes DNS) est appelé <em>jeu d'adresses</em> du serveur virtuel.</p> - <p>À moins qu'une directive - <directive module="core">NameVirtualHost</directive> ne soit utilisée - pour une adresse IP spécifique, le premier serveur virtuel avec - cette adresse est considéré comme un <em>serveur virtuel par-IP</em>. - L'adresse IP peut également prendre la valeur joker <code>*</code>.</p> - - <p>Dans les cas où l'on souhaite utiliser un <em>serveur virtuel - par nom</em>, la directive <code>NameVirtualHost</code> <em>doit</em> - apparaître avec l'adresse IP choisie. En d'autres termes, vous devez - spécifier dans votre fichier de configuration l'adresse IP des noms - de domaine (CNAME) de vos serveurs virtuels par nom au moyen de - la directive <code>NameVirtualHost</code>.</p> - - <p>On peut utiliser plusieurs directives <code>NameVirtualHost</code> - pour un groupe de directives <code>VirtualHost</code>, mais seule - une directive <code>NameVirtualHost</code> doit être utilisée pour - chaque couple IP:port donné.</p> - - <p>L'ordre d'apparition des directives <code>NameVirtualHost</code> - et <code>VirtualHost</code> est sans importance, ce qui fait que - les deux exemples suivants ont des effets identiques (seul l'ordre - des directives <code>VirtualHost</code> pour <em>un</em> jeu - d'adresses est important, voir ci-dessous) :</p> - -<table><tr> -<td><example> - NameVirtualHost 111.22.33.44<br /> - <VirtualHost 111.22.33.44><br /> - # serveur A<br /> - ...<br /> - </VirtualHost><br /> - <VirtualHost 111.22.33.44><br /> - # serveur B<br /> - ...<br /> - </VirtualHost><br /> - <br /> - NameVirtualHost 111.22.33.55<br /> - <VirtualHost 111.22.33.55><br /> - # serveur C<br /> - ...<br /> - </VirtualHost><br /> - <VirtualHost 111.22.33.55><br /> - # serveur D<br /> - ...<br /> - </VirtualHost> -</example></td> -<td><example> - <VirtualHost 111.22.33.44><br /> - # serveur A<br /> - </VirtualHost><br /> - <VirtualHost 111.22.33.55><br /> - # serveur C<br /> - ...<br /> - </VirtualHost><br /> - <VirtualHost 111.22.33.44><br /> - # serveur B<br /> - ...<br /> - </VirtualHost><br /> - <VirtualHost 111.22.33.55><br /> - # serveur D<br /> - ...<br /> - </VirtualHost><br /> - <br /> - NameVirtualHost 111.22.33.44<br /> - NameVirtualHost 111.22.33.55<br /> - <br /> -</example></td> -</tr></table> - - - <p>(Il est conseillé d'adopter le choix de gauche pour faciliter - la lisibilité des fichiers de configuration.)</p> - - <p>Après la lecture de la directive <code>VirtualHost</code>, le - serveur virtuel se voit attribuer une valeur <code>Listen</code> - par défaut qui est la valeur du port associé au premier nom spécifié - dans sa directive <code>VirtualHost</code>.</p> - - <p>La liste complète des noms d'une directive <code>VirtualHost</code> - est gérée exactement comme des <code>ServerAlias</code> (mais ne - sont pas écrasés par d'autres <code>ServerAlias</code>) si tous - les noms sont résolus dans ce jeu d'adresse. À noter que les états - <code>Listen</code> de ce serveur virtuel sont sans incidence sur - les ports attibués au jeu d'adresses.</p> - - <p>Pendant la phase d'initialisation, une liste de chaque adresse - IP est générée et introduite dans une table de 'hash'. Si une - adresse IP est utilisée dans une directive <code>NameVirtualHost</code>, - cette liste contient les noms des serveurs virtuels pour cette - adresse. Si aucun serveur virtuel n'est défini pour cette adresse, - la directive <code>NameVirtualHost</code> est ignorée et un message - est envoyé au journal d'erreurs. Quand un serveur virtuel par IP - est utilisé, la table de 'hash' reste vide.</p> - - <p>La fonction de 'hash' étant rapide, le temps d'exécution d'un - 'hash' sur une adresse IP lors d'une requête est minimale et - quasiment imperceptible. De plus, la table est optimisée pour les - adresses IP dont le dernier octet est le seul à changer.</p> + <p>Apache fait automatiquement sa sélection à partir de l'en-tête + HTTP <code>Host</code> fourni par le client, lorsque la + correspondance la plus exacte du point de vue adresse IP/port a lieu + pour plusieurs serveurs virtuels.</p> + + <p>La directive <directive module="core">ServerName</directive> peut + apparaître en quelque endroit de la définition d'un serveur. + Cependant, chaque occurrence écrase la précédente (pour ce serveur). + Si aucune directive <code>ServerName</code> n'est spécifiée, le + serveur tente de déterminer le nom du serveur à partir de l'adresse + IP.</p> + + <p>Le premier serveur virtuel à base de nom apparaissant dans le + fichier de configuration pour une paire IP:port donnée est + significatif car c'est lui qui sera utilisé pour toutes les requêtes + reçues sur cette adresse IP/port et pour laquelle aucun autre + serveur virtuel ne possède un ServerName ou un ServerAlias + correspondant. Il sera aussi utilisé pour toutes les connexions SSL + si le serveur ne supporte pas l'<glossary + ref="servernameindication">Indication du nom du serveur</glossary>.</p> <p>Pour chaque serveur virtuel, diverses valeurs sont initialisées par défaut. En particulier :</p> @@ -242,79 +177,72 @@ de configuration</title> <p>À la réception d'une requête, le serveur procède comme suit pour déterminer quel serveur virtuel utiliser :</p> - <section id="hashtable"><title>Vérification dans la table de hash</title> + <section id="hashtable"><title>Recherche de l'adresse IP</title> - <p>Après que le client se soit connecté, l'adresse - IP à laquelle le client s'est connecté est recherchée dans la - table de hash IP interne.</p> + <p>Lors d'une première connexion sur une adresse/port, le serveur + recherche toutes les directives <code>VirtualHost</code> qui + possèdent la même adresse IP/port.</p> - <p>Si la résolution de l'adresse IP n'aboutit pas (adresse IP non - trouvée), la requête est servie par le serveur virtuel - <code>_default_</code> s'il est défini pour le port correspondant - à la requête. Sinon, elle est servie par le serveur principal.</p> + <p>S'il n'y a aucune correspondance exacte pour cette adresse/port, + la recherche s'effectue sur la valeur générique (<code>*</code>).</p> - <p>Si l'adresse IP n'est pas trouvée dans la table de hash, la - recherche du numéro de port peut aussi se terminer par une - correspondance à un <code>NameVirtualHost *</code> qui est géré - ensuite comme les autres serveurs virtuels par noms.</p> - - <p>Si une liste est bien trouvée dans la table pour l'adresse - IP recherchée, l'étape suivante est de déterminer s'il s'agit - d'un serveur virtuel par nom ou par IP.</p> + <p>Si aucune correspondance n'est enfin trouvée, la requête sera + servie par le serveur principal.</p> + <p>S'il existe des définitions <code>VirtualHost</code> pour + l'adresse IP, l'étape suivante consiste à déterminer si nous avons à + faire à un serveur virtuel à base de nom ou d'adresse IP.</p> + </section> <section id="ipbased"><title>Serveur virtuel par IP</title> - <p>Si l'entrée trouvée dispose d'une liste de noms vide, c'est - qu'il s'agit d'un serveur virtuel par IP, et aucun autre choix - n'est plus à faire ; la requête est servie par ce serveur virtuel.</p> + <p>Si une seule section <code>VirtualHost</code> présente la + meilleure correspondance avec la paire adresse IP/port, aucune + action n'est entreprise et la requête est + traitée par le serveur virtuel qui correspond.</p> </section> <section id="namebased"><title>Serveur virtuel par nom</title> - <p>Si l'entrée trouvée correspond à un serveur virtuel par nom, - la liste de noms contient au moins une structure de serveurs - virtuels. Les serveurs virtuels se présentent dans cette liste - dans le même ordre que la lecture des directives <code>VirtualHost</code> - dans le fichier de configuration.</p> - - <p>Le premier serveur virtuel de cette liste (donc, le premier - serveur virtuel du fichier de configuration - attribué à l'adresse IP spécifiée) - se voit attribuer la plus grande priorité, ce - qui signifie que c'est lui qui traite les requêtes présentant un - nom de serveur invalide ou ne présentant pas de champ - <code>Host:</code> dans l'en-tête.</p> - - <p>Si un champ <code>Host:</code> est transmis dans l'en-tête de - la requête, son occurrence est recherchée dans la liste et le - premier serveur virtuel qui présente un <code>ServerName</code> - ou un <code>ServerAlias</code> correspondant est choisi pour - servir la requête. Il est possible que le champ <code>Host:</code> - contienne un numéro de port, mais Apache utilise toujours le + <p>Si plusieurs sections <code>VirtualHost</code> présentent la + meilleure correspondance avec la paire adresse IP/port, le terme + "liste" dans les étapes suivantes fait référence à la liste des + serveurs virtuels qui correspondent, selon l'ordre dans lequel ils + apparaissent dans le fichier de configuration.</p> + + <p>Si la connexion utilise SSL, si le serveur supporte l'<glossary + ref="servernameindication">Indication de nom de serveur</glossary>, + et si la négociation du client SSL inclut l'extension TLS dans le + nom d'hôte requis, alors ce nom d'hôte sera utilisé par la suite, tout + comme un en-tête <code>Host:</code> aurait été utilisé dans le cas + d'une connexion non-SSL. Si ces conditions ne sont pas réunies, le + premier serveur virtuel à base de nom dont l'adresse correspond sera + utilisé pour les connexions SSL. Ceci est important car c'est le + serveur virtuel qui détermine quel certificat le serveur va utiliser + pour la connexion.</p> + + <p>Si la requête contient un en-tête <code>Host:</code>, on + recherche dans la liste le premier serveur virtuel dont le + <code>ServerName</code> ou le <code>ServerAlias</code> correspond, + et c'est celui-ci qui va traiter la requête. Un en-tête + <code>Host:</code> peut comporter un numéro de port mais Apache + l'ignore systématiquement et utilise toujours le port sur lequel il a effectivement reçu la requête.</p> - <p>Dans le cas où le client a envoyé une requête en HTTP/1.0 sans - champ d'en-tête <code>Host:</code>, il est impossible de - déterminer le serveur auquel le client veut se connecter ; l'URI - de la requête est recherché dans tous les <code>ServerPath</code> - existants. Le premier chemin trouvé est utilisé et la requête est - servie par le serveur virtuel correspondant.</p> - - <p>Si aucun serveur virtuel n'est trouvé, la requête est servie - par le premier serveur virtuel qui écoute sur le port demandé et - qui est sur la liste associée à l'adresse IP vers laquelle la - requête a été envoyée (comme déjà précisé ci-avant).</p> + <p>Le premier serveur virtuel du fichier de configuration qui + possède l'adresse spécifiée est prioritaire et intercepte toutes les + requêtes à destination d'un nom de serveur inconnu, ou toute requête + sans en-tête <code>Host:</code> (comme les requêtes HTTP/1.0).</p> </section> <section id="persistent"><title>Connexions persistantes</title> - <p>La recherche par adresse IP décrite ci-avant n'est faite + <p>La <em>recherche par adresse IP</em> décrite ci-avant n'est faite qu'<em>une fois</em> pour chaque session TCP/IP, alors que la - recherche par nom est réalisée pour <em>chaque</em> requête au + <em>recherche par nom</em> est réalisée pour <em>chaque</em> requête au cours d'une connexion persistante (KeepAlive). En d'autres termes, il est possible pour un client de faire des requêtes sur différents serveurs virtuels par nom, au cours d'une unique @@ -337,72 +265,43 @@ de configuration</title> <section id="observations"><title>Observations</title> <ul> - <li>Les serveurs virtuels par nom et par IP n'interfèrent - jamais entre eux. Les serveurs virtuels par IP ne sont joignables - qu'au travers de leur(s) adresse(s) IP propre(s), et en aucun - cas par une autre adresse. Les serveurs virtuels par nom - ne sont accessibles que par leur(s) adresse(s) IP qui ne peuvent - être définies qu'au moyen de la directive - <code>NameVirtualHost</code>.</li> - - <li>Les vérifications sur <code>ServerAlias</code> et - <code>ServerPath</code> ne sont jamais réalisées pour les - serveurs virtuels par IP.</li> - - <li>L'ordre dans lequel sont agencés dans le fichier de - configuration le serveur virtuel <code>_default_</code>, les - serveurs virtuels par nom et par IP, et la directive - <code>NameVirtualHost</code> est sans incidence sur le - fonctionnement. Seul l'ordre des serveurs virtuels par nom + <li>La sélection d'un serveur virtuel en fonction de son nom est + un processus qui intervient après la sélection par le serveur du + serveur virtuel qui correspond le mieux du point de vue adresse + IP/port.</li> + + <li>Si vous ne tenez pas compte de l'adresse IP à laquelle le + client s'est connecté, indiquez un caractère "*" comme adresse + pour tous les serveurs virtuels, et la sélection du serveur + virtuel en fonction du nom s'appliquera alors à tous les serveurs + virtuels définis.</li> + + <li>Les vérifications sur <code>ServerName</code> et + <code>ServerAlias</code> ne sont jamais + réalisées pour les serveurs virtuels par IP.</li> + + <li>Seul l'ordre des serveurs virtuels par nom pour une adresse donnée a une importance. Le serveur virtuel par nom qui est présent en premier dans la configuration se voit attribué la priorité la plus haute pour les requêtes arrivant sur son jeu d'adresses IP.</li> - <li>Pour des raisons de sécurité, le numéro de port présenté - dans le champ d'en-tête <code>Host:</code> n'est jamais utilisé + <li>Le numéro de port contenu dans l'en-tête <code>Host:</code> n'est jamais utilisé pour les tests de correspondances. Apache ne prend en compte que le numéro de port sur lequel le client a envoyé la requête.</li> - <li>Si une directive <code>ServerPath</code> existe, et se - trouve être préfixe d'une autre directive <code>ServerPath</code> - qui apparaît plus loin dans la configuration, la première - sera toujours utilisée et la deuxième jamais. (Ceci ne se - produit que dans le cas où aucun champ <code>Host:</code> - n'a été présenté par le client pour distinguer les deux.)</li> - - <li>Dans le cas où deux serveurs virtuels par IP ont une - adresse en commun, le serveur virtuel qui apparaît en premier - dans la configuration est toujours choisi. Ce genre de chose - peut arriver par inadvertance. Le serveur envoie une alerte - dans le journal d'erreurs si ce cas se présente.</li> - - <li>Le serveur virtuel <code>_default_</code> ne sert la requête - que si aucun autre serveur virtuel travaillant sur l'adresse - IP <em>et</em> le port demandés n'est trouvé. La requête n'est - traitée que si le numéro de port qui a reçu la requête est - associé au serveur virtuel <code>_default_</code> (qui par - défaut, correspond à <code>Listen</code>). Un port joker peut - être spécifié (<em>comme dans</em> <code>_default_:*</code>) - pour récupérer les requêtes sur tous les ports ouverts. Ceci - est également applicable aux serveurs virtuels - <code>NameVirtualHost *</code>.</li> + <li>Si deux serveurs virtuels partagent la même adresse, la + sélection se fera implicitement sur le nom. Il s'agit d'une + nouvelle fonctionnalité de la version 2.3.11.</li> <li>Le serveur principal ne sert les requêtes que lorsque l'adresse IP et le port demandés par le client ne correspondent à aucun serveur virtuel (y compris un serveur - virtuel <code>_default_</code>). En d'autres termes, le serveur + virtuel <code>*</code>). En d'autres termes, le serveur principal n'est utile que pour les combinaisons adresse/port non spécifiées (sauf quand un serveur virtuel <code>_default_</code> correspond au port).</li> - <li>Ni les serveurs virtuels <code>_default_</code>, ni le - serveur principal ne sont utilisés pour traiter une requête - avec un champ d'en-tête <code>Host:</code> inconnu ou manquant - lorsque l'adresse (et le port) de connexion correspondent à - des serveurs virtuels par nom, par exemple, dans une directive - <code>NameVirtualHost</code>.</li> - <li>Il ne faut jamais employer de noms DNS dans des directives <code>VirtualHost</code>, car cela oblige le serveur a s'appuyer sur le DNS au moment du démarrage. De plus, vous vous exposez @@ -435,17 +334,7 @@ de configuration</title> virtuels peuvent impacter le fonctionnement de tous les serveurs virtuels.)</li> - <li>Toujours regrouper les définitions <code>NameVirtualHost</code> - et <code>VirtualHost</code> correspondantes - dans la configuration pour une meilleure lisibilité.</li> - - <li>Éviter les <code>ServerPaths</code> qui sont préfixes - d'autres <code>ServerPaths</code>. Si cela ne peut être évité, - veillez à ce que le serveur virtuel contenant le préfixe le plus - long (donc le plus précis) apparaisse dans le fichier de - configuration avant le plus court. (<em>par exemple</em>, - "ServerPath /abc" est à spécifier après "ServerPath /abc/def").</li> - </ul> + </ul> </section> </manualpage> diff --git a/docs/manual/vhosts/examples.xml.fr b/docs/manual/vhosts/examples.xml.fr index 2a50fae2e0..0e8b1a3ad1 100644 --- a/docs/manual/vhosts/examples.xml.fr +++ b/docs/manual/vhosts/examples.xml.fr @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='ISO-8859-1' ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision: 1043126:1053231 (outdated) --> +<!-- English Revision: 1053231 --> <!-- French translation by Vincent Deffontaines, Alain B., review by --> <!-- updated by Lucien Gentis --> @@ -61,9 +61,6 @@ # Apache doit écouter sur le port 80<br /> Listen 80<br /> <br /> - # Toutes les adresses IP doivent répondre aux requêtes sur les - # serveurs virtuels - NameVirtualHost *:80<br /> <br /> <VirtualHost *:80><br /> <indent> @@ -99,17 +96,10 @@ <note> <title>Note :</title> - <p>Si vous le souhaitez, vous pouvez remplacer <code>*</code> - par l'adresse IP du système. Dans ce cas, l'argument de - <code>VirtualHost</code> <em>doit</em> correspondre à - l'argument de <code>NameVirtualHost</code> :</p> - - <example> - NameVirtualHost 172.20.30.40<br /> - <br /> - <VirtualHost 172.20.30.40><br /> - # etc ... - </example> + <p>Vous pouvez remplacer <code>*</code> + par l'adresse IP du système si vous ne souhaitez pas faire + opérer la sélection du serveur virtuel en fonction de la + paire adresse IP/port.</p> <p>En général, il est commode d'utiliser <code>*</code> sur les systèmes dont l'adresse IP n'est pas constante - par @@ -152,9 +142,6 @@ ServerName server.example.com<br /> DocumentRoot /www/mainserver<br /> <br /> - # l'autre adresse <br /> - NameVirtualHost 172.20.30.50<br /> - <br /> <VirtualHost 172.20.30.50><br /> <indent> DocumentRoot /www/example.com<br /> @@ -203,9 +190,7 @@ <example> <title>Configuration du serveur</title> - NameVirtualHost 192.168.1.1<br /> - NameVirtualHost 172.20.30.40<br /> - <br /> + <br /> <VirtualHost 192.168.1.1 172.20.30.40><br /> <indent> DocumentRoot /www/server1<br /> @@ -235,12 +220,10 @@ ports.</title> <p>Vous disposez de plusieurs domaines pointant sur la même adresse - IP et vous voulez également servir de multiples ports. Vous y - parviendrez en définissant les ports dans la directive - "NameVirtualHost". Si vous tentez d'utiliser <VirtualHost - name:port> sans directive NameVirtualHost name:port, ou tentez - d'utiliser la directive Listen, votre configuration ne fonctionnera - pas.</p> + IP et vous voulez également servir de multiples ports. L'exemple + suivant montre que la sélection en fonction du nom intervient après + la sélection de la meilleure correspondance du point de vue adresse + IP/port.</p> <example> <title>Configuration du serveur</title> @@ -248,9 +231,6 @@ Listen 80<br /> Listen 8080<br /> <br /> - NameVirtualHost 172.20.30.40:80<br /> - NameVirtualHost 172.20.30.40:8080<br /> - <br /> <VirtualHost 172.20.30.40:80><br /> <indent> ServerName www.example.com<br /> @@ -366,16 +346,15 @@ <section id="mixed"><title>Hébergements virtuels mixtes basé sur les noms et sur IP</title> - <p>Pour certaines adresses, des serveurs virtuels seront définis - par nom, et pour d'autres, ils seront définis par IP.</p> + <p>Toute adresse indiquée comme argument d'une section VirtualHost + et n'apparaissant dans aucun autre serveur virtuel, fait de cette + section un serveur virtuel sélectionnable uniquement en fonction de + son adresse IP.</p> <example> <title>Configuration du serveur</title> Listen 80<br /> - <br /> - NameVirtualHost 172.20.30.40<br /> - <br /> <VirtualHost 172.20.30.40><br /> <indent> DocumentRoot /www/example1<br /> @@ -556,8 +535,6 @@ ServerName www.example.com<br /> DocumentRoot /www/example.com<br /> <br /> - NameVirtualHost 172.20.30.40<br /> - <br /> <VirtualHost 172.20.30.40 172.20.30.50><br /> <indent> DocumentRoot /www/example.org<br /> @@ -599,8 +576,6 @@ <example> <title>Configuration du serveur</title> - NameVirtualHost 172.20.30.40<br /> - <br /> <VirtualHost 172.20.30.40><br /> <indent> # Serveur virtuel primaire<br /> diff --git a/docs/manual/vhosts/index.xml.fr b/docs/manual/vhosts/index.xml.fr index 59c46db5f8..f57a35bfd4 100644 --- a/docs/manual/vhosts/index.xml.fr +++ b/docs/manual/vhosts/index.xml.fr @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='ISO-8859-1' ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision: 1042758:1053231 (outdated) --> +<!-- English Revision: 1053231 --> <!-- french translation by alain B, review by Vincent Deffontaines --> <!-- Updated by Lucien Gentis --> @@ -84,7 +84,6 @@ <ul> <li><directive type="section" module="core">VirtualHost</directive></li> - <li><directive module="core">NameVirtualHost</directive></li> <li><directive module="core">ServerName</directive></li> <li><directive module="core">ServerAlias</directive></li> <li><directive module="core">ServerPath</directive></li> diff --git a/docs/manual/vhosts/name-based.xml.fr b/docs/manual/vhosts/name-based.xml.fr index d0a4efd330..62f7c86333 100644 --- a/docs/manual/vhosts/name-based.xml.fr +++ b/docs/manual/vhosts/name-based.xml.fr @@ -1,7 +1,7 @@ <?xml version='1.0' encoding='ISO-8859-1' ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> -<!-- English Revision: 1044323:1053231 (outdated) --> +<!-- English Revision: 1053231 --> <!-- French translation by alain B, review by Vincent Deffontaines updated by Lucien GENTIS --> @@ -69,6 +69,13 @@ qui ne peuvent pas différencier des domaines autrement que par des adresses IP séparées.</li> </ul> + + <p>La sélection du serveur virtuel en fonction du nom s'opère en + dehors de l'algorithme de sélection du serveur virtuel en fonction + de l'adresse IP, ce qui signifie que les recherches du point de vue + du nom du serveur ne s'effectuent que parmi le jeu de serveurs + virtuels pour lesquels la correspondance avec la paire adresse + IP/port est la plus exacte.</p> </section> <section id="alg"><title>Comment le serveur sélectionne-t-il le serveur @@ -81,27 +88,26 @@ virtuel basé sur le nom approprié</title> limitant aux candidats qui conviennent le mieux du point de vue IP. La résolution basée sur IP est sans objet si l'on utilise un caractère générique (*) pour l'adresse IP dans - toutes les directives NameVirtualHost et VirtualHost.</p> - - <p>Lorsqu'une requête arrive, le serveur vérifie d'abord si elle - utilise une adresse IP qui correspond exactement à une directive - <directive module="core">NameVirtualHost</directive>. Si c'est le - cas, il va ensuite rechercher toutes les sections <directive - type="section" module="core">VirtualHost</directive> comportant une - adresse IP correspondante, puis essaiera d'en trouver une dont la - directive <directive module="core">ServerName</directive> ou - <directive module="core" >ServerAlias</directive> correspond au nom - d'hôte de la requête. S'il en trouve une, il utilisera la - configuration associée au serveur correspondant.</p> - - <section id="defaultvhost"><title>Le serveur virtuel basé sur le nom - par défaut pour une directive NameVirtualHost</title> - <p>Si aucune directive ServerName ou ServerAlias correspondant au - nom d'hôte de la requête n'est trouvée dans l'ensemble des serveurs - virtuels correspondant à la directive NameVirtualHost, <strong>c'est - le premier serveur virtuel de la liste de ceux qui - correspondent à l'adresse IP</strong> qui sera utilisé.</p></section> + toutes les directives VirtualHost.</p> + <p>A l'arrivée d'une requête, le serveur va rechercher l'argument de + section <directive type="section" + module="core">VirtualHost</directive> présentant la meilleure + (la plus exacte) correspondance avec la paire adresse IP/port + utilisée dans la requête. Si plusieurs serveurs virtuels possèdent + cette même paire adresse IP/port, Apache va ensuite comparer les + valeurs des directives <directive module="core" + >ServerName</directive> et <directive + >module="core">ServerAlias</directive> avec le nom de serveur + présent dans la requête.</p> + + <section id="defaultvhost"><title>Le serveur virtuel à base de nom + par défaut pour une paire adresse IP/port</title> + <p>Si aucune directive ServerName ou ServerAlias ne correspond dans + la liste de serveurs virtuels présentant la meilleure correspondance + du point de vue adresse IP/port, c'est <strong>le premier serveur + virtuel de cette liste</strong> qui sera utilisé.</p></section> + </section> @@ -114,42 +120,16 @@ virtuel basé sur le nom approprié</title> <directivelist> <directive module="core">DocumentRoot</directive> - <directive module="core">NameVirtualHost</directive> <directive module="core">ServerAlias</directive> <directive module="core">ServerName</directive> <directive module="core" type="section">VirtualHost</directive> </directivelist> </related> - <p>Pour utiliser des serveurs virtuels par nom, vous devez - désigner l'adresse IP (et si possible le port) sur le serveur - devant accepter les requêtes qui doivent être redirigées en fonction - du nom d'hôte. Cette - configuration utilise la directive - <directive module="core">NameVirtualHost</directive>. Dans un - cas normal où n'importe quelle adresse IP peut être utilisée, - vous pouvez ajouter <code>*</code> comme argument de la directive - <directive module="core">NameVirtualHost</directive>. Si vous - prévoyez d'utiliser de multiples ports (comme l'emploi de SSL), - vous devez ajouter le port à cet argument tel que - <code>*:80</code>.</p> - <note><p>Notez que la simple mention d'une adresse - IP dans une directive - <directive module="core">NameVirtualHost</directive> ne suffit - pas à faire <em>écouter</em> le serveur sur cette IP. Consultez - <a href="../bind.html">Définition des adresses et ports qu'utilise - Apache</a> pour plus - de détails. Par ailleurs, chaque adresse IP spécifiée ici doit - être associée avec une interface réseau sur le serveur.</p></note> - - <p>L'étape suivante est la création d'une section + <p>La première étape consiste à créer une section <directive type="section" module="core">VirtualHost</directive> - pour chacun des serveurs à créer. L'argument de la directive - <directive type="section" module="core">VirtualHost</directive> - doit être le même que celui de la directive - <directive module="core">NameVirtualHost</directive> - (dans le cas présent "*:80"). Dans chaque section + pour chacun des serveurs à définir. Dans chaque section <directive type="section" module="core">VirtualHost</directive>, vous devez définir au minimum une directive <directive module="core">ServerName</directive> pour désigner @@ -184,8 +164,6 @@ virtuel basé sur le nom approprié</title> suivante à <code>httpd.conf</code> :</p> <example> - NameVirtualHost *:80<br /> - <br /> <VirtualHost *:80><br /> <indent> # Le premier serveur virtuel de la liste est aussi le @@ -204,8 +182,7 @@ virtuel basé sur le nom approprié</title> </example> <p>Autrement, vous pouvez spécifiez une adresse IP explicite - à la place de <code>*</code> dans les deux directives - <directive module="core" >NameVirtualHost</directive> et + à la place de <code>*</code> dans la directive <directive type="section" module="core" >VirtualHost</directive>. Par exemple, cette méthode est utile si vous souhaitez faire tourner quelques serveurs virtuels par nom sur une même adresse |