diff options
-rw-r--r-- | docs/manual/vhosts/details.html.fr | 26 | ||||
-rw-r--r-- | docs/manual/vhosts/details.xml.fr | 27 | ||||
-rw-r--r-- | docs/manual/vhosts/examples.html.fr | 429 | ||||
-rw-r--r-- | docs/manual/vhosts/examples.xml.fr | 408 | ||||
-rw-r--r-- | docs/manual/vhosts/index.html.fr | 4 | ||||
-rw-r--r-- | docs/manual/vhosts/index.xml.fr | 4 | ||||
-rw-r--r-- | docs/manual/vhosts/mass.html | 4 | ||||
-rw-r--r-- | docs/manual/vhosts/mass.html.en | 2 | ||||
-rw-r--r-- | docs/manual/vhosts/mass.html.fr | 466 | ||||
-rw-r--r-- | docs/manual/vhosts/mass.xml.fr | 443 | ||||
-rw-r--r-- | docs/manual/vhosts/mass.xml.meta | 1 | ||||
-rw-r--r-- | docs/manual/vhosts/name-based.html.fr | 311 | ||||
-rw-r--r-- | docs/manual/vhosts/name-based.xml.fr | 317 |
13 files changed, 1683 insertions, 759 deletions
diff --git a/docs/manual/vhosts/details.html.fr b/docs/manual/vhosts/details.html.fr index 003e450994..a3f1898b70 100644 --- a/docs/manual/vhosts/details.html.fr +++ b/docs/manual/vhosts/details.html.fr @@ -225,7 +225,7 @@ de configuration</a></h2> <p>Dans le cas où le serveur principal n'a pas de <code>ServerName</code> à ce stade, le nom de la machine sur laquelle tourne le programme <code class="program"><a href="../programs/httpd.html">httpd</a></code> est utilisé à sa place. Nous appellerons - <em>jeu d'adresses du serveur principal</em>, les adresses IP + <em>jeu d'adresses du serveur principal</em> les adresses IP renvoyées par une résolution DNS sur le <code>ServerName</code> du serveur principal.</p> @@ -259,7 +259,7 @@ de configuration</a></h2> <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 serveur virtuels par noms.</p> + 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 @@ -284,8 +284,9 @@ de configuration</a></h2> dans le fichier de configuration.</p> <p>Le premier serveur virtuel de cette liste (donc, le premier - serveur virtuel attribué à une adresse IP donnée dans le fichier - de configuration) se voit attribuer la plus grande priorité, ce + 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> @@ -299,7 +300,7 @@ de configuration</a></h2> 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 - un champ d'en-tête <code>Host:</code>, il est impossible de + 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 @@ -341,8 +342,8 @@ de configuration</a></h2> <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), en aucun - cas par aucune autre adresse. Les serveurs virtuels par nom + 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> @@ -390,7 +391,7 @@ de configuration</a></h2> est également applicable aux serveurs virtuels <code>NameVirtualHost *</code>.</li> - <li>Le serveur principal ne sert à servir les requêtes que + <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 @@ -400,7 +401,7 @@ de configuration</a></h2> <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> manquant ou vide + 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> @@ -434,11 +435,12 @@ de configuration</a></h2> -- la manière dont la configuration est interprétée après la lecture des fichiers ne met pas en évidence le fait que les définitions positionnées avant et surtout après les serveurs - virtuels peuvent impacter le fonctionnement des serveurs virtuels.)</li> + virtuels peuvent impacter le fonctionnement de tous les + serveurs virtuels.)</li> <li>Toujours regrouper les définitions <code>NameVirtualHost</code> - et <code>VirtualHost</code> dans la configuration pour une - meilleure lisibilité.</li> + 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é, diff --git a/docs/manual/vhosts/details.xml.fr b/docs/manual/vhosts/details.xml.fr index 024c7f344e..26d18c82cc 100644 --- a/docs/manual/vhosts/details.xml.fr +++ b/docs/manual/vhosts/details.xml.fr @@ -3,6 +3,7 @@ <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> <!-- English Revision: 420990 --> <!-- French translation by Vincent Deffontaines, review by alain B --> +<!-- Updated by Lucien Gentis --> <!-- Licensed to the Apache Software Foundation (ASF) under one or more @@ -221,7 +222,7 @@ de configuration</title> <p>Dans le cas où le serveur principal n'a pas de <code>ServerName</code> à ce stade, le nom de la machine sur laquelle tourne le programme <program>httpd</program> est utilisé à sa place. Nous appellerons - <em>jeu d'adresses du serveur principal</em>, les adresses IP + <em>jeu d'adresses du serveur principal</em> les adresses IP renvoyées par une résolution DNS sur le <code>ServerName</code> du serveur principal.</p> @@ -255,7 +256,7 @@ de configuration</title> <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 serveur virtuels par noms.</p> + 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 @@ -280,8 +281,9 @@ de configuration</title> dans le fichier de configuration.</p> <p>Le premier serveur virtuel de cette liste (donc, le premier - serveur virtuel attribué à une adresse IP donnée dans le fichier - de configuration) se voit attribuer la plus grande priorité, ce + 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> @@ -295,7 +297,7 @@ de configuration</title> 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 - un champ d'en-tête <code>Host:</code>, il est impossible de + 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 @@ -337,8 +339,8 @@ de configuration</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), en aucun - cas par aucune autre adresse. Les serveurs virtuels par nom + 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> @@ -386,7 +388,7 @@ de configuration</title> est également applicable aux serveurs virtuels <code>NameVirtualHost *</code>.</li> - <li>Le serveur principal ne sert à servir les requêtes que + <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 @@ -396,7 +398,7 @@ de configuration</title> <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> manquant ou vide + 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> @@ -430,11 +432,12 @@ de configuration</title> -- la manière dont la configuration est interprétée après la lecture des fichiers ne met pas en évidence le fait que les définitions positionnées avant et surtout après les serveurs - virtuels peuvent impacter le fonctionnement des serveurs virtuels.)</li> + virtuels peuvent impacter le fonctionnement de tous les + serveurs virtuels.)</li> <li>Toujours regrouper les définitions <code>NameVirtualHost</code> - et <code>VirtualHost</code> dans la configuration pour une - meilleure lisibilité.</li> + 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é, diff --git a/docs/manual/vhosts/examples.html.fr b/docs/manual/vhosts/examples.html.fr index 44498753bd..c5612f7083 100644 --- a/docs/manual/vhosts/examples.html.fr +++ b/docs/manual/vhosts/examples.html.fr @@ -26,54 +26,54 @@ </div> - <p>Le but de ce document est d'essayer de répondre aux questions - les plus répandues sur la configuration des serveurs virtuels. - Les scénarios présentés ici se rencontrent quand plusieurs - serveurs Webs doivent tourner sur une seule et même machine au - moyen de serveurs virtuels <a href="name-based.html">par nom</a> + <p>Le but de ce document est d'essayer de répondre aux questions + les plus répandues sur la configuration des serveurs virtuels. + Les scénarios présentés ici se rencontrent quand plusieurs + serveurs Webs doivent tourner sur une seule et même machine au + moyen de serveurs virtuels <a href="name-based.html">par nom</a> ou <a href="ip-based.html">par IP</a>.</p> </div> -<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#purename">Fonctionnement de plusieurs serveurs +<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#purename">Fonctionnement de plusieurs serveurs virtuels par nom sur une seule adresse IP.</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#twoips">Serveurs virtuels par nom sur plus +<li><img alt="" src="../images/down.gif" /> <a href="#twoips">Serveurs virtuels par nom sur plus d'une seule adresse IP.</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#intraextra">Servir le même contenu sur des - adresses IP différentes (telle qu'une adresse interne et une +<li><img alt="" src="../images/down.gif" /> <a href="#intraextra">Servir le même contenu sur des + adresses IP différentes (telle qu'une adresse interne et une externe).</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#port">Servir différents sites sur différents +<li><img alt="" src="../images/down.gif" /> <a href="#port">Servir différents sites sur différents ports.</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ip">Hébergement virtuel basé sur IP</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#ipport">Hébergements virtuels mixtes basés sur +<li><img alt="" src="../images/down.gif" /> <a href="#ipport">Hébergements virtuels mixtes basés sur les ports et sur les IP</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#mixed">Hébergements virtuels mixtes basé sur +<li><img alt="" src="../images/down.gif" /> <a href="#mixed">Hébergements virtuels mixtes basé sur les noms et sur IP</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#proxy">Utilisation simultanée de +<li><img alt="" src="../images/down.gif" /> <a href="#proxy">Utilisation simultanée de <code>Virtual_host</code> et de mod_proxy</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#default">Utilisation de serveurs virtuels +<li><img alt="" src="../images/down.gif" /> <a href="#default">Utilisation de serveurs virtuels <code>_default_</code></a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#migrate">Migration d'un serveur virtuel +<li><img alt="" src="../images/down.gif" /> <a href="#migrate">Migration d'un serveur virtuel par nom en un serveur virtuel par IP</a></li> -<li><img alt="" src="../images/down.gif" /> <a href="#serverpath">Utilisation de la directive +<li><img alt="" src="../images/down.gif" /> <a href="#serverpath">Utilisation de la directive <code>ServerPath</code></a></li> </ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="purename" id="purename">Fonctionnement de plusieurs serveurs +<h2><a name="purename" id="purename">Fonctionnement de plusieurs serveurs virtuels par nom sur une seule adresse IP.</a></h2> - <p>Votre serveur ne dispose que d'une seule adresse IP, et de - nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. - Pour l'exemple, <code>www.example1.com</code> et - <code>www.example2.org</code> doivent tourner sur cette machine.</p> - - <div class="note"><h3>Note :</h3><p>La configuration de serveurs virtuels - sous Apache ne provoque pas leur apparition magique dans la - configuration du DNS. Il <em>faut</em> que leurs noms soient - définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP - du serveur, faute de quoi personne ne pourra visiter votre site Web. - Il est possible d'ajouter des entrées dans le fichier - <code>hosts</code> pour tests locaux, mais qui ne fonctionneront + <p>Votre serveur ne dispose que d'une seule adresse IP, et de + nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. + Pour l'exemple, <code>www.example.com</code> et + <code>www.example.org</code> doivent tourner sur cette machine.</p> + + <div class="note"><h3>Note :</h3><p>La configuration de serveurs virtuels + sous Apache ne provoque pas leur apparition magique dans la + configuration du DNS. Il <em>faut</em> que leurs noms soient + définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP + du serveur, faute de quoi personne ne pourra visiter votre site Web. + Il est possible d'ajouter des entrées dans le fichier + <code>hosts</code> pour tests locaux, mais qui ne fonctionneront que sur la machine possédant ces entrées.</p> </div> @@ -83,13 +83,13 @@ # Apache doit écouter sur le port 80<br /> Listen 80<br /> <br /> - # Toutes les adresses IP doivent répondre aux requêtes sur les + # Toutes les adresses IP doivent répondre aux requêtes sur les # serveurs virtuels NameVirtualHost *:80<br /> <br /> <VirtualHost *:80><br /> <span class="indent"> - DocumentRoot /www/example1<br /> + DocumentRoot /www/example.com<br /> ServerName www.example1.com<br /> <br /> # Autres directives ici<br /> @@ -99,7 +99,7 @@ <br /> <VirtualHost *:80><br /> <span class="indent"> - DocumentRoot /www/example2<br /> + DocumentRoot /www/example.org<br /> ServerName www.example2.org<br /> <br /> # Autres directives ici<br /> @@ -108,89 +108,88 @@ </VirtualHost> </code></p></div> - <p>Les astérisques correspondent à toutes les adresses, si bien que - le serveur principal ne répondra jamais à aucune requête. Comme - <code>www.example1.com</code> se trouve en premier dans le fichier - de configuration, il a la plus grande priorité et peut être vu - comme serveur <cite>par défaut</cite> ou <cite>primaire</cite> ; - ce qui signifie que toute requête reçue ne correspondant pas à une - des directives <code>ServerName</code> sera servie par ce premier + <p>Les astérisques correspondent à toutes les adresses, si bien que + le serveur principal ne répondra jamais à aucune requête. Comme + <code>www.example.com</code> se trouve en premier dans le fichier + de configuration, il a la plus grande priorité et peut être vu + comme serveur <cite>par défaut</cite> ou <cite>primaire</cite> ; + ce qui signifie que toute requête reçue ne correspondant à aucune + des directives <code>ServerName</code> sera servie par ce premier <code>VirtualHost</code>.</p> <div class="note"> <h3>Note :</h3> - <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 à + <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> <div class="example"><p><code> NameVirtualHost 172.20.30.40<br /> - <br /> + <br /> <VirtualHost 172.20.30.40><br /> - # etc ... + # etc ... </code></p></div> - <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 - exemple, pour des serveurs dont l'adresse IP est attribuée - dynamiquement par le FAI, et où le DNS est géré au moyen - d'un DNS dynamique quelconque. Comme <code>*</code> signifie - <cite>n'importe quelle adresse</cite>, cette configuration - fonctionne sans devoir être modifiée quand l'adresse IP du + <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 + exemple, pour des serveurs dont l'adresse IP est attribuée + dynamiquement par le FAI, et où le DNS est géré au moyen + d'un DNS dynamique quelconque. Comme <code>*</code> signifie + <cite>n'importe quelle adresse</cite>, cette configuration + fonctionne sans devoir être modifiée quand l'adresse IP du système est modifiée.</p> </div> - <p>La configuration ci-dessus est en pratique utilisée dans la - plupart des cas pour les serveurs virtuels par nom. En fait, le - seul cas où cette configuration ne fonctionne pas est lorsque - différents contenus doivent être servis en fonction de l'adresse IP + <p>La configuration ci-dessus est en pratique utilisée dans la + plupart des cas pour les serveurs virtuels par nom. En fait, le + seul cas où cette configuration ne fonctionne pas est lorsque + différents contenus doivent être servis en fonction de l'adresse IP et du port contactés par le client.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="twoips" id="twoips">Serveurs virtuels par nom sur plus +<h2><a name="twoips" id="twoips">Serveurs virtuels par nom sur plus d'une seule adresse IP.</a></h2> - <div class="note"> - <h3>Note :</h3> - <p>Toutes les techniques présentées ici + <div class="note"> + <h3>Note :</h3><p>Toutes les techniques présentées ici peuvent être étendues à un plus grand nombre d'adresses IP.</p> </div> - <p>Le serveur a deux adresses IP. Sur l'une - (<code>172.20.30.40</code>), le serveur "principal" - <code>server.domain.com</code> doit répondre, et sur l'autre - (<code>172.20.30.50</code>), deux serveurs virtuels (ou plus) + <p>Le serveur a deux adresses IP. Sur l'une + (<code>172.20.30.40</code>), le serveur "principal" + <code>server.domain.com</code> doit répondre, et sur l'autre + (<code>172.20.30.50</code>), deux serveurs virtuels (ou plus) répondront.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> Listen 80<br /> - <br /> + <br /> # Serveur "principal" sur 172.20.30.40<br /> ServerName server.domain.com<br /> DocumentRoot /www/mainserver<br /> - <br /> + <br /> # l'autre adresse <br /> NameVirtualHost 172.20.30.50<br /> - <br /> + <br /> <VirtualHost 172.20.30.50><br /> <span class="indent"> - DocumentRoot /www/example1<br /> - ServerName www.example1.com<br /> - <br /> + DocumentRoot /www/example.com<br /> + ServerName www.example.com<br /> + <br /> # D'autres directives ici ...<br /> - <br /> + <br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50><br /> <span class="indent"> - DocumentRoot /www/example2<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org<br /> + ServerName www.example.org<br /> <br /> # D'autres directives ici ...<br /> <br /> @@ -198,28 +197,28 @@ </VirtualHost> </code></p></div> - <p>Toute requête arrivant sur une autre adresse que - <code>172.20.30.50</code> sera servie par le serveur principal. - Les requêtes vers <code>172.20.30.50</code> avec un nom de serveur - inconnu, ou sans en-tête <code>Host:</code>, seront servies par - <code>www.example1.com</code>.</p> + <p>Toute requête arrivant sur une autre adresse que + <code>172.20.30.50</code> sera servie par le serveur principal. + Les requêtes vers <code>172.20.30.50</code> avec un nom de serveur + inconnu, ou sans en-tête <code>Host:</code>, seront servies par + <code>www.example.com</code>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="intraextra" id="intraextra">Servir le même contenu sur des - adresses IP différentes (telle qu'une adresse interne et une +<h2><a name="intraextra" id="intraextra">Servir le même contenu sur des + adresses IP différentes (telle qu'une adresse interne et une externe).</a></h2> - <p>La machine serveur dispose de deux adresses IP - (<code>192.168.1.1</code> et <code>172.20.30.40</code>). Cette - machine est placée à la fois sur le réseau interne (l'Intranet) - et le réseau externe (Internet). Sur Internet, le nom - <code>server.example.com</code> pointe vers l'adresse externe - (<code>172.20.30.40</code>), mais sur le réseau interne, ce même + <p>La machine serveur dispose de deux adresses IP + (<code>192.168.1.1</code> et <code>172.20.30.40</code>). Cette + machine est placée à la fois sur le réseau interne (l'Intranet) + et le réseau externe (Internet). Sur Internet, le nom + <code>server.example.com</code> pointe vers l'adresse externe + (<code>172.20.30.40</code>), mais sur le réseau interne, ce même nom pointe vers l'adresse interne (<code>192.168.1.1</code>).</p> - <p>Le serveur peut être configuré pour répondre de la même manière - aux requêtes internes et externes, au moyen d'une seule section + <p>Le serveur peut être configuré pour répondre de la même manière + aux requêtes internes et externes, au moyen d'une seule section <code>VirtualHost</code>.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -237,31 +236,31 @@ </VirtualHost> </code></p></div> - <p>Ainsi, les requêtes en provenance de chacun des deux réseaux + <p>Ainsi, les requêtes en provenance de chacun des deux réseaux seront servies par le même <code>VirtualHost</code>.</p> <div class="note"> - <h3>Note :</h3><p>Sur le réseau interne, il est possible - d'utiliser le nom raccourci <code>server</code> au lieu du nom + <h3>Note :</h3><p>Sur le réseau interne, il est possible + d'utiliser le nom raccourci <code>server</code> au lieu du nom complet <code>server.example.com</code>.</p> - <p>Notez également que dans l'exemple précédent, vous pouvez - remplacer la liste des adresses IP par des <code>*</code> afin - que le serveur réponde de la même manière sur toutes ses + <p>Notez également que dans l'exemple précédent, vous pouvez + remplacer la liste des adresses IP par des <code>*</code> afin + que le serveur réponde de la même manière sur toutes ses adresses.</p> </div> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="port" id="port">Servir différents sites sur différents +<h2><a name="port" id="port">Servir différents sites sur différents ports.</a></h2> - <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 + <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> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -275,28 +274,28 @@ <br /> <VirtualHost 172.20.30.40:80><br /> <span class="indent"> - ServerName www.example1.com<br /> + ServerName www.example.com<br /> DocumentRoot /www/domain-80<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:8080><br /> <span class="indent"> - ServerName www.example1.com<br /> + ServerName www.example.com<br /> DocumentRoot /www/domain-8080<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:80><br /> <span class="indent"> - ServerName www.example2.org<br /> + ServerName www.example.org<br /> DocumentRoot /www/otherdomain-80<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:8080><br /> <span class="indent"> - ServerName www.example2.org<br /> + ServerName www.example.org<br /> DocumentRoot /www/otherdomain-8080<br /> </span> </VirtualHost> @@ -306,9 +305,9 @@ <div class="section"> <h2><a name="ip" id="ip">Hébergement virtuel basé sur IP</a></h2> - <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> - et <code>172.20.30.50</code>) correspondant respectivement aux noms - <code>www.example1.com</code> et <code>www.example2.org</code>.</p> + <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> + et <code>172.20.30.50</code>) correspondant respectivement aux noms + <code>www.example.com</code> et <code>www.example.org</code>.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -317,33 +316,33 @@ <br /> <VirtualHost 172.20.30.40><br /> <span class="indent"> - DocumentRoot /www/example1<br /> + DocumentRoot /www/example.com<br /> ServerName www.example1.com<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50><br /> <span class="indent"> - DocumentRoot /www/example2<br /> + DocumentRoot /www/example.org<br /> ServerName www.example2.org<br /> </span> </VirtualHost> </code></p></div> - <p>Les requêtes provenant d'adresses non spécifiées dans l'une des - directives <code><VirtualHost></code> (comme pour - <code>localhost</code> par exemple) seront dirigées vers le serveur + <p>Les requêtes provenant d'adresses non spécifiées dans l'une des + directives <code><VirtualHost></code> (comme pour + <code>localhost</code> par exemple) seront dirigées vers le serveur principal, s'il en existe un.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="ipport" id="ipport">Hébergements virtuels mixtes basés sur +<h2><a name="ipport" id="ipport">Hébergements virtuels mixtes basés sur les ports et sur les IP</a></h2> - <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> - et <code>172.20.30.50</code>) correspondant respectivement aux noms - <code>www.example1.com</code> et <code>www.example2.org</code>. - Pour chacun d'eux, nous voulons un hébergement sur les ports 80 + <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> + et <code>172.20.30.50</code>) correspondant respectivement aux noms + <code>www.example.com</code> et <code>www.example.org</code>. + Pour chacun d'eux, nous voulons un hébergement sur les ports 80 et 8080.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -356,39 +355,39 @@ <br /> <VirtualHost 172.20.30.40:80><br /> <span class="indent"> - DocumentRoot /www/example1-80<br /> - ServerName www.example1.com<br /> + DocumentRoot /www/example.com-80<br /> + ServerName www.example.com<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:8080><br /> <span class="indent"> - DocumentRoot /www/example1-8080<br /> - ServerName www.example1.com<br /> + DocumentRoot /www/example.com-8080<br /> + ServerName www.example.com<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50:80><br /> <span class="indent"> - DocumentRoot /www/example2-80<br /> - ServerName www.example1.org<br /> + DocumentRoot /www/example.org-80<br /> + ServerName www.example.org<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50:8080><br /> <span class="indent"> - DocumentRoot /www/example2-8080<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org-8080<br /> + ServerName www.example.org<br /> </span> </VirtualHost> </code></p></div> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="mixed" id="mixed">Hébergements virtuels mixtes basé sur +<h2><a name="mixed" id="mixed">Hébergements virtuels mixtes basé sur les noms et sur IP</a></h2> - <p>Pour certaines adresses, des serveurs virtuels seront définis + <p>Pour certaines adresses, des serveurs virtuels seront définis par nom, et pour d'autres, ils seront définis par IP.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -400,59 +399,59 @@ <br /> <VirtualHost 172.20.30.40><br /> <span class="indent"> - DocumentRoot /www/example1<br /> - ServerName www.example1.com<br /> + DocumentRoot /www/example.com<br /> + ServerName www.example.com<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40><br /> <span class="indent"> - DocumentRoot /www/example2<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org<br /> + ServerName www.example.org<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40><br /> <span class="indent"> - DocumentRoot /www/example3<br /> - ServerName www.example3.net<br /> + DocumentRoot /www/example.net<br /> + ServerName www.example.net<br /> </span> </VirtualHost><br /> <br /> # "par-IP"<br /> <VirtualHost 172.20.30.50><br /> <span class="indent"> - DocumentRoot /www/example4<br /> - ServerName www.example4.edu<br /> + DocumentRoot /www/example.edu<br /> + ServerName www.example.edu<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.60><br /> <span class="indent"> - DocumentRoot /www/example5<br /> - ServerName www.example5.gov<br /> + DocumentRoot /www/example.gov<br /> + ServerName www.example.gov<br /> </span> </VirtualHost> </code></p></div> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="proxy" id="proxy">Utilisation simultanée de +<h2><a name="proxy" id="proxy">Utilisation simultanée de <code>Virtual_host</code> et de mod_proxy</a></h2> - <p>L'exemple suivant montre comment une machine peut mandater - un serveur virtuel fonctionnant sur le serveur d'une autre machine. - Dans cet exemple, un serveur virtuel de même nom est configuré sur - une machine à l'adresse <code>192.168.111.2</code>. La directive - <code class="directive"><a href="../mod/mod_proxy.html#proxypreservehost on">ProxyPreserveHost On</a></code> est - employée pour permette au nom de domaine d'être préservé lors du - transfert, au cas où plusieurs noms de domaines cohabitent sur + <p>L'exemple suivant montre comment une machine peut mandater + un serveur virtuel fonctionnant sur le serveur d'une autre machine. + Dans cet exemple, un serveur virtuel de même nom est configuré sur + une machine à l'adresse <code>192.168.111.2</code>. La directive + <code class="directive"><a href="../mod/mod_proxy.html#proxypreservehost on">ProxyPreserveHost On</a></code> est + employée pour permette au nom de domaine d'être préservé lors du + transfert, au cas où plusieurs noms de domaines cohabitent sur une même machine.</p> <div class="example"><p><code> <VirtualHost *:*><br /> ProxyPreserveHost On<br /> - ProxyPass / http://192.168.111.2/<br /> + ProxyPass / http://192.168.111.2<br /> ProxyPassReverse / http://192.168.111.2/<br /> ServerName hostname.example.com<br /> </VirtualHost> @@ -460,14 +459,14 @@ </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="default" id="default">Utilisation de serveurs virtuels +<h2><a name="default" id="default">Utilisation de serveurs virtuels <code>_default_</code></a></h2> - <h3><a name="defaultallports" id="defaultallports">Serveurs virtuels + <h3><a name="defaultallports" id="defaultallports">Serveurs virtuels <code>_default_</code> pour tous les ports</a></h3> - <p>Exemple de capture de <em>toutes</em> les requêtes émanant - d'adresses IP ou de ports non connus, <em>c'est-à-dire</em>, d'un + <p>Exemple de capture de <em>toutes</em> les requêtes émanant + d'adresses IP ou de ports non connus, <em>c'est-à-dire</em>, d'un couple adresse/port non traité par aucun autre serveur virtuel.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -480,30 +479,30 @@ </VirtualHost> </code></p></div> - <p>L'utilisation d'un tel serveur virtuel avec un joker pour le - port empêche de manière efficace qu'une requête n'atteigne le + <p>L'utilisation d'un tel serveur virtuel avec un joker pour le + port empêche de manière efficace qu'une requête n'atteigne le serveur principal.</p> - <p>Un serveur virtuel par défaut ne servira jamais une requête - qui est envoyée vers un couple adresse/port utilisée par un - serveur virtuel par nom. Si la requête contient un en-tête - <code>Host:</code> inconnu, ou si celui-ci est absent, elle - sera toujours servie par le serveur virtuel primaire par nom - (celui correspondant à ce couple adresse/port trouvé en premier + <p>Un serveur virtuel par défaut ne servira jamais une requête + qui est envoyée vers un couple adresse/port utilisée par un + serveur virtuel par nom. Si la requête contient un en-tête + <code>Host:</code> inconnu, ou si celui-ci est absent, elle + sera toujours servie par le serveur virtuel primaire par nom + (celui correspondant à ce couple adresse/port trouvé en premier dans le fichier de configuration).</p> - <p>Vous pouvez utiliser une directive - <code class="directive"><a href="../mod/mod_alias.html#aliasmatch">AliasMatch</a></code> ou - <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> afin de - réécrire une requête pour une unique page d'information (ou pour + <p>Vous pouvez utiliser une directive + <code class="directive"><a href="../mod/mod_alias.html#aliasmatch">AliasMatch</a></code> ou + <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> afin de + réécrire une requête pour une unique page d'information (ou pour un script).</p> - <h3><a name="defaultdifferentports" id="defaultdifferentports">Serveurs virtuels + <h3><a name="defaultdifferentports" id="defaultdifferentports">Serveurs virtuels <code>_default_</code> pour des ports différents</a></h3> - <p>La configuration est similaire à l'exemple précédent, mais - le serveur écoute sur plusieurs ports et un second serveur virtuel + <p>La configuration est similaire à l'exemple précédent, mais + le serveur écoute sur plusieurs ports et un second serveur virtuel <code>_default_</code> pour le port 80 est ajouté.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -524,17 +523,17 @@ </VirtualHost> </code></p></div> - <p>Le serveur virtuel par défaut défini pour le port 80 (il doit - impérativement être placé avant un autre serveur virtuel par - défaut traitant tous les ports grâce au joker *) capture toutes - les requêtes envoyées sur une adresse IP non spécifiée. Le + <p>Le serveur virtuel par défaut défini pour le port 80 (il doit + impérativement être placé avant un autre serveur virtuel par + défaut traitant tous les ports grâce au joker *) capture toutes + les requêtes envoyées sur une adresse IP non spécifiée. Le serveur principal n'est jamais utilisé pour servir une requête.</p> - <h3><a name="defaultoneport" id="defaultoneport">Serveurs virtuels + <h3><a name="defaultoneport" id="defaultoneport">Serveurs virtuels <code>_default_</code> pour un seul port</a></h3> - <p>Nous voulons créer un serveur virtuel par défaut seulement + <p>Nous voulons créer un serveur virtuel par défaut seulement pour le port 80.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -546,72 +545,72 @@ </VirtualHost> </code></p></div> - <p>Une requête vers une adresse non spécifiée sur le port 80 - sera servie par le serveur virtuel par défaut, et toute autre - requête vers une adresse et un port non spécifiés sera servie + <p>Une requête vers une adresse non spécifiée sur le port 80 + sera servie par le serveur virtuel par défaut, et toute autre + requête vers une adresse et un port non spécifiés sera servie par le serveur principal.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="migrate" id="migrate">Migration d'un serveur virtuel +<h2><a name="migrate" id="migrate">Migration d'un serveur virtuel par nom en un serveur virtuel par IP</a></h2> - <p>Le serveur virtuel par nom avec le nom de domaine - <code>www.example2.org</code> (de notre <a href="#name">exemple - par nom</a>) devrait obtenir sa propre adresse IP. Pendant la - phase de migration, il est possible d'éviter les problèmes avec - les noms de serveurs et autres serveurs mandataires qui mémorisent + <p>Le serveur virtuel par nom avec le nom de domaine + <code>www.example.org</code> (de notre <a href="#name">exemple + par nom</a>) devrait obtenir sa propre adresse IP. Pendant la + phase de migration, il est possible d'éviter les problèmes avec + les noms de serveurs et autres serveurs mandataires qui mémorisent les vielles adresses IP pour les serveurs virtuels par nom.<br /> - La solution est simple, car il suffit d'ajouter la nouvelle - adresse IP (<code>172.20.30.50</code>) dans la directive + La solution est simple, car il suffit d'ajouter la nouvelle + adresse IP (<code>172.20.30.50</code>) dans la directive <code>VirtualHost</code>.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> Listen 80<br /> - ServerName www.example1.com<br /> - DocumentRoot /www/example1<br /> + 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 /> <span class="indent"> - DocumentRoot /www/example2<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org<br /> + ServerName www.example.org<br /> # ...<br /> </span> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40><br /> <span class="indent"> - DocumentRoot /www/example3<br /> - ServerName www.example3.net<br /> - ServerAlias *.example3.net<br /> + DocumentRoot /www/example.net<br /> + ServerName www.example.net<br /> + ServerAlias *.example.net<br /> # ...<br /> </span> </VirtualHost> </code></p></div> - <p>Le serveur virtuel peut maintenant être joint par la nouvelle - adresse (comme un serveur virtuel par IP) et par l'ancienne + <p>Le serveur virtuel peut maintenant être joint par la nouvelle + adresse (comme un serveur virtuel par IP) et par l'ancienne adresse (comme un serveur virtuel par nom).</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> -<h2><a name="serverpath" id="serverpath">Utilisation de la directive +<h2><a name="serverpath" id="serverpath">Utilisation de la directive <code>ServerPath</code></a></h2> - <p>Dans le cas où vous disposez de deux serveurs virtuels par nom, - le client doit transmettre un en-tête <code>Host:</code> correct - pour déterminer le serveur concerné. Les vieux clients HTTP/1.0 - n'envoient pas un tel en-tête et Apache n'a aucun indice pour - connaître le serveur virtuel devant être joint (il sert la - requête à partir d'un serveur virtuel primaire). Dans un soucis - de préserver la compatibilité descendante, il suffit de créer - un serveur virtuel primaire chargé de retourner une page contenant - des liens dont les URLs auront un préfixe identifiant les serveurs + <p>Dans le cas où vous disposez de deux serveurs virtuels par nom, + le client doit transmettre un en-tête <code>Host:</code> correct + pour déterminer le serveur concerné. Les vieux clients HTTP/1.0 + n'envoient pas un tel en-tête et Apache n'a aucun indice pour + connaître le serveur virtuel devant être joint (il sert la + requête à partir d'un serveur virtuel primaire). Dans un soucis + de préserver la compatibilité descendante, il suffit de créer + un serveur virtuel primaire chargé de retourner une page contenant + des liens dont les URLs auront un préfixe identifiant les serveurs virtuels par nom.</p> <div class="example"><h3>Configuration du serveur</h3><p><code> @@ -652,21 +651,21 @@ </VirtualHost> </code></p></div> - <p>À cause de la directive - <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, une requête sur - une URL <code>http://www.sub1.domain.tld/sub1/</code> est + <p>À cause de la directive + <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, une requête sur + une URL <code>http://www.sub1.domain.tld/sub1/</code> est <em>toujours</em> servie par le serveur sub1-vhost.<br /> - Une requête sur une URL <code>http://www.sub1.domain.tld/</code> n'est - servie par le serveur sub1-vhost que si le client envoie un en-tête - <code>Host:</code> correct. Si aucun en-tête <code>Host:</code> - n'est transmis, le serveur primaire sera utilisé.<br /> - Notez qu'il y a une singularité : une requête sur - <code>http://www.sub2.domain.tld/sub1/</code> est également servie - par le serveur sub1-vhost si le client n'envoie pas d'en-tête - <code>Host:</code>.<br /> - Les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> - sont employées pour s'assurer que le client qui envoie un en-tête - <code>Host:</code> correct puisse utiliser d'autres variantes d'URLs, + Une requête sur une URL <code>http://www.sub1.domain.tld/</code> n'est + servie par le serveur sub1-vhost que si le client envoie un en-tête + <code>Host:</code> correct. Si aucun en-tête <code>Host:</code> + n'est transmis, le serveur primaire sera utilisé.</p> + <p>Notez qu'il y a une singularité : une requête sur + <code>http://www.sub2.domain.tld/sub1/</code> est également servie + par le serveur sub1-vhost si le client n'envoie pas d'en-tête + <code>Host:</code>.</p> + <p>Les directives <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> + sont employées pour s'assurer que le client qui envoie un en-tête + <code>Host:</code> correct puisse utiliser d'autres variantes d'URLs, <em>c'est-à-dire</em> avec ou sans préfixe d'URL.</p> </div></div> diff --git a/docs/manual/vhosts/examples.xml.fr b/docs/manual/vhosts/examples.xml.fr index c37ae826fe..17f1406371 100644 --- a/docs/manual/vhosts/examples.xml.fr +++ b/docs/manual/vhosts/examples.xml.fr @@ -3,6 +3,7 @@ <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> <!-- English Revision: 659902 --> <!-- French translation by Vincent Deffontaines, Alain B., review by --> +<!-- updated by Lucien Gentis --> <!-- Licensed to the Apache Software Foundation (ASF) under one or more @@ -27,30 +28,30 @@ <summary> - <p>Le but de ce document est d'essayer de répondre aux questions - les plus répandues sur la configuration des serveurs virtuels. - Les scénarios présentés ici se rencontrent quand plusieurs - serveurs Webs doivent tourner sur une seule et même machine au - moyen de serveurs virtuels <a href="name-based.html">par nom</a> + <p>Le but de ce document est d'essayer de répondre aux questions + les plus répandues sur la configuration des serveurs virtuels. + Les scénarios présentés ici se rencontrent quand plusieurs + serveurs Webs doivent tourner sur une seule et même machine au + moyen de serveurs virtuels <a href="name-based.html">par nom</a> ou <a href="ip-based.html">par IP</a>.</p> </summary> - <section id="purename"><title>Fonctionnement de plusieurs serveurs + <section id="purename"><title>Fonctionnement de plusieurs serveurs virtuels par nom sur une seule adresse IP.</title> - <p>Votre serveur ne dispose que d'une seule adresse IP, et de - nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. - Pour l'exemple, <code>www.example1.com</code> et - <code>www.example2.org</code> doivent tourner sur cette machine.</p> - - <note><title>Note :</title><p>La configuration de serveurs virtuels - sous Apache ne provoque pas leur apparition magique dans la - configuration du DNS. Il <em>faut</em> que leurs noms soient - définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP - du serveur, faute de quoi personne ne pourra visiter votre site Web. - Il est possible d'ajouter des entrées dans le fichier - <code>hosts</code> pour tests locaux, mais qui ne fonctionneront + <p>Votre serveur ne dispose que d'une seule adresse IP, et de + nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. + Pour l'exemple, <code>www.example.com</code> et + <code>www.example.org</code> doivent tourner sur cette machine.</p> + + <note><title>Note :</title><p>La configuration de serveurs virtuels + sous Apache ne provoque pas leur apparition magique dans la + configuration du DNS. Il <em>faut</em> que leurs noms soient + définis dans le DNS, et qu'ils y soient résolus sur l'adresse IP + du serveur, faute de quoi personne ne pourra visiter votre site Web. + Il est possible d'ajouter des entrées dans le fichier + <code>hosts</code> pour tests locaux, mais qui ne fonctionneront que sur la machine possédant ces entrées.</p> </note> @@ -60,13 +61,13 @@ # Apache doit écouter sur le port 80<br /> Listen 80<br /> <br /> - # Toutes les adresses IP doivent répondre aux requêtes sur les + # Toutes les adresses IP doivent répondre aux requêtes sur les # serveurs virtuels NameVirtualHost *:80<br /> <br /> <VirtualHost *:80><br /> <indent> - DocumentRoot /www/example1<br /> + DocumentRoot /www/example.com<br /> ServerName www.example1.com<br /> <br /> # Autres directives ici<br /> @@ -76,7 +77,7 @@ <br /> <VirtualHost *:80><br /> <indent> - DocumentRoot /www/example2<br /> + DocumentRoot /www/example.org<br /> ServerName www.example2.org<br /> <br /> # Autres directives ici<br /> @@ -85,89 +86,88 @@ </VirtualHost> </example> - <p>Les astérisques correspondent à toutes les adresses, si bien que - le serveur principal ne répondra jamais à aucune requête. Comme - <code>www.example1.com</code> se trouve en premier dans le fichier - de configuration, il a la plus grande priorité et peut être vu - comme serveur <cite>par défaut</cite> ou <cite>primaire</cite> ; - ce qui signifie que toute requête reçue ne correspondant pas à une - des directives <code>ServerName</code> sera servie par ce premier + <p>Les astérisques correspondent à toutes les adresses, si bien que + le serveur principal ne répondra jamais à aucune requête. Comme + <code>www.example.com</code> se trouve en premier dans le fichier + de configuration, il a la plus grande priorité et peut être vu + comme serveur <cite>par défaut</cite> ou <cite>primaire</cite> ; + ce qui signifie que toute requête reçue ne correspondant à aucune + des directives <code>ServerName</code> sera servie par ce premier <code>VirtualHost</code>.</p> <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 à + <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 /> + <br /> <VirtualHost 172.20.30.40><br /> - # etc ... + # etc ... </example> - <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 - exemple, pour des serveurs dont l'adresse IP est attribuée - dynamiquement par le FAI, et où le DNS est géré au moyen - d'un DNS dynamique quelconque. Comme <code>*</code> signifie - <cite>n'importe quelle adresse</cite>, cette configuration - fonctionne sans devoir être modifiée quand l'adresse IP du + <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 + exemple, pour des serveurs dont l'adresse IP est attribuée + dynamiquement par le FAI, et où le DNS est géré au moyen + d'un DNS dynamique quelconque. Comme <code>*</code> signifie + <cite>n'importe quelle adresse</cite>, cette configuration + fonctionne sans devoir être modifiée quand l'adresse IP du système est modifiée.</p> </note> - <p>La configuration ci-dessus est en pratique utilisée dans la - plupart des cas pour les serveurs virtuels par nom. En fait, le - seul cas où cette configuration ne fonctionne pas est lorsque - différents contenus doivent être servis en fonction de l'adresse IP + <p>La configuration ci-dessus est en pratique utilisée dans la + plupart des cas pour les serveurs virtuels par nom. En fait, le + seul cas où cette configuration ne fonctionne pas est lorsque + différents contenus doivent être servis en fonction de l'adresse IP et du port contactés par le client.</p> </section> - <section id="twoips"><title>Serveurs virtuels par nom sur plus + <section id="twoips"><title>Serveurs virtuels par nom sur plus d'une seule adresse IP.</title> - <note> - <title>Note :</title> - <p>Toutes les techniques présentées ici + <note> + <title>Note :</title><p>Toutes les techniques présentées ici peuvent être étendues à un plus grand nombre d'adresses IP.</p> </note> - <p>Le serveur a deux adresses IP. Sur l'une - (<code>172.20.30.40</code>), le serveur "principal" - <code>server.domain.com</code> doit répondre, et sur l'autre - (<code>172.20.30.50</code>), deux serveurs virtuels (ou plus) + <p>Le serveur a deux adresses IP. Sur l'une + (<code>172.20.30.40</code>), le serveur "principal" + <code>server.domain.com</code> doit répondre, et sur l'autre + (<code>172.20.30.50</code>), deux serveurs virtuels (ou plus) répondront.</p> <example> <title>Configuration du serveur</title> Listen 80<br /> - <br /> + <br /> # Serveur "principal" sur 172.20.30.40<br /> ServerName server.domain.com<br /> DocumentRoot /www/mainserver<br /> - <br /> + <br /> # l'autre adresse <br /> NameVirtualHost 172.20.30.50<br /> - <br /> + <br /> <VirtualHost 172.20.30.50><br /> <indent> - DocumentRoot /www/example1<br /> - ServerName www.example1.com<br /> - <br /> + DocumentRoot /www/example.com<br /> + ServerName www.example.com<br /> + <br /> # D'autres directives ici ...<br /> - <br /> + <br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50><br /> <indent> - DocumentRoot /www/example2<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org<br /> + ServerName www.example.org<br /> <br /> # D'autres directives ici ...<br /> <br /> @@ -175,28 +175,28 @@ </VirtualHost> </example> - <p>Toute requête arrivant sur une autre adresse que - <code>172.20.30.50</code> sera servie par le serveur principal. - Les requêtes vers <code>172.20.30.50</code> avec un nom de serveur - inconnu, ou sans en-tête <code>Host:</code>, seront servies par - <code>www.example1.com</code>.</p> + <p>Toute requête arrivant sur une autre adresse que + <code>172.20.30.50</code> sera servie par le serveur principal. + Les requêtes vers <code>172.20.30.50</code> avec un nom de serveur + inconnu, ou sans en-tête <code>Host:</code>, seront servies par + <code>www.example.com</code>.</p> </section> - <section id="intraextra"><title>Servir le même contenu sur des - adresses IP différentes (telle qu'une adresse interne et une + <section id="intraextra"><title>Servir le même contenu sur des + adresses IP différentes (telle qu'une adresse interne et une externe).</title> - <p>La machine serveur dispose de deux adresses IP - (<code>192.168.1.1</code> et <code>172.20.30.40</code>). Cette - machine est placée à la fois sur le réseau interne (l'Intranet) - et le réseau externe (Internet). Sur Internet, le nom - <code>server.example.com</code> pointe vers l'adresse externe - (<code>172.20.30.40</code>), mais sur le réseau interne, ce même + <p>La machine serveur dispose de deux adresses IP + (<code>192.168.1.1</code> et <code>172.20.30.40</code>). Cette + machine est placée à la fois sur le réseau interne (l'Intranet) + et le réseau externe (Internet). Sur Internet, le nom + <code>server.example.com</code> pointe vers l'adresse externe + (<code>172.20.30.40</code>), mais sur le réseau interne, ce même nom pointe vers l'adresse interne (<code>192.168.1.1</code>).</p> - <p>Le serveur peut être configuré pour répondre de la même manière - aux requêtes internes et externes, au moyen d'une seule section + <p>Le serveur peut être configuré pour répondre de la même manière + aux requêtes internes et externes, au moyen d'une seule section <code>VirtualHost</code>.</p> <example> @@ -214,31 +214,31 @@ </VirtualHost> </example> - <p>Ainsi, les requêtes en provenance de chacun des deux réseaux + <p>Ainsi, les requêtes en provenance de chacun des deux réseaux seront servies par le même <code>VirtualHost</code>.</p> <note> - <title>Note :</title><p>Sur le réseau interne, il est possible - d'utiliser le nom raccourci <code>server</code> au lieu du nom + <title>Note :</title><p>Sur le réseau interne, il est possible + d'utiliser le nom raccourci <code>server</code> au lieu du nom complet <code>server.example.com</code>.</p> - <p>Notez également que dans l'exemple précédent, vous pouvez - remplacer la liste des adresses IP par des <code>*</code> afin - que le serveur réponde de la même manière sur toutes ses + <p>Notez également que dans l'exemple précédent, vous pouvez + remplacer la liste des adresses IP par des <code>*</code> afin + que le serveur réponde de la même manière sur toutes ses adresses.</p> </note> </section> - <section id="port"><title>Servir différents sites sur différents + <section id="port"><title>Servir différents sites sur différents 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 + <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> <example> @@ -252,28 +252,28 @@ <br /> <VirtualHost 172.20.30.40:80><br /> <indent> - ServerName www.example1.com<br /> + ServerName www.example.com<br /> DocumentRoot /www/domain-80<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:8080><br /> <indent> - ServerName www.example1.com<br /> + ServerName www.example.com<br /> DocumentRoot /www/domain-8080<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:80><br /> <indent> - ServerName www.example2.org<br /> + ServerName www.example.org<br /> DocumentRoot /www/otherdomain-80<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:8080><br /> <indent> - ServerName www.example2.org<br /> + ServerName www.example.org<br /> DocumentRoot /www/otherdomain-8080<br /> </indent> </VirtualHost> @@ -283,9 +283,9 @@ <section id="ip"><title>Hébergement virtuel basé sur IP</title> - <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> - et <code>172.20.30.50</code>) correspondant respectivement aux noms - <code>www.example1.com</code> et <code>www.example2.org</code>.</p> + <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> + et <code>172.20.30.50</code>) correspondant respectivement aux noms + <code>www.example.com</code> et <code>www.example.org</code>.</p> <example> <title>Configuration du serveur</title> @@ -294,33 +294,33 @@ <br /> <VirtualHost 172.20.30.40><br /> <indent> - DocumentRoot /www/example1<br /> + DocumentRoot /www/example.com<br /> ServerName www.example1.com<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50><br /> <indent> - DocumentRoot /www/example2<br /> + DocumentRoot /www/example.org<br /> ServerName www.example2.org<br /> </indent> </VirtualHost> </example> - <p>Les requêtes provenant d'adresses non spécifiées dans l'une des - directives <code><VirtualHost></code> (comme pour - <code>localhost</code> par exemple) seront dirigées vers le serveur + <p>Les requêtes provenant d'adresses non spécifiées dans l'une des + directives <code><VirtualHost></code> (comme pour + <code>localhost</code> par exemple) seront dirigées vers le serveur principal, s'il en existe un.</p> </section> - <section id="ipport"><title>Hébergements virtuels mixtes basés sur + <section id="ipport"><title>Hébergements virtuels mixtes basés sur les ports et sur les IP</title> - <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> - et <code>172.20.30.50</code>) correspondant respectivement aux noms - <code>www.example1.com</code> et <code>www.example2.org</code>. - Pour chacun d'eux, nous voulons un hébergement sur les ports 80 + <p>Le serveur dispose de deux adresses IP (<code>172.20.30.40</code> + et <code>172.20.30.50</code>) correspondant respectivement aux noms + <code>www.example.com</code> et <code>www.example.org</code>. + Pour chacun d'eux, nous voulons un hébergement sur les ports 80 et 8080.</p> <example> @@ -333,39 +333,39 @@ <br /> <VirtualHost 172.20.30.40:80><br /> <indent> - DocumentRoot /www/example1-80<br /> - ServerName www.example1.com<br /> + DocumentRoot /www/example.com-80<br /> + ServerName www.example.com<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40:8080><br /> <indent> - DocumentRoot /www/example1-8080<br /> - ServerName www.example1.com<br /> + DocumentRoot /www/example.com-8080<br /> + ServerName www.example.com<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50:80><br /> <indent> - DocumentRoot /www/example2-80<br /> - ServerName www.example1.org<br /> + DocumentRoot /www/example.org-80<br /> + ServerName www.example.org<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.50:8080><br /> <indent> - DocumentRoot /www/example2-8080<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org-8080<br /> + ServerName www.example.org<br /> </indent> </VirtualHost> </example> </section> - <section id="mixed"><title>Hébergements virtuels mixtes basé sur + <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 + <p>Pour certaines adresses, des serveurs virtuels seront définis par nom, et pour d'autres, ils seront définis par IP.</p> <example> @@ -377,59 +377,59 @@ <br /> <VirtualHost 172.20.30.40><br /> <indent> - DocumentRoot /www/example1<br /> - ServerName www.example1.com<br /> + DocumentRoot /www/example.com<br /> + ServerName www.example.com<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40><br /> <indent> - DocumentRoot /www/example2<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org<br /> + ServerName www.example.org<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40><br /> <indent> - DocumentRoot /www/example3<br /> - ServerName www.example3.net<br /> + DocumentRoot /www/example.net<br /> + ServerName www.example.net<br /> </indent> </VirtualHost><br /> <br /> # "par-IP"<br /> <VirtualHost 172.20.30.50><br /> <indent> - DocumentRoot /www/example4<br /> - ServerName www.example4.edu<br /> + DocumentRoot /www/example.edu<br /> + ServerName www.example.edu<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.60><br /> <indent> - DocumentRoot /www/example5<br /> - ServerName www.example5.gov<br /> + DocumentRoot /www/example.gov<br /> + ServerName www.example.gov<br /> </indent> </VirtualHost> </example> </section> - <section id="proxy"><title>Utilisation simultanée de + <section id="proxy"><title>Utilisation simultanée de <code>Virtual_host</code> et de mod_proxy</title> - <p>L'exemple suivant montre comment une machine peut mandater - un serveur virtuel fonctionnant sur le serveur d'une autre machine. - Dans cet exemple, un serveur virtuel de même nom est configuré sur - une machine à l'adresse <code>192.168.111.2</code>. La directive - <directive module="mod_proxy">ProxyPreserveHost On</directive> est - employée pour permette au nom de domaine d'être préservé lors du - transfert, au cas où plusieurs noms de domaines cohabitent sur + <p>L'exemple suivant montre comment une machine peut mandater + un serveur virtuel fonctionnant sur le serveur d'une autre machine. + Dans cet exemple, un serveur virtuel de même nom est configuré sur + une machine à l'adresse <code>192.168.111.2</code>. La directive + <directive module="mod_proxy">ProxyPreserveHost On</directive> est + employée pour permette au nom de domaine d'être préservé lors du + transfert, au cas où plusieurs noms de domaines cohabitent sur une même machine.</p> <example> <VirtualHost *:*><br /> ProxyPreserveHost On<br /> - ProxyPass / http://192.168.111.2/<br /> + ProxyPass / http://192.168.111.2<br /> ProxyPassReverse / http://192.168.111.2/<br /> ServerName hostname.example.com<br /> </VirtualHost> @@ -437,14 +437,14 @@ </section> - <section id="default"><title>Utilisation de serveurs virtuels + <section id="default"><title>Utilisation de serveurs virtuels <code>_default_</code></title> - <section id="defaultallports"><title>Serveurs virtuels + <section id="defaultallports"><title>Serveurs virtuels <code>_default_</code> pour tous les ports</title> - <p>Exemple de capture de <em>toutes</em> les requêtes émanant - d'adresses IP ou de ports non connus, <em>c'est-à-dire</em>, d'un + <p>Exemple de capture de <em>toutes</em> les requêtes émanant + d'adresses IP ou de ports non connus, <em>c'est-à-dire</em>, d'un couple adresse/port non traité par aucun autre serveur virtuel.</p> <example> @@ -457,30 +457,30 @@ </VirtualHost> </example> - <p>L'utilisation d'un tel serveur virtuel avec un joker pour le - port empêche de manière efficace qu'une requête n'atteigne le + <p>L'utilisation d'un tel serveur virtuel avec un joker pour le + port empêche de manière efficace qu'une requête n'atteigne le serveur principal.</p> - <p>Un serveur virtuel par défaut ne servira jamais une requête - qui est envoyée vers un couple adresse/port utilisée par un - serveur virtuel par nom. Si la requête contient un en-tête - <code>Host:</code> inconnu, ou si celui-ci est absent, elle - sera toujours servie par le serveur virtuel primaire par nom - (celui correspondant à ce couple adresse/port trouvé en premier + <p>Un serveur virtuel par défaut ne servira jamais une requête + qui est envoyée vers un couple adresse/port utilisée par un + serveur virtuel par nom. Si la requête contient un en-tête + <code>Host:</code> inconnu, ou si celui-ci est absent, elle + sera toujours servie par le serveur virtuel primaire par nom + (celui correspondant à ce couple adresse/port trouvé en premier dans le fichier de configuration).</p> - <p>Vous pouvez utiliser une directive - <directive module="mod_alias">AliasMatch</directive> ou - <directive module="mod_rewrite">RewriteRule</directive> afin de - réécrire une requête pour une unique page d'information (ou pour + <p>Vous pouvez utiliser une directive + <directive module="mod_alias">AliasMatch</directive> ou + <directive module="mod_rewrite">RewriteRule</directive> afin de + réécrire une requête pour une unique page d'information (ou pour un script).</p> </section> - <section id="defaultdifferentports"><title>Serveurs virtuels + <section id="defaultdifferentports"><title>Serveurs virtuels <code>_default_</code> pour des ports différents</title> - <p>La configuration est similaire à l'exemple précédent, mais - le serveur écoute sur plusieurs ports et un second serveur virtuel + <p>La configuration est similaire à l'exemple précédent, mais + le serveur écoute sur plusieurs ports et un second serveur virtuel <code>_default_</code> pour le port 80 est ajouté.</p> <example> @@ -501,17 +501,17 @@ </VirtualHost> </example> - <p>Le serveur virtuel par défaut défini pour le port 80 (il doit - impérativement être placé avant un autre serveur virtuel par - défaut traitant tous les ports grâce au joker *) capture toutes - les requêtes envoyées sur une adresse IP non spécifiée. Le + <p>Le serveur virtuel par défaut défini pour le port 80 (il doit + impérativement être placé avant un autre serveur virtuel par + défaut traitant tous les ports grâce au joker *) capture toutes + les requêtes envoyées sur une adresse IP non spécifiée. Le serveur principal n'est jamais utilisé pour servir une requête.</p> </section> - <section id="defaultoneport"><title>Serveurs virtuels + <section id="defaultoneport"><title>Serveurs virtuels <code>_default_</code> pour un seul port</title> - <p>Nous voulons créer un serveur virtuel par défaut seulement + <p>Nous voulons créer un serveur virtuel par défaut seulement pour le port 80.</p> <example> @@ -523,72 +523,72 @@ </VirtualHost> </example> - <p>Une requête vers une adresse non spécifiée sur le port 80 - sera servie par le serveur virtuel par défaut, et toute autre - requête vers une adresse et un port non spécifiés sera servie + <p>Une requête vers une adresse non spécifiée sur le port 80 + sera servie par le serveur virtuel par défaut, et toute autre + requête vers une adresse et un port non spécifiés sera servie par le serveur principal.</p> </section> </section> - <section id="migrate"><title>Migration d'un serveur virtuel + <section id="migrate"><title>Migration d'un serveur virtuel par nom en un serveur virtuel par IP</title> - <p>Le serveur virtuel par nom avec le nom de domaine - <code>www.example2.org</code> (de notre <a href="#name">exemple - par nom</a>) devrait obtenir sa propre adresse IP. Pendant la - phase de migration, il est possible d'éviter les problèmes avec - les noms de serveurs et autres serveurs mandataires qui mémorisent + <p>Le serveur virtuel par nom avec le nom de domaine + <code>www.example.org</code> (de notre <a href="#name">exemple + par nom</a>) devrait obtenir sa propre adresse IP. Pendant la + phase de migration, il est possible d'éviter les problèmes avec + les noms de serveurs et autres serveurs mandataires qui mémorisent les vielles adresses IP pour les serveurs virtuels par nom.<br /> - La solution est simple, car il suffit d'ajouter la nouvelle - adresse IP (<code>172.20.30.50</code>) dans la directive + La solution est simple, car il suffit d'ajouter la nouvelle + adresse IP (<code>172.20.30.50</code>) dans la directive <code>VirtualHost</code>.</p> <example> <title>Configuration du serveur</title> Listen 80<br /> - ServerName www.example1.com<br /> - DocumentRoot /www/example1<br /> + 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/example2<br /> - ServerName www.example2.org<br /> + DocumentRoot /www/example.org<br /> + ServerName www.example.org<br /> # ...<br /> </indent> </VirtualHost><br /> <br /> <VirtualHost 172.20.30.40><br /> <indent> - DocumentRoot /www/example3<br /> - ServerName www.example3.net<br /> - ServerAlias *.example3.net<br /> + DocumentRoot /www/example.net<br /> + ServerName www.example.net<br /> + ServerAlias *.example.net<br /> # ...<br /> </indent> </VirtualHost> </example> - <p>Le serveur virtuel peut maintenant être joint par la nouvelle - adresse (comme un serveur virtuel par IP) et par l'ancienne + <p>Le serveur virtuel peut maintenant être joint par la nouvelle + adresse (comme un serveur virtuel par IP) et par l'ancienne adresse (comme un serveur virtuel par nom).</p> </section> - <section id="serverpath"><title>Utilisation de la directive + <section id="serverpath"><title>Utilisation de la directive <code>ServerPath</code></title> - <p>Dans le cas où vous disposez de deux serveurs virtuels par nom, - le client doit transmettre un en-tête <code>Host:</code> correct - pour déterminer le serveur concerné. Les vieux clients HTTP/1.0 - n'envoient pas un tel en-tête et Apache n'a aucun indice pour - connaître le serveur virtuel devant être joint (il sert la - requête à partir d'un serveur virtuel primaire). Dans un soucis - de préserver la compatibilité descendante, il suffit de créer - un serveur virtuel primaire chargé de retourner une page contenant - des liens dont les URLs auront un préfixe identifiant les serveurs + <p>Dans le cas où vous disposez de deux serveurs virtuels par nom, + le client doit transmettre un en-tête <code>Host:</code> correct + pour déterminer le serveur concerné. Les vieux clients HTTP/1.0 + n'envoient pas un tel en-tête et Apache n'a aucun indice pour + connaître le serveur virtuel devant être joint (il sert la + requête à partir d'un serveur virtuel primaire). Dans un soucis + de préserver la compatibilité descendante, il suffit de créer + un serveur virtuel primaire chargé de retourner une page contenant + des liens dont les URLs auront un préfixe identifiant les serveurs virtuels par nom.</p> <example> @@ -629,21 +629,21 @@ </VirtualHost> </example> - <p>À cause de la directive - <directive module="core">ServerPath</directive>, une requête sur - une URL <code>http://www.sub1.domain.tld/sub1/</code> est + <p>À cause de la directive + <directive module="core">ServerPath</directive>, une requête sur + une URL <code>http://www.sub1.domain.tld/sub1/</code> est <em>toujours</em> servie par le serveur sub1-vhost.<br /> - Une requête sur une URL <code>http://www.sub1.domain.tld/</code> n'est - servie par le serveur sub1-vhost que si le client envoie un en-tête - <code>Host:</code> correct. Si aucun en-tête <code>Host:</code> - n'est transmis, le serveur primaire sera utilisé.<br /> - Notez qu'il y a une singularité : une requête sur - <code>http://www.sub2.domain.tld/sub1/</code> est également servie - par le serveur sub1-vhost si le client n'envoie pas d'en-tête - <code>Host:</code>.<br /> - Les directives <directive module="mod_rewrite">RewriteRule</directive> - sont employées pour s'assurer que le client qui envoie un en-tête - <code>Host:</code> correct puisse utiliser d'autres variantes d'URLs, + Une requête sur une URL <code>http://www.sub1.domain.tld/</code> n'est + servie par le serveur sub1-vhost que si le client envoie un en-tête + <code>Host:</code> correct. Si aucun en-tête <code>Host:</code> + n'est transmis, le serveur primaire sera utilisé.</p> + <p>Notez qu'il y a une singularité : une requête sur + <code>http://www.sub2.domain.tld/sub1/</code> est également servie + par le serveur sub1-vhost si le client n'envoie pas d'en-tête + <code>Host:</code>.</p> + <p>Les directives <directive module="mod_rewrite">RewriteRule</directive> + sont employées pour s'assurer que le client qui envoie un en-tête + <code>Host:</code> correct puisse utiliser d'autres variantes d'URLs, <em>c'est-à-dire</em> avec ou sans préfixe d'URL.</p> </section> diff --git a/docs/manual/vhosts/index.html.fr b/docs/manual/vhosts/index.html.fr index 4017255738..0842ab56b6 100644 --- a/docs/manual/vhosts/index.html.fr +++ b/docs/manual/vhosts/index.html.fr @@ -38,8 +38,8 @@ <p>Apache a été le précurseur des serveurs proposant cette méthode de serveurs virtuels basés sur les adresses IP. Ses - versions 1.1 et suivantes ont toujours proposées ces deux - méthodes de serveurs virtuels par-IP et par-nom. Cette + versions 1.1 et suivantes proposent les deux + méthodes de serveurs virtuels : par-IP et par-nom. Cette deuxième méthode est parfois également appelée <em>host-based</em> ou <em>serveur virtuel non-IP</em>.</p> diff --git a/docs/manual/vhosts/index.xml.fr b/docs/manual/vhosts/index.xml.fr index 6d4357dd75..f640f1798f 100644 --- a/docs/manual/vhosts/index.xml.fr +++ b/docs/manual/vhosts/index.xml.fr @@ -40,8 +40,8 @@ <p>Apache a été le précurseur des serveurs proposant cette méthode de serveurs virtuels basés sur les adresses IP. Ses - versions 1.1 et suivantes ont toujours proposées ces deux - méthodes de serveurs virtuels par-IP et par-nom. Cette + versions 1.1 et suivantes proposent les deux + méthodes de serveurs virtuels : par-IP et par-nom. Cette deuxième méthode est parfois également appelée <em>host-based</em> ou <em>serveur virtuel non-IP</em>.</p> diff --git a/docs/manual/vhosts/mass.html b/docs/manual/vhosts/mass.html index 408420d11b..28a83f3036 100644 --- a/docs/manual/vhosts/mass.html +++ b/docs/manual/vhosts/mass.html @@ -4,6 +4,10 @@ URI: mass.html.en Content-Language: en Content-type: text/html; charset=ISO-8859-1 +URI: mass.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + URI: mass.html.ko.euc-kr Content-Language: ko Content-type: text/html; charset=EUC-KR diff --git a/docs/manual/vhosts/mass.html.en b/docs/manual/vhosts/mass.html.en index 54b9107e76..df168b182d 100644 --- a/docs/manual/vhosts/mass.html.en +++ b/docs/manual/vhosts/mass.html.en @@ -19,6 +19,7 @@ <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Virtual Hosts</a></div><div id="page-content"><div id="preamble"><h1>Dynamically Configured Mass Virtual Hosting</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/vhosts/mass.html" title="English"> en </a> | +<a href="../fr/vhosts/mass.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/vhosts/mass.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> @@ -422,6 +423,7 @@ RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script] </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/vhosts/mass.html" title="English"> en </a> | +<a href="../fr/vhosts/mass.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | <a href="../tr/vhosts/mass.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div><div id="footer"> diff --git a/docs/manual/vhosts/mass.html.fr b/docs/manual/vhosts/mass.html.fr new file mode 100644 index 0000000000..811687f148 --- /dev/null +++ b/docs/manual/vhosts/mass.html.fr @@ -0,0 +1,466 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Hébergement virtuel de masse configuré dynamiquement - Serveur Apache HTTP</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur Apache HTTP Version 2.3</p> +<img alt="" src="../images/feather.gif" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Hébergement virtuel</a></div><div id="page-content"><div id="preamble"><h1>Hébergement virtuel de masse configuré dynamiquement</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/vhosts/mass.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/vhosts/mass.html" title="Français"> fr </a> | +<a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/vhosts/mass.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> + + + <p>Ce document propose une méthode performante pour servir un nombre + quelconque d'hôtes virtuels avec le serveur web httpd Apache. + </p> + +</div> +<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#motivation">A qui ce document est-il destiné ?</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#overview">Vue d'ensemble</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#simple">Méthode simple d'hébergement virtuel +dynamique</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#homepages">Un système de pages d'accueil hébergées +virtuellement</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#combinations">Utiliser plusieurs systèmes +d'hébergement virtuel sur le même serveur</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#ipbased">Pour un hébergement virtuel par IP plus +efficace</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#simple.rewrite">Configuration de base pour un +hébergement virtuel dynamique utilisant +<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#homepages.rewrite">Un système de pages d'accueil qui +utilise<code>mod_rewrite</code></a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#xtra-conf">Utilisation d'un fichier de configuration +séparé pour les serveurs virtuels</a></li> +</ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="motivation" id="motivation">A qui ce document est-il destiné ?</a></h2> + + <p>Les techniques décrites ici vous concernent si votre + <code>httpd.conf</code> contient de nombreuses sections + <code><VirtualHost></code> très semblables, + dans le style :</p> + +<div class="example"><p><code> +NameVirtualHost 111.22.33.44<br /> +<VirtualHost 111.22.33.44><br /> +<span class="indent"> + ServerName www.customer-1.com<br /> + DocumentRoot /www/hosts/www.customer-1.com/docs<br /> + ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin<br /> +</span> +</VirtualHost><br /> +<VirtualHost 111.22.33.44><br /> +<span class="indent"> + ServerName www.customer-2.com<br /> + DocumentRoot /www/hosts/www.customer-2.com/docs<br /> + ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin<br /> +</span> +</VirtualHost><br /> +# bla bla bla<br /> +<VirtualHost 111.22.33.44><br /> +<span class="indent"> + ServerName www.customer-N.com<br /> + DocumentRoot /www/hosts/www.customer-N.com/docs<br /> + ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin<br /> +</span> +</VirtualHost> +</code></p></div> + + <p>L'idée de base consiste à remplacer toutes les configurations + <code><VirtualHost></code> par un mécanisme qui les génère + dynamiquement. Ceci présente certains avantages :</p> + + <ol> + <li>Votre fichier de configuration est plus petit, ainsi Apache + démarre plus rapidement et consomme moins de mémoire.</li> + + <li>Pour ajouter des serveurs virtuels, il suffit de créer les + répertoires appropriés dans le système de fichiers et les entrées + dans le DNS - il n'est plus nécessaire de reconfigurer ou de + redémarrer Apache.</li> + </ol> + + <p>Le principal désavantage réside dans le fait que vous ne pouvez + pas définir un fichier journal différent pour chaque serveur + virtuel. De toute façon, ce serait une mauvaise idée si vous avez de + nombreux serveurs virtuels, car cela nécessiterait un nombre + important de descripteurs de fichiers. Il est préférable de + rediriger les journaux via un pipe ou une pile fifo vers un + programme, et faire en sorte que ce dernier distribue les journaux + les concernant aux différents clients (Ce qui peut aussi servir à + accumuler des données à des fins de statistiques, etc...).</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="overview" id="overview">Vue d'ensemble</a></h2> + + <p>Un serveur virtuel peut être défini par deux informations : son + adresse IP, et le contenu de l'en-tête <code>Host:</code> de la + requête HTTP. La technique d'hébergement virtuel dynamique de masse + utilisée ici consiste à insérer automatiquement ces informations + dans le chemin du fichier à utiliser pour répondre à la requête. On + peut y parvenir assez facilement en utilisant + <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> avec Apache 2.0, mais on peut aussi + utiliser <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Par défaut, ces deux modules + sont désactivés ; vous devez activer l'un d'eux lors de la + compilation et de la configuration d'Apache si vous voulez utiliser + cette technique.</p> + + <p>Certains paramètres doivent être adaptés pour que le serveur + dynamique se présente comme un serveur dynamique normal. Le plus + important est le nom du serveur, qu'Apache utilise pour générer des + URLs d'auto-référencement, etc... Il est défini via la directive + <code>ServerName</code>, et les CGIs peuvent s'y référer via la + variable d'environnement <code>SERVER_NAME</code>. Sa véritable + valeur utilisée à l'exécution est contrôlée par la définition de la + directive + <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>. Avec + <code>UseCanonicalName Off</code>, le nom du serveur correspond au + contenu de l'en-tête <code>Host:</code> de la requête. Avec + <code>UseCanonicalName DNS</code>, il est extrait d'une recherche + DNS inverse sur l'adresse IP du serveur virtuel. La première + configuration est utilisée pour l'hébergement virtuel dynamique par + nom, et la deuxième pour l'hébergement virtuel dynamique par IP. Si + Apache ne peut pas déterminer le nom du serveur, soit parce qu'il + n'y a pas d'en-tête <code>Host:</code>, soit parce que la recherche + DNS a échoué, il prend en compte la valeur définie par la directive + <code>ServerName</code>.</p> + + <p>L'autre paramètre à adapter est la racine des documents (définie + via la directive <code>DocumentRoot</code> et disponible pour les + CGIs via la variable d'environnement <code>DOCUMENT_ROOT</code>). + Dans une configuration classique, il est utilisé par le module core + pour faire correspondre les URIs aux noms de fichiers, mais lorsque + la configuration du serveur comporte des serveurs virtuels, ce + traitement doit être pris en charge par un autre module (soit + <code>mod_vhost_alias</code>, soit <code>mod_rewrite</code>), qui + utilise un méthode de correspondance différente. Aucun de ces + modules ne se chargeant de définir la variable d'environnement + <code>DOCUMENT_ROOT</code>, si des CGIs ou des documents SSI + doivent en faire usage, ils obtiendront une valeur erronée.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="simple" id="simple">Méthode simple d'hébergement virtuel +dynamique</a></h2> + + <p>Cet extrait de fichier <code>httpd.conf</code> implémente + l'hébergement virtuel décrit dans la section <a href="#motivation">À qui ce document est-il destiné ?</a> ci-dessus, + mais selon une méthode générique utilisant + <code>mod_vhost_alias</code>.</p> + +<div class="example"><p><code> +# extrait le nom du serveur de l'en-tête Host:<br /> +UseCanonicalName Off<br /> +<br /> +# ce format de journal peut être éclaté en journaux par serveur virtuel +# à l'aide du premier champ<br /> +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon<br /> +CustomLog logs/access_log vcommon<br /> +<br /> +# inclut le nom du serveur dans les noms de fichiers ressources +# nécessaires aux traitements des requêtes<br /> +VirtualDocumentRoot /www/hosts/%0/docs<br /> +VirtualScriptAlias /www/hosts/%0/cgi-bin +</code></p></div> + + <p>Pour changer cette configuration en solution de serveur virtuel + par IP, il suffit de remplacer <code>UseCanonicalName + Off</code> par <code>UseCanonicalName DNS</code>. Le nom du serveur + inséré dans le nom de fichier sera alors déduit de l'adresse IP du + serveur virtuel.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="homepages" id="homepages">Un système de pages d'accueil hébergées +virtuellement</a></h2> + + <p>Il s'agit d'une adaptation du système ci-dessus, ajusté pour un + serveur de pages d'accueil de FAI. Avec une configuration un peu + plus compliquée, on peut extraire des sous-chaînes de caractères du + nom du serveur pour les utiliser dans le nom de fichier afin, par + exemple, de définir <code>/home/user/</code> comme emplacement des + documents pour <code>www.user.isp.com</code>. Un seul répertoire + <code>cgi-bin</code> suffit pour l'ensemble des + serveurs virtuels.</p> + +<div class="example"><p><code> +# les directives préliminaires sont identiques à celles de l'exemple +# ci-dessus ; il vient ensuite :<br /> +<br /> +# insertion d'une partie du nom du serveur dans les noms de fichiers<br /> +VirtualDocumentRoot /www/hosts/%2/docs<br /> +<br /> +# répertoire cgi-bin unique<br /> +ScriptAlias /cgi-bin/ /www/std-cgi/<br /> +</code></p></div> + + <p>Vous trouverez des exemples plus élaborés d'utilisation de la + directive <code>VirtualDocumentRoot</code> dans la documentation du + module <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code>.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="combinations" id="combinations">Utiliser plusieurs systèmes +d'hébergement virtuel sur le même serveur</a></h2> + + <p>Moyennant une configuration un peu plus compliquée, vous pouvez + contrôler la portée des différentes configurations d'hébergement + virtuel à l'aide des directives <code><VirtualHost></code> + normales d'Apache. Par exemple, on peut associer une adresse IP pour + les pages d'accueil des clients en général, et une autre pour les + clients commerciaux avec la configuration suivante. Cette + configuration peut bien entendu être combinée avec les sections + <code><VirtualHost></code> conventionnelles.</p> + +<div class="example"><p><code> +UseCanonicalName Off<br /> +<br /> +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon<br /> +<br /> +<Directory /www/commercial><br /> +<span class="indent"> + Options FollowSymLinks<br /> + AllowOverride All<br /> +</span> +</Directory><br /> +<br /> +<Directory /www/homepages><br /> +<span class="indent"> + Options FollowSymLinks<br /> + AllowOverride None<br /> +</span> +</Directory><br /> +<br /> +<VirtualHost 111.22.33.44><br /> +<span class="indent"> + ServerName www.commercial.isp.com<br /> + <br /> + CustomLog logs/access_log.commercial vcommon<br /> + <br /> + VirtualDocumentRoot /www/commercial/%0/docs<br /> + VirtualScriptAlias /www/commercial/%0/cgi-bin<br /> +</span> +</VirtualHost><br /> +<br /> +<VirtualHost 111.22.33.45><br /> +<span class="indent"> + ServerName www.homepages.isp.com<br /> + <br /> + CustomLog logs/access_log.homepages vcommon<br /> + <br /> + VirtualDocumentRoot /www/homepages/%0/docs<br /> + ScriptAlias /cgi-bin/ /www/std-cgi/<br /> +</span> +</VirtualHost> +</code></p></div> + +<div class="note"> + <h3>Note</h3> + <p>Si le premier bloc VirtualHost ne comporte <em>pas</em> de + directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>, c'est + le nom issu d'une recherche DNS inverse à partir de l'adresse IP + du serveur virtuel qui sera utilisé. Si ce nom ne correspond pas + à celui que vous voulez utiliser, vous pouvez ajouter une entrée + de remplacement (<code>ServerName + none.example.com</code>) pour éviter ce comportement.</p> +</div> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="ipbased" id="ipbased">Pour un hébergement virtuel par IP plus +efficace</a></h2> + + <p>Les changements de configuration suggérés pour transformer <a href="#simple">le premier exemple</a> en hébergement virtuel par IP + conduisent à une configuration peu efficace. Chaque requête + nécessite une nouvelle recherche DNS. Pour éviter cette surcharge de + travail, le système de fichiers peut être organisé pour correspondre + aux adresses IP, plutôt qu'aux noms de serveurs, supprimant par + la-même la nécessité d'une recherche DNS. La journalisation doit + aussi être adaptée pour fonctionner sur un tel système.</p> + +<div class="example"><p><code> +# obtention du nom du serveur par recherche DNS inverse +# sur l'adresse IP<br /> +UseCanonicalName DNS<br /> +<br /> +# insertion de l'adresse IP dans les journaux afin de pouvoir les +# éclater<br /> +LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon<br /> +CustomLog logs/access_log vcommon<br /> +<br /> +# insertion de l'adresse IP dans les noms de fichiers<br /> +VirtualDocumentRootIP /www/hosts/%0/docs<br /> +VirtualScriptAliasIP /www/hosts/%0/cgi-bin<br /> +</code></p></div> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="simple.rewrite" id="simple.rewrite">Configuration de base pour un +hébergement virtuel dynamique utilisant +<code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></a></h2> + + <p>Cet extrait de <code>httpd.conf</code> fournit le même service + que le <a href="#simple">premier exemple</a>. La première moitié est + très similaire à sa contre-partie du <a href="#simple">premier + exemple</a>, mis à part quelques changements à des fins de + compatibilité ascendante et nécessaires au bon fonctionnement de la + partie concernant <code>mod_rewrite</code> ; la seconde moitié + configure <code>mod_rewrite</code> pour l'accomplissement du travail + proprement dit.</p> + + <p>Cet exemple comporte quelques astuces assez spéciales : par + défaut, <code>mod_rewrite</code> effectue son traitement avant les + autres modules de transformation d'URI (<code>mod_alias</code> + etc...) - ainsi, si vous voulez utiliser ces modules, il faut en + tenir compte dans la configuration de <code>mod_rewrite</code>. De + même, l'implémentation d'un serveur virtuel dynamique équivalent à + <code>ScriptAlias</code> demande une certaine manipulation.</p> + +<div class="example"><p><code> +# obtention du nom du serveur par la valeur de l'en-tête Host:<br /> +UseCanonicalName Off<br /> +<br /> +# journaux pouvant être éclatés en journaux par serveurs virtuels<br /> +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon<br /> +CustomLog logs/access_log vcommon<br /> +<br /> +<Directory /www/hosts><br /> +<span class="indent"> + # ExecCGI est ici nécessaire car nous ne pouvons pas forcer + # l'exécution des CGI de la manière dont ScriptAlias le fait<br /> + Options FollowSymLinks ExecCGI<br /> +</span> +</Directory><br /> +<br /> +# et maintenant, nous entrons dans le vif du sujet<br /> +<br /> +RewriteEngine On<br /> +<br /> +# un nom de serveur déduit de l'en-tête Host: dans pratiquement tous les +# cas<br /> +RewriteMap lowercase int:tolower<br /> +<br /> +## traitement des documents normaux en premier:<br /> +# permet le fonctionnement de "Alias /icons/" - à répéter pour les +# autres aliases<br /> +RewriteCond %{REQUEST_URI} !^/icons/<br /> +# permet le fonctionnement des CGIs<br /> +RewriteCond %{REQUEST_URI} !^/cgi-bin/<br /> +# la petite manipulation magique<br /> +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1<br /> +<br /> +## on s'occupe maintenant des CGIs - on doit imposer l'utilisation d'un +# gestionnaire<br /> +RewriteCond %{REQUEST_URI} ^/cgi-bin/<br /> +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [H=cgi-script]<br /> +<br /> +# c'est tout ! +</code></p></div> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="homepages.rewrite" id="homepages.rewrite">Un système de pages d'accueil qui +utilise<code>mod_rewrite</code></a></h2> + + <p>Il s'agit d'une variante qui permet d'obtenir le même résultat + que le <a href="#homepages">deuxième exemple</a>.</p> + +<div class="example"><p><code> +RewriteEngine on<br /> +<br /> +RewriteMap lowercase int:tolower<br /> +<br /> +# permet l'exécution des CGIs<br /> +RewriteCond %{REQUEST_URI} !^/cgi-bin/<br /> +<br /> +# vérifie la validité du nom du serveur pour le bon fonctionnement de la +# règle RewriteRule<br /> +RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$<br /> +<br /> +# ajoute le nom du serveur virtuel comme préfixe à l'URI<br /> +# le drapeau [C] signifie que la réécriture suivante doit être effectuée +# sur le résultat de la règle courante<br /> +RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]<br /> +<br /> +# et maintenant, on crée le véritable nom de fichier<br /> +RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2<br /> +<br /> +# définition du répertoire des CGIs global<br /> +ScriptAlias /cgi-bin/ /www/std-cgi/ +</code></p></div> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="xtra-conf" id="xtra-conf">Utilisation d'un fichier de configuration +séparé pour les serveurs virtuels</a></h2> + + <p>Cette méthode utilise des fonctionnalités de + <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> plus avancées pour venir à bout de la + traduction d'un serveur virtuel en une racine de documents, à partir + d'un fichier de configuration séparé. Elle procure d'avantage de + souplesse, mais nécessite une configuration + un peu plus compliquée.</p> + + <p>Le fichier <code>vhost.map</code> doit se présenter sous cette + forme :</p> + +<div class="example"><p><code> +www.customer-1.com /www/customers/1<br /> +www.customer-2.com /www/customers/2<br /> +# ...<br /> +www.customer-N.com /www/customers/N<br /> +</code></p></div> + + <p>Le fichier <code>httpd.conf</code> doit contenir les lignes + suivantes :</p> + +<div class="example"><p><code> +RewriteEngine on<br /> +<br /> +RewriteMap lowercase int:tolower<br /> +<br /> +# définition du fichier de correspondances<br /> +RewriteMap vhost txt:/www/conf/vhost.map<br /> +<br /> +# traite les alias comme précédemment<br /> +RewriteCond %{REQUEST_URI} !^/icons/<br /> +RewriteCond %{REQUEST_URI} !^/cgi-bin/<br /> +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$<br /> +# une nouvelle mise en correspondance par fichier<br /> +RewriteCond ${vhost:%1} ^(/.*)$<br /> +RewriteRule ^/(.*)$ %1/docs/$1<br /> +<br /> +RewriteCond %{REQUEST_URI} ^/cgi-bin/<br /> +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$<br /> +RewriteCond ${vhost:%1} ^(/.*)$<br /> +RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script] +</code></p></div> + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/vhosts/mass.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../fr/vhosts/mass.html" title="Français"> fr </a> | +<a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/vhosts/mass.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div><div id="footer"> +<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div> +</body></html>
\ No newline at end of file diff --git a/docs/manual/vhosts/mass.xml.fr b/docs/manual/vhosts/mass.xml.fr new file mode 100644 index 0000000000..45ea907ed1 --- /dev/null +++ b/docs/manual/vhosts/mass.xml.fr @@ -0,0 +1,443 @@ +<?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 : 659902 --> +<!-- French translation : Lucien GENTIS --> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<manualpage metafile="mass.xml.meta"> +<parentdocument href="./">Hébergement virtuel</parentdocument> + <title>Hébergement virtuel de masse configuré dynamiquement</title> + +<summary> + + <p>Ce document propose une méthode performante pour servir un nombre + quelconque d'hôtes virtuels avec le serveur web httpd Apache. + </p> + +</summary> + +<section id="motivation"><title>A qui ce document est-il destiné ?</title> + + <p>Les techniques décrites ici vous concernent si votre + <code>httpd.conf</code> contient de nombreuses sections + <code><VirtualHost></code> très semblables, + dans le style :</p> + +<example> +NameVirtualHost 111.22.33.44<br /> +<VirtualHost 111.22.33.44><br /> +<indent> + ServerName www.customer-1.com<br /> + DocumentRoot /www/hosts/www.customer-1.com/docs<br /> + ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin<br /> +</indent> +</VirtualHost><br /> +<VirtualHost 111.22.33.44><br /> +<indent> + ServerName www.customer-2.com<br /> + DocumentRoot /www/hosts/www.customer-2.com/docs<br /> + ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin<br /> +</indent> +</VirtualHost><br /> +# bla bla bla<br /> +<VirtualHost 111.22.33.44><br /> +<indent> + ServerName www.customer-N.com<br /> + DocumentRoot /www/hosts/www.customer-N.com/docs<br /> + ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin<br /> +</indent> +</VirtualHost> +</example> + + <p>L'idée de base consiste à remplacer toutes les configurations + <code><VirtualHost></code> par un mécanisme qui les génère + dynamiquement. Ceci présente certains avantages :</p> + + <ol> + <li>Votre fichier de configuration est plus petit, ainsi Apache + démarre plus rapidement et consomme moins de mémoire.</li> + + <li>Pour ajouter des serveurs virtuels, il suffit de créer les + répertoires appropriés dans le système de fichiers et les entrées + dans le DNS - il n'est plus nécessaire de reconfigurer ou de + redémarrer Apache.</li> + </ol> + + <p>Le principal désavantage réside dans le fait que vous ne pouvez + pas définir un fichier journal différent pour chaque serveur + virtuel. De toute façon, ce serait une mauvaise idée si vous avez de + nombreux serveurs virtuels, car cela nécessiterait un nombre + important de descripteurs de fichiers. Il est préférable de + rediriger les journaux via un pipe ou une pile fifo vers un + programme, et faire en sorte que ce dernier distribue les journaux + les concernant aux différents clients (Ce qui peut aussi servir à + accumuler des données à des fins de statistiques, etc...).</p> + +</section> + +<section id="overview"><title>Vue d'ensemble</title> + + <p>Un serveur virtuel peut être défini par deux informations : son + adresse IP, et le contenu de l'en-tête <code>Host:</code> de la + requête HTTP. La technique d'hébergement virtuel dynamique de masse + utilisée ici consiste à insérer automatiquement ces informations + dans le chemin du fichier à utiliser pour répondre à la requête. On + peut y parvenir assez facilement en utilisant + <module>mod_vhost_alias</module> avec Apache 2.0, mais on peut aussi + utiliser <module>mod_rewrite</module>. Par défaut, ces deux modules + sont désactivés ; vous devez activer l'un d'eux lors de la + compilation et de la configuration d'Apache si vous voulez utiliser + cette technique.</p> + + <p>Certains paramètres doivent être adaptés pour que le serveur + dynamique se présente comme un serveur dynamique normal. Le plus + important est le nom du serveur, qu'Apache utilise pour générer des + URLs d'auto-référencement, etc... Il est défini via la directive + <code>ServerName</code>, et les CGIs peuvent s'y référer via la + variable d'environnement <code>SERVER_NAME</code>. Sa véritable + valeur utilisée à l'exécution est contrôlée par la définition de la + directive + <directive module="core">UseCanonicalName</directive>. Avec + <code>UseCanonicalName Off</code>, le nom du serveur correspond au + contenu de l'en-tête <code>Host:</code> de la requête. Avec + <code>UseCanonicalName DNS</code>, il est extrait d'une recherche + DNS inverse sur l'adresse IP du serveur virtuel. La première + configuration est utilisée pour l'hébergement virtuel dynamique par + nom, et la deuxième pour l'hébergement virtuel dynamique par IP. Si + Apache ne peut pas déterminer le nom du serveur, soit parce qu'il + n'y a pas d'en-tête <code>Host:</code>, soit parce que la recherche + DNS a échoué, il prend en compte la valeur définie par la directive + <code>ServerName</code>.</p> + + <p>L'autre paramètre à adapter est la racine des documents (définie + via la directive <code>DocumentRoot</code> et disponible pour les + CGIs via la variable d'environnement <code>DOCUMENT_ROOT</code>). + Dans une configuration classique, il est utilisé par le module core + pour faire correspondre les URIs aux noms de fichiers, mais lorsque + la configuration du serveur comporte des serveurs virtuels, ce + traitement doit être pris en charge par un autre module (soit + <code>mod_vhost_alias</code>, soit <code>mod_rewrite</code>), qui + utilise un méthode de correspondance différente. Aucun de ces + modules ne se chargeant de définir la variable d'environnement + <code>DOCUMENT_ROOT</code>, si des CGIs ou des documents SSI + doivent en faire usage, ils obtiendront une valeur erronée.</p> + +</section> + +<section id="simple"><title>Méthode simple d'hébergement virtuel +dynamique</title> + + <p>Cet extrait de fichier <code>httpd.conf</code> implémente + l'hébergement virtuel décrit dans la section <a + href="#motivation">À qui ce document est-il destiné ?</a> ci-dessus, + mais selon une méthode générique utilisant + <code>mod_vhost_alias</code>.</p> + +<example> +# extrait le nom du serveur de l'en-tête Host:<br /> +UseCanonicalName Off<br /> +<br /> +# ce format de journal peut être éclaté en journaux par serveur virtuel +# à l'aide du premier champ<br /> +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon<br /> +CustomLog logs/access_log vcommon<br /> +<br /> +# inclut le nom du serveur dans les noms de fichiers ressources +# nécessaires aux traitements des requêtes<br /> +VirtualDocumentRoot /www/hosts/%0/docs<br /> +VirtualScriptAlias /www/hosts/%0/cgi-bin +</example> + + <p>Pour changer cette configuration en solution de serveur virtuel + par IP, il suffit de remplacer <code>UseCanonicalName + Off</code> par <code>UseCanonicalName DNS</code>. Le nom du serveur + inséré dans le nom de fichier sera alors déduit de l'adresse IP du + serveur virtuel.</p> + +</section> + +<section id="homepages"><title>Un système de pages d'accueil hébergées +virtuellement</title> + + <p>Il s'agit d'une adaptation du système ci-dessus, ajusté pour un + serveur de pages d'accueil de FAI. Avec une configuration un peu + plus compliquée, on peut extraire des sous-chaînes de caractères du + nom du serveur pour les utiliser dans le nom de fichier afin, par + exemple, de définir <code>/home/user/</code> comme emplacement des + documents pour <code>www.user.isp.com</code>. Un seul répertoire + <code>cgi-bin</code> suffit pour l'ensemble des + serveurs virtuels.</p> + +<example> +# les directives préliminaires sont identiques à celles de l'exemple +# ci-dessus ; il vient ensuite :<br /> +<br /> +# insertion d'une partie du nom du serveur dans les noms de fichiers<br /> +VirtualDocumentRoot /www/hosts/%2/docs<br /> +<br /> +# répertoire cgi-bin unique<br /> +ScriptAlias /cgi-bin/ /www/std-cgi/<br /> +</example> + + <p>Vous trouverez des exemples plus élaborés d'utilisation de la + directive <code>VirtualDocumentRoot</code> dans la documentation du + module <module>mod_vhost_alias</module>.</p> + +</section> + +<section id="combinations"><title>Utiliser plusieurs systèmes +d'hébergement virtuel sur le même serveur</title> + + <p>Moyennant une configuration un peu plus compliquée, vous pouvez + contrôler la portée des différentes configurations d'hébergement + virtuel à l'aide des directives <code><VirtualHost></code> + normales d'Apache. Par exemple, on peut associer une adresse IP pour + les pages d'accueil des clients en général, et une autre pour les + clients commerciaux avec la configuration suivante. Cette + configuration peut bien entendu être combinée avec les sections + <code><VirtualHost></code> conventionnelles.</p> + +<example> +UseCanonicalName Off<br /> +<br /> +LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon<br /> +<br /> +<Directory /www/commercial><br /> +<indent> + Options FollowSymLinks<br /> + AllowOverride All<br /> +</indent> +</Directory><br /> +<br /> +<Directory /www/homepages><br /> +<indent> + Options FollowSymLinks<br /> + AllowOverride None<br /> +</indent> +</Directory><br /> +<br /> +<VirtualHost 111.22.33.44><br /> +<indent> + ServerName www.commercial.isp.com<br /> + <br /> + CustomLog logs/access_log.commercial vcommon<br /> + <br /> + VirtualDocumentRoot /www/commercial/%0/docs<br /> + VirtualScriptAlias /www/commercial/%0/cgi-bin<br /> +</indent> +</VirtualHost><br /> +<br /> +<VirtualHost 111.22.33.45><br /> +<indent> + ServerName www.homepages.isp.com<br /> + <br /> + CustomLog logs/access_log.homepages vcommon<br /> + <br /> + VirtualDocumentRoot /www/homepages/%0/docs<br /> + ScriptAlias /cgi-bin/ /www/std-cgi/<br /> +</indent> +</VirtualHost> +</example> + +<note> + <title>Note</title> + <p>Si le premier bloc VirtualHost ne comporte <em>pas</em> de + directive <directive module="core">ServerName</directive>, c'est + le nom issu d'une recherche DNS inverse à partir de l'adresse IP + du serveur virtuel qui sera utilisé. Si ce nom ne correspond pas + à celui que vous voulez utiliser, vous pouvez ajouter une entrée + de remplacement (<code>ServerName + none.example.com</code>) pour éviter ce comportement.</p> +</note> + +</section> + +<section id="ipbased"><title>Pour un hébergement virtuel par IP plus +efficace</title> + + <p>Les changements de configuration suggérés pour transformer <a + href="#simple">le premier exemple</a> en hébergement virtuel par IP + conduisent à une configuration peu efficace. Chaque requête + nécessite une nouvelle recherche DNS. Pour éviter cette surcharge de + travail, le système de fichiers peut être organisé pour correspondre + aux adresses IP, plutôt qu'aux noms de serveurs, supprimant par + la-même la nécessité d'une recherche DNS. La journalisation doit + aussi être adaptée pour fonctionner sur un tel système.</p> + +<example> +# obtention du nom du serveur par recherche DNS inverse +# sur l'adresse IP<br /> +UseCanonicalName DNS<br /> +<br /> +# insertion de l'adresse IP dans les journaux afin de pouvoir les +# éclater<br /> +LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon<br /> +CustomLog logs/access_log vcommon<br /> +<br /> +# insertion de l'adresse IP dans les noms de fichiers<br /> +VirtualDocumentRootIP /www/hosts/%0/docs<br /> +VirtualScriptAliasIP /www/hosts/%0/cgi-bin<br /> +</example> + +</section> + +<section id="simple.rewrite"><title>Configuration de base pour un +hébergement virtuel dynamique utilisant +<module>mod_rewrite</module></title> + + <p>Cet extrait de <code>httpd.conf</code> fournit le même service + que le <a href="#simple">premier exemple</a>. La première moitié est + très similaire à sa contre-partie du <a href="#simple">premier + exemple</a>, mis à part quelques changements à des fins de + compatibilité ascendante et nécessaires au bon fonctionnement de la + partie concernant <code>mod_rewrite</code> ; la seconde moitié + configure <code>mod_rewrite</code> pour l'accomplissement du travail + proprement dit.</p> + + <p>Cet exemple comporte quelques astuces assez spéciales : par + défaut, <code>mod_rewrite</code> effectue son traitement avant les + autres modules de transformation d'URI (<code>mod_alias</code> + etc...) - ainsi, si vous voulez utiliser ces modules, il faut en + tenir compte dans la configuration de <code>mod_rewrite</code>. De + même, l'implémentation d'un serveur virtuel dynamique équivalent à + <code>ScriptAlias</code> demande une certaine manipulation.</p> + +<example> +# obtention du nom du serveur par la valeur de l'en-tête Host:<br /> +UseCanonicalName Off<br /> +<br /> +# journaux pouvant être éclatés en journaux par serveurs virtuels<br /> +LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon<br /> +CustomLog logs/access_log vcommon<br /> +<br /> +<Directory /www/hosts><br /> +<indent> + # ExecCGI est ici nécessaire car nous ne pouvons pas forcer + # l'exécution des CGI de la manière dont ScriptAlias le fait<br /> + Options FollowSymLinks ExecCGI<br /> +</indent> +</Directory><br /> +<br /> +# et maintenant, nous entrons dans le vif du sujet<br /> +<br /> +RewriteEngine On<br /> +<br /> +# un nom de serveur déduit de l'en-tête Host: dans pratiquement tous les +# cas<br /> +RewriteMap lowercase int:tolower<br /> +<br /> +## traitement des documents normaux en premier:<br /> +# permet le fonctionnement de "Alias /icons/" - à répéter pour les +# autres aliases<br /> +RewriteCond %{REQUEST_URI} !^/icons/<br /> +# permet le fonctionnement des CGIs<br /> +RewriteCond %{REQUEST_URI} !^/cgi-bin/<br /> +# la petite manipulation magique<br /> +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1<br /> +<br /> +## on s'occupe maintenant des CGIs - on doit imposer l'utilisation d'un +# gestionnaire<br /> +RewriteCond %{REQUEST_URI} ^/cgi-bin/<br /> +RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [H=cgi-script]<br /> +<br /> +# c'est tout ! +</example> + +</section> + +<section id="homepages.rewrite"><title>Un système de pages d'accueil qui +utilise<code>mod_rewrite</code></title> + + <p>Il s'agit d'une variante qui permet d'obtenir le même résultat + que le <a href="#homepages">deuxième exemple</a>.</p> + +<example> +RewriteEngine on<br /> +<br /> +RewriteMap lowercase int:tolower<br /> +<br /> +# permet l'exécution des CGIs<br /> +RewriteCond %{REQUEST_URI} !^/cgi-bin/<br /> +<br /> +# vérifie la validité du nom du serveur pour le bon fonctionnement de la +# règle RewriteRule<br /> +RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$<br /> +<br /> +# ajoute le nom du serveur virtuel comme préfixe à l'URI<br /> +# le drapeau [C] signifie que la réécriture suivante doit être effectuée +# sur le résultat de la règle courante<br /> +RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]<br /> +<br /> +# et maintenant, on crée le véritable nom de fichier<br /> +RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2<br /> +<br /> +# définition du répertoire des CGIs global<br /> +ScriptAlias /cgi-bin/ /www/std-cgi/ +</example> + +</section> + +<section id="xtra-conf"><title>Utilisation d'un fichier de configuration +séparé pour les serveurs virtuels</title> + + <p>Cette méthode utilise des fonctionnalités de + <module>mod_rewrite</module> plus avancées pour venir à bout de la + traduction d'un serveur virtuel en une racine de documents, à partir + d'un fichier de configuration séparé. Elle procure d'avantage de + souplesse, mais nécessite une configuration + un peu plus compliquée.</p> + + <p>Le fichier <code>vhost.map</code> doit se présenter sous cette + forme :</p> + +<example> +www.customer-1.com /www/customers/1<br /> +www.customer-2.com /www/customers/2<br /> +# ...<br /> +www.customer-N.com /www/customers/N<br /> +</example> + + <p>Le fichier <code>httpd.conf</code> doit contenir les lignes + suivantes :</p> + +<example> +RewriteEngine on<br /> +<br /> +RewriteMap lowercase int:tolower<br /> +<br /> +# définition du fichier de correspondances<br /> +RewriteMap vhost txt:/www/conf/vhost.map<br /> +<br /> +# traite les alias comme précédemment<br /> +RewriteCond %{REQUEST_URI} !^/icons/<br /> +RewriteCond %{REQUEST_URI} !^/cgi-bin/<br /> +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$<br /> +# une nouvelle mise en correspondance par fichier<br /> +RewriteCond ${vhost:%1} ^(/.*)$<br /> +RewriteRule ^/(.*)$ %1/docs/$1<br /> +<br /> +RewriteCond %{REQUEST_URI} ^/cgi-bin/<br /> +RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$<br /> +RewriteCond ${vhost:%1} ^(/.*)$<br /> +RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script] +</example> + +</section> +</manualpage> diff --git a/docs/manual/vhosts/mass.xml.meta b/docs/manual/vhosts/mass.xml.meta index b958727153..0acc529f4c 100644 --- a/docs/manual/vhosts/mass.xml.meta +++ b/docs/manual/vhosts/mass.xml.meta @@ -8,6 +8,7 @@ <variants> <variant>en</variant> + <variant>fr</variant> <variant outdated="yes">ko</variant> <variant>tr</variant> </variants> diff --git a/docs/manual/vhosts/name-based.html.fr b/docs/manual/vhosts/name-based.html.fr index 4a943d03ee..dd248b7b4a 100644 --- a/docs/manual/vhosts/name-based.html.fr +++ b/docs/manual/vhosts/name-based.html.fr @@ -26,7 +26,7 @@ <a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> </div> - <p>Ce document décrit quand et comment utiliser des serveurs + <p>Ce document décrit quand et comment utiliser des serveurs virtuels par nom.</p> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">Serveurs virtuels par nom vs. par IP</a></li> @@ -37,43 +37,43 @@ <div class="section"> <h2><a name="namevip" id="namevip">Serveurs virtuels par nom vs. par IP</a></h2> - <p>Les hébergements virtuels par IP utilisent l'adresse IP - de la connexion afin de déterminer quel serveur virtuel doit - répondre. Par conséquent, vous devez disposer d'adresses IP - différentes pour chaque nom de domaine complet (FQDN) que vous hébergez. - Avec un hébergement - virtuel par nom, le serveur s'appuit sur les informations - transmises par le client dans les en-têtes HTTP de ses requêtes. - La technique présentée ici vous permet de disposer de serveurs + <p>Les hébergements virtuels par IP utilisent l'adresse IP + de la connexion afin de déterminer quel serveur virtuel doit + répondre. Par conséquent, vous devez disposer d'adresses IP + différentes pour chaque serveur. + Avec un hébergement + virtuel par nom, le serveur s'appuit sur les informations + transmises par le client dans les en-têtes HTTP de ses requêtes. + La technique présentée ici vous permet de disposer de serveurs virtuels différents partagés sur une même adresse IP.</p> - <p>L'hébergement virtuel par nom est habituellement plus simple, - car il vous suffit de configurer votre serveur DNS pour que - chaque domaine pointe sur l'adresse IP dont vous disposez, et de - configurer votre serveur Apache HTTP afin qu'il reconnaisse - ces domaines. Il réduit aussi la pénurie en adresses IP. Par - conséquent, vous devriez utiliser l'hébergement virtuel par - nom à moins d'avoir une raison spécifique de préférer - l'hébergement virtuel par IP. Certaines de ces raisons vous + <p>L'hébergement virtuel par nom est habituellement plus simple, + car il vous suffit de configurer votre serveur DNS pour que + chaque domaine pointe sur l'adresse IP dont vous disposez, et de + configurer votre serveur Apache HTTP afin qu'il reconnaisse + ces domaines. Il réduit aussi la pénurie en adresses IP. Par + conséquent, vous devriez utiliser l'hébergement virtuel par + nom à moins d'avoir une raison spécifique de préférer + l'hébergement virtuel par IP. Certaines de ces raisons vous sont exposées ci-après :</p> <ul> - <li>Certains anciens navigateurs ne sont pas compatibles - avec les serveurs virtuels par nom, car pour fonctionner, - un client doit transmettre un champ d'en-tête HTTP Host. - Cet en-tête est exigé pour HTTP/1.1, et peut être implémenté - sur des navigateurs modernes HTTP/1.0 grâce à une extension. - Si vous devez maintenir des clients obsolètes tout en - utilisant l'hébergement virtuel par nom, il existe une + <li>Certains anciens navigateurs ne sont pas compatibles + avec les serveurs virtuels par nom, car pour fonctionner, + un client doit transmettre un champ d'en-tête HTTP Host. + Cet en-tête est exigé pour HTTP/1.1, et peut être implémenté + sur des navigateurs modernes HTTP/1.0 grâce à une extension. + Si vous devez maintenir des clients obsolètes tout en + utilisant l'hébergement virtuel par nom, il existe une technique qui est traitée à la fin de ce document.</li> - <li>L'hébergement virtuel par nom ne peut pas être utilisé - avec des serveurs sécurisés SSL à cause de la nature même + <li>L'hébergement virtuel par nom ne peut pas être utilisé + avec des serveurs sécurisés SSL à cause de la nature même du protocole SSL.</li> - <li>Certains systèmes d'exploitation et équipements réseaux - emploient des techniques de gestion de la bande passante - qui ne peuvent pas différencier des domaines autrement que + <li>Certains systèmes d'exploitation et équipements réseaux + emploient des techniques de gestion de la bande passante + qui ne peuvent pas différencier des domaines autrement que par des adresses IP séparées.</li> </ul> @@ -83,57 +83,58 @@ <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table> - <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 pour des domaines. Cette - configuration utilise la directive - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Dans un - cas normal où n'importe quelle adresse IP peut être utilisée, - vous pouvez ajouter <code>*</code> comme argument de la directive - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si vous - prévoyez d'utiliser de multiples ports (comme l'emploi de SSL), - vous devriez ajouter le port à cet argument tel que - <code>*:80</code>. Notez que la simple mention d'une adresse - IP dans une directive - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> ne suffit - pas à faire écouter le serveur sur cette IP. Consultez - <a href="../bind.html">la page sur les liaisons</a> pour plus - de détails. Par ailleurs, chaque adresse IP spécifiée ici doit + <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 pour des domaines. Cette + configuration utilise la directive + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Dans un + cas normal où n'importe quelle adresse IP peut être utilisée, + vous pouvez ajouter <code>*</code> comme argument de la directive + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si vous + prévoyez d'utiliser de multiples ports (comme l'emploi de SSL), + vous devriez ajouter le port à cet argument tel que + <code>*:80</code>. Notez que la simple mention d'une adresse + IP dans une directive + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> ne suffit + pas à faire écouter 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> - <p>L'étape suivante est la création d'une section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> - pour chacun des serveurs à créer. L'argument de la directive - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> - doit correspondre à celui d'une directive - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> - (dans la plupart des cas, il s'agit de "*:80"). Dans chaque section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>, - vous devez définir au minimum une directive - <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> pour désigner - le serveur concerné et une directive - <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> pour préciser + <p>L'étape suivante est la création d'une section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + pour chacun des serveurs à créer. L'argument de la directive + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + doit être le même que celui de la directive + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> + (dans le cas présent "*:80"). Dans chaque section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>, + vous devez définir au minimum une directive + <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> pour désigner + le serveur concerné et une directive + <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> pour préciser l'emplacement sur le système de fichiers du contenu de ce serveur.</p> <div class="note"><h3>Le serveur principal disparaît</h3> - <p>Si vous ajoutez des serveurs virtuels à un serveur Web - existant, vous devez également créer une section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> - redéfinissant ce serveur existant. Les directives - <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et - <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> incluses - dans ce serveur virtuel doivent être les mêmes que pour - les directives globales - <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et - <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Positionnez - ce serveur virtuel en premier dans le fichier de configuration + <p>Si vous ajoutez des serveurs virtuels à un serveur Web + existant, vous devez également créer une section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + redéfinissant ce serveur existant. Les directives + <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et + <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> incluses + dans ce serveur virtuel doivent être les mêmes que pour + les directives globales + <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> et + <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Positionnez + ce serveur virtuel en premier dans le fichier de configuration pour en faire le serveur par défaut.</p> </div> - <p>Par exemple, supposez que vous hébergez le domaine - <code>www.domain.tld</code> et que vous souhaitez ajouter le - serveur virtuel <code>www.otherdomain.tld</code> qui pointe sur - la même adresse IP. Il vous suffit d'ajouter la configuration + <p>Par exemple, supposez que vous hébergez le domaine + <code>www.domain.tld</code> et que vous souhaitez ajouter le + serveur virtuel <code>www.otherdomain.tld</code> qui pointe sur + la même adresse IP. Il vous suffit d'ajouter la configuration suivante à <code>httpd.conf</code> :</p> <div class="example"><p><code> @@ -154,98 +155,98 @@ </VirtualHost><br /> </code></p></div> - <p>Autrement, vous pouvez spécifiez une adresse IP explicite - à la place de <code>*</code> dans les deux directives - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> et - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. - Par exemple, cette méthode est utile si vous souhaitez faire - tourner quelques serveurs virtuels par nom sur une même adresse - IP, et d'autres, soit par IP, soit basés sur un autre jeu de + <p>Autrement, vous pouvez spécifiez une adresse IP explicite + à la place de <code>*</code> dans les deux directives + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> et + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. + Par exemple, cette méthode est utile si vous souhaitez faire + tourner quelques serveurs virtuels par nom sur une même adresse + IP, et d'autres, soit par IP, soit basés sur un autre jeu de serveurs virtuels par nom sur une autre adresse IP.</p> - <p>Plusieurs serveurs sont accessibles par plus d'un nom. Il - suffit de placer la directive - <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> dans une section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. - Par exemple, dans la première section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> - ci-dessus, la directive <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> - indique aux utilisateurs les autres noms permis pour accéder au + <p>Plusieurs serveurs sont accessibles par plus d'un nom. Il + suffit de placer la directive + <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> dans une section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. + Par exemple, dans la première section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + ci-dessus, la directive <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code> + indique aux utilisateurs les autres noms permis pour accéder au même site Web :</p> <div class="example"><p><code> ServerAlias domain.tld *.domain.tld </code></p></div> - <p>ainsi, toutes les requêtes portant sur un domaine - <code>domain.tld</code> seront servies par le serveur virtuel - <code>www.domain.tld</code>. Les caractères joker <code>*</code> - et <code>?</code> peuvent être utilisés pour les correspondances. - Bien entendu, vous ne pouvez pas inventer des noms et les placer - dans une directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> - ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS - doit être correctement configuré pour lier ces noms à une + <p>ainsi, toutes les requêtes portant sur un domaine + <code>domain.tld</code> seront servies par le serveur virtuel + <code>www.domain.tld</code>. Les caractères joker <code>*</code> + et <code>?</code> peuvent être utilisés pour les correspondances. + Bien entendu, vous ne pouvez pas inventer des noms et les placer + dans une directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> + ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS + doit être correctement configuré pour lier ces noms à une adresse IP associée avec votre serveur.</p> - <p>Finalement, vous pouvez affiner la configuration des serveurs - virtuels en plaçant d'autres directives à l'intérieur des sections - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. - La plupart des directives peut être placée dans ces sections en - y changeant seulement la configuration du serveur virtuel associé. - Pour déterminer si une directive particulière est permise, - consultez <a href="../mod/directive-dict.html#Context">la page de - contexte</a>. Le jeu de directives configurées dans le contexte - du <em>serveur principal</em> (en dehors de toutes sections - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>) - sera utilisé seulement s'il n'y a pas de configuration contraire + <p>Finalement, vous pouvez affiner la configuration des serveurs + virtuels en plaçant d'autres directives à l'intérieur des sections + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>. + La plupart des directives peut être placée dans ces sections en + y changeant seulement la configuration du serveur virtuel associé. + Pour déterminer si une directive particulière est permise, + consultez le <a href="../mod/directive-dict.html#Context">contexte</a> de la + directive. Le jeu de directives configurées dans le contexte + du <em>serveur principal</em> (en dehors de toutes sections + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>) + sera utilisé seulement s'il n'y a pas de configuration contraire par un serveur virtuel.</p> - <p>Maintenant, lorsqu'une requête arrive, le serveur va d'abord - tester si elle utilise une adresse IP qui correspond à - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si c'est - le cas, il regardera chaque section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> - avec l'adresse correspondante et essaiera d'en trouver une où - le nom de domaine requis correspond à - <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> ou - <code>ServerAlias</code>. S'il en trouve une, il utilisera - sa configuration pour le serveur. Si aucun serveur virtuel ne - correspond, alors <em>le premier serveur virtuel listé</em> + <p>Maintenant, lorsqu'une requête arrive, le serveur va d'abord + tester si elle utilise une adresse IP qui correspond à + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si c'est + le cas, il regardera chaque section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + avec l'adresse correspondante et essaiera d'en trouver une où + le nom de domaine requis correspond à + <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> ou + <code>ServerAlias</code>. S'il en trouve une, il utilisera + sa configuration pour le serveur. Si aucun serveur virtuel ne + correspond, alors <em>le premier serveur virtuel listé</em> dont l'adresse IP correspond sera employé.</p> - <p>En conséquence, le premier serveur virtuel listé est le - serveur virtuel <em>default</em>. La directive - <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> du - <em>serveur principal</em> <strong>ne</strong> sera - <strong>jamais</strong> employée lorsqu'une adresse IP - correspond dans une directive - <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si vous - ne voulez pas avoir de configuration spéciale pour les requêtes - qui ne sont pas attachées à un serveur virtuel en particulier, - mettez cette configuration dans une section - <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> + <p>En conséquence, le premier serveur virtuel listé est le + serveur virtuel <em>par défaut</em>. La directive + <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> du + <em>serveur principal</em> <strong>ne</strong> sera + <strong>jamais</strong> employée lorsqu'une adresse IP + correspond à la directive + <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>. Si vous + souhaiter avoir une configuration spéciale pour les requêtes + qui ne correspondent pas à un serveur virtuel en particulier, + mettez cette configuration dans une section + <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> que vous placerez en premier dans le fichier de configuration.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="compat" id="compat">Compatibilité avec les navigateurs anciens</a></h2> - <p>Comme mentionné plus tôt, certains clients ne transmettent - pas les données nécessaires pour le bon fonctionnement des - serveurs virtuels. Ces clients recevront toujours les pages - du premier serveur virtuel listé pour cette adresse IP (le + <p>Comme mentionné plus tôt, certains clients ne transmettent + pas les données nécessaires pour le bon fonctionnement des + serveurs virtuels par nom. Ces clients recevront toujours les pages + du premier serveur virtuel listé pour cette adresse IP (le serveur virtuel par nom <cite>primaire</cite>).</p> <div class="note"><h3>De combien plus anciens ?</h3> - <p>Veuillez noter que quand nous disons plus anciens, nous - disons vraiment plus anciens. Vous seriez malchanceux de rencontrer - de tels navigateurs encore utilisés de nos jours. Toutes les - versions actuelles des navigateurs transmettent leur en-tête + <p>Veuillez noter que quand nous disons plus anciens, nous + disons vraiment plus anciens. Vous avez peu de chances de rencontrer + de tels navigateurs encore utilisés de nos jours. Toutes les + versions actuelles des navigateurs transmettent leur en-tête <code>Host</code> comme exigé par les serveurs virtuels par nom.</p> </div> - <p>Il existe une solution avec la directive - <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, bien que + <p>Il existe une solution avec la directive + <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code>, bien que légèrement complexe :</p> <p>Exemple de configuration :</p> @@ -262,27 +263,27 @@ </VirtualHost><br /> </code></p></div> - <p>Qu'est-ce que cela signifie ? Il signifie qu'une requête - pour tout URI qui commence par "<code>/domain</code>" sera - servie par le serveur virtuel <code>www.domain.tld</code>. - Ainsi, les pages sont accessibles à - <code>http://www.domain.tld/domain/</code> pour tous les - clients, bien que ceux qui transmettent un en-tête - <code>Host:</code> peuvent également y accéder à + <p>Qu'est-ce que cela signifie ? Il signifie qu'une requête + pour tout URI qui commence par "<code>/domain</code>" sera + servie par le serveur virtuel <code>www.domain.tld</code>. + Ainsi, les pages sont accessibles à + <code>http://www.domain.tld/domain/</code> pour tous les + clients, bien que ceux qui transmettent un en-tête + <code>Host:</code> peuvent également y accéder à <code>http://www.domain.tld/</code>.</p> - <p>Pour rendre cette technique fonctionnelle, mettez un lien - dans votre serveur virtuel primaire vers - <code>http://www.domain.tld/domain/</code>. Ensuite, dans les - pages de ce serveur virtuel, assurez vous ne n'utiliser que - des liens relatifs (<em>par exemple</em>, "<code>file.html</code>" - ou "<code>../icons/image.gif</code>") ou des liens contenant - le préfixe <code>/domain/</code> (<em>par exemple</em>, - "<code>http://www.domain.tld/domain/misc/file.html</code>" + <p>Pour rendre cette technique fonctionnelle, mettez un lien + dans votre serveur virtuel primaire vers + <code>http://www.domain.tld/domain/</code>. Ensuite, dans les + pages de ce serveur virtuel, assurez vous ne n'utiliser que + des liens relatifs (<em>par exemple</em>, "<code>file.html</code>" + ou "<code>../icons/image.gif</code>") ou des liens contenant + le préfixe <code>/domain/</code> (<em>par exemple</em>, + "<code>http://www.domain.tld/domain/misc/file.html</code>" ou "<code>/domain/misc/file.html</code>").</p> - <p>Cela requiert un peu de discipline, mais si vous suivez - cette ligne de conduite, vous serez assuré que vos pages + <p>Cela requiert un peu de discipline, mais si vous suivez + cette ligne de conduite, vous serez assuré que vos pages s'afficheront dans tous les navigateurs, nouveaux et anciens.</p> </div></div> diff --git a/docs/manual/vhosts/name-based.xml.fr b/docs/manual/vhosts/name-based.xml.fr index 64c10acf26..399fb39480 100644 --- a/docs/manual/vhosts/name-based.xml.fr +++ b/docs/manual/vhosts/name-based.xml.fr @@ -1,8 +1,9 @@ <?xml version='1.0' encoding='ISO-8859-1' ?> <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd"> -<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?> +<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> <!-- English Revision: 659902 --> -<!-- French translation by alain B, review by Vincent Deffontaines --> +<!-- French translation by alain B, review by Vincent Deffontaines + updated by Lucien GENTIS --> <!-- Licensed to the Apache Software Foundation (ASF) under one or more @@ -26,7 +27,7 @@ <title>Support Apache des serveurs virtuels par nom</title> <summary> - <p>Ce document décrit quand et comment utiliser des serveurs + <p>Ce document décrit quand et comment utiliser des serveurs virtuels par nom.</p> </summary> @@ -38,43 +39,43 @@ <section id="namevip"><title>Serveurs virtuels par nom vs. par IP</title> - <p>Les hébergements virtuels par IP utilisent l'adresse IP - de la connexion afin de déterminer quel serveur virtuel doit - répondre. Par conséquent, vous devez disposer d'adresses IP - différentes pour chaque nom de domaine complet (FQDN) que vous hébergez. - Avec un hébergement - virtuel par nom, le serveur s'appuit sur les informations - transmises par le client dans les en-têtes HTTP de ses requêtes. - La technique présentée ici vous permet de disposer de serveurs + <p>Les hébergements virtuels par IP utilisent l'adresse IP + de la connexion afin de déterminer quel serveur virtuel doit + répondre. Par conséquent, vous devez disposer d'adresses IP + différentes pour chaque serveur. + Avec un hébergement + virtuel par nom, le serveur s'appuit sur les informations + transmises par le client dans les en-têtes HTTP de ses requêtes. + La technique présentée ici vous permet de disposer de serveurs virtuels différents partagés sur une même adresse IP.</p> - <p>L'hébergement virtuel par nom est habituellement plus simple, - car il vous suffit de configurer votre serveur DNS pour que - chaque domaine pointe sur l'adresse IP dont vous disposez, et de - configurer votre serveur Apache HTTP afin qu'il reconnaisse - ces domaines. Il réduit aussi la pénurie en adresses IP. Par - conséquent, vous devriez utiliser l'hébergement virtuel par - nom à moins d'avoir une raison spécifique de préférer - l'hébergement virtuel par IP. Certaines de ces raisons vous + <p>L'hébergement virtuel par nom est habituellement plus simple, + car il vous suffit de configurer votre serveur DNS pour que + chaque domaine pointe sur l'adresse IP dont vous disposez, et de + configurer votre serveur Apache HTTP afin qu'il reconnaisse + ces domaines. Il réduit aussi la pénurie en adresses IP. Par + conséquent, vous devriez utiliser l'hébergement virtuel par + nom à moins d'avoir une raison spécifique de préférer + l'hébergement virtuel par IP. Certaines de ces raisons vous sont exposées ci-après :</p> <ul> - <li>Certains anciens navigateurs ne sont pas compatibles - avec les serveurs virtuels par nom, car pour fonctionner, - un client doit transmettre un champ d'en-tête HTTP Host. - Cet en-tête est exigé pour HTTP/1.1, et peut être implémenté - sur des navigateurs modernes HTTP/1.0 grâce à une extension. - Si vous devez maintenir des clients obsolètes tout en - utilisant l'hébergement virtuel par nom, il existe une + <li>Certains anciens navigateurs ne sont pas compatibles + avec les serveurs virtuels par nom, car pour fonctionner, + un client doit transmettre un champ d'en-tête HTTP Host. + Cet en-tête est exigé pour HTTP/1.1, et peut être implémenté + sur des navigateurs modernes HTTP/1.0 grâce à une extension. + Si vous devez maintenir des clients obsolètes tout en + utilisant l'hébergement virtuel par nom, il existe une technique qui est traitée à la fin de ce document.</li> - <li>L'hébergement virtuel par nom ne peut pas être utilisé - avec des serveurs sécurisés SSL à cause de la nature même + <li>L'hébergement virtuel par nom ne peut pas être utilisé + avec des serveurs sécurisés SSL à cause de la nature même du protocole SSL.</li> - <li>Certains systèmes d'exploitation et équipements réseaux - emploient des techniques de gestion de la bande passante - qui ne peuvent pas différencier des domaines autrement que + <li>Certains systèmes d'exploitation et équipements réseaux + emploient des techniques de gestion de la bande passante + qui ne peuvent pas différencier des domaines autrement que par des adresses IP séparées.</li> </ul> @@ -97,57 +98,58 @@ </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 pour des domaines. 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 devriez ajouter le port à cet argument tel que - <code>*:80</code>. Notez que la simple mention d'une adresse - IP dans une directive - <directive module="core">NameVirtualHost</directive> ne suffit - pas à faire écouter le serveur sur cette IP. Consultez - <a href="../bind.html">la page sur les liaisons</a> pour plus - de détails. Par ailleurs, chaque adresse IP spécifiée ici doit + <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 pour des domaines. 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 devriez ajouter le port à cet argument tel que + <code>*:80</code>. Notez que la simple mention d'une adresse + IP dans une directive + <directive module="core">NameVirtualHost</directive> ne suffit + pas à faire écouter 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> - <p>L'étape suivante est la création d'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 correspondre à celui d'une directive - <directive module="core">NameVirtualHost</directive> - (dans la plupart des cas, il s'agit de "*:80"). 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 - le serveur concerné et une directive - <directive module="core">DocumentRoot</directive> pour préciser + <p>L'étape suivante est la création d'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 + <directive type="section" module="core">VirtualHost</directive>, + vous devez définir au minimum une directive + <directive module="core">ServerName</directive> pour désigner + le serveur concerné et une directive + <directive module="core">DocumentRoot</directive> pour préciser l'emplacement sur le système de fichiers du contenu de ce serveur.</p> <note><title>Le serveur principal disparaît</title> - <p>Si vous ajoutez des serveurs virtuels à un serveur Web - existant, vous devez également créer une section - <directive type="section" module="core">VirtualHost</directive> - redéfinissant ce serveur existant. Les directives - <directive module="core">ServerName</directive> et - <directive module="core">DocumentRoot</directive> incluses - dans ce serveur virtuel doivent être les mêmes que pour - les directives globales - <directive module="core">ServerName</directive> et - <directive module="core">DocumentRoot</directive>. Positionnez - ce serveur virtuel en premier dans le fichier de configuration + <p>Si vous ajoutez des serveurs virtuels à un serveur Web + existant, vous devez également créer une section + <directive type="section" module="core">VirtualHost</directive> + redéfinissant ce serveur existant. Les directives + <directive module="core">ServerName</directive> et + <directive module="core">DocumentRoot</directive> incluses + dans ce serveur virtuel doivent être les mêmes que pour + les directives globales + <directive module="core">ServerName</directive> et + <directive module="core">DocumentRoot</directive>. Positionnez + ce serveur virtuel en premier dans le fichier de configuration pour en faire le serveur par défaut.</p> </note> - <p>Par exemple, supposez que vous hébergez le domaine - <code>www.domain.tld</code> et que vous souhaitez ajouter le - serveur virtuel <code>www.otherdomain.tld</code> qui pointe sur - la même adresse IP. Il vous suffit d'ajouter la configuration + <p>Par exemple, supposez que vous hébergez le domaine + <code>www.domain.tld</code> et que vous souhaitez ajouter le + serveur virtuel <code>www.otherdomain.tld</code> qui pointe sur + la même adresse IP. Il vous suffit d'ajouter la configuration suivante à <code>httpd.conf</code> :</p> <example> @@ -168,98 +170,99 @@ </VirtualHost><br /> </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 - <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 - IP, et d'autres, soit par IP, soit basés sur un autre jeu de + <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 + <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 + IP, et d'autres, soit par IP, soit basés sur un autre jeu de serveurs virtuels par nom sur une autre adresse IP.</p> - <p>Plusieurs serveurs sont accessibles par plus d'un nom. Il - suffit de placer la directive - <directive module="core">ServerAlias</directive> dans une section - <directive type="section" module="core">VirtualHost</directive>. - Par exemple, dans la première section - <directive type="section" module="core">VirtualHost</directive> - ci-dessus, la directive <directive module="core">ServerAlias</directive> - indique aux utilisateurs les autres noms permis pour accéder au + <p>Plusieurs serveurs sont accessibles par plus d'un nom. Il + suffit de placer la directive + <directive module="core">ServerAlias</directive> dans une section + <directive type="section" module="core">VirtualHost</directive>. + Par exemple, dans la première section + <directive type="section" module="core">VirtualHost</directive> + ci-dessus, la directive <directive module="core">ServerAlias</directive> + indique aux utilisateurs les autres noms permis pour accéder au même site Web :</p> <example> ServerAlias domain.tld *.domain.tld </example> - <p>ainsi, toutes les requêtes portant sur un domaine - <code>domain.tld</code> seront servies par le serveur virtuel - <code>www.domain.tld</code>. Les caractères joker <code>*</code> - et <code>?</code> peuvent être utilisés pour les correspondances. - Bien entendu, vous ne pouvez pas inventer des noms et les placer - dans une directive <directive module="core">ServerName</directive> - ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS - doit être correctement configuré pour lier ces noms à une + <p>ainsi, toutes les requêtes portant sur un domaine + <code>domain.tld</code> seront servies par le serveur virtuel + <code>www.domain.tld</code>. Les caractères joker <code>*</code> + et <code>?</code> peuvent être utilisés pour les correspondances. + Bien entendu, vous ne pouvez pas inventer des noms et les placer + dans une directive <directive module="core">ServerName</directive> + ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS + doit être correctement configuré pour lier ces noms à une adresse IP associée avec votre serveur.</p> - <p>Finalement, vous pouvez affiner la configuration des serveurs - virtuels en plaçant d'autres directives à l'intérieur des sections - <directive type="section" module="core">VirtualHost</directive>. - La plupart des directives peut être placée dans ces sections en - y changeant seulement la configuration du serveur virtuel associé. - Pour déterminer si une directive particulière est permise, - consultez <a href="../mod/directive-dict.html#Context">la page de - contexte</a>. Le jeu de directives configurées dans le contexte - du <em>serveur principal</em> (en dehors de toutes sections - <directive type="section" module="core">VirtualHost</directive>) - sera utilisé seulement s'il n'y a pas de configuration contraire + <p>Finalement, vous pouvez affiner la configuration des serveurs + virtuels en plaçant d'autres directives à l'intérieur des sections + <directive type="section" module="core">VirtualHost</directive>. + La plupart des directives peut être placée dans ces sections en + y changeant seulement la configuration du serveur virtuel associé. + Pour déterminer si une directive particulière est permise, + consultez le <a + href="../mod/directive-dict.html#Context">contexte</a> de la + directive. Le jeu de directives configurées dans le contexte + du <em>serveur principal</em> (en dehors de toutes sections + <directive type="section" module="core">VirtualHost</directive>) + sera utilisé seulement s'il n'y a pas de configuration contraire par un serveur virtuel.</p> - <p>Maintenant, lorsqu'une requête arrive, le serveur va d'abord - tester si elle utilise une adresse IP qui correspond à - <directive module="core" >NameVirtualHost</directive>. Si c'est - le cas, il regardera chaque section - <directive type="section" module="core">VirtualHost</directive> - avec l'adresse correspondante et essaiera d'en trouver une où - le nom de domaine requis correspond à - <directive module="core">ServerName</directive> ou - <code>ServerAlias</code>. S'il en trouve une, il utilisera - sa configuration pour le serveur. Si aucun serveur virtuel ne - correspond, alors <em>le premier serveur virtuel listé</em> + <p>Maintenant, lorsqu'une requête arrive, le serveur va d'abord + tester si elle utilise une adresse IP qui correspond à + <directive module="core" >NameVirtualHost</directive>. Si c'est + le cas, il regardera chaque section + <directive type="section" module="core">VirtualHost</directive> + avec l'adresse correspondante et essaiera d'en trouver une où + le nom de domaine requis correspond à + <directive module="core">ServerName</directive> ou + <code>ServerAlias</code>. S'il en trouve une, il utilisera + sa configuration pour le serveur. Si aucun serveur virtuel ne + correspond, alors <em>le premier serveur virtuel listé</em> dont l'adresse IP correspond sera employé.</p> - <p>En conséquence, le premier serveur virtuel listé est le - serveur virtuel <em>default</em>. La directive - <directive module="core">DocumentRoot</directive> du - <em>serveur principal</em> <strong>ne</strong> sera - <strong>jamais</strong> employée lorsqu'une adresse IP - correspond dans une directive - <directive module="core">NameVirtualHost</directive>. Si vous - ne voulez pas avoir de configuration spéciale pour les requêtes - qui ne sont pas attachées à un serveur virtuel en particulier, - mettez cette configuration dans une section - <directive type="section" module="core">VirtualHost</directive> + <p>En conséquence, le premier serveur virtuel listé est le + serveur virtuel <em>par défaut</em>. La directive + <directive module="core">DocumentRoot</directive> du + <em>serveur principal</em> <strong>ne</strong> sera + <strong>jamais</strong> employée lorsqu'une adresse IP + correspond à la directive + <directive module="core">NameVirtualHost</directive>. Si vous + souhaiter avoir une configuration spéciale pour les requêtes + qui ne correspondent pas à un serveur virtuel en particulier, + mettez cette configuration dans une section + <directive type="section" module="core">VirtualHost</directive> que vous placerez en premier dans le fichier de configuration.</p> </section> <section id="compat"><title>Compatibilité avec les navigateurs anciens</title> - <p>Comme mentionné plus tôt, certains clients ne transmettent - pas les données nécessaires pour le bon fonctionnement des - serveurs virtuels. Ces clients recevront toujours les pages - du premier serveur virtuel listé pour cette adresse IP (le + <p>Comme mentionné plus tôt, certains clients ne transmettent + pas les données nécessaires pour le bon fonctionnement des + serveurs virtuels par nom. Ces clients recevront toujours les pages + du premier serveur virtuel listé pour cette adresse IP (le serveur virtuel par nom <cite>primaire</cite>).</p> <note><title>De combien plus anciens ?</title> - <p>Veuillez noter que quand nous disons plus anciens, nous - disons vraiment plus anciens. Vous seriez malchanceux de rencontrer - de tels navigateurs encore utilisés de nos jours. Toutes les - versions actuelles des navigateurs transmettent leur en-tête + <p>Veuillez noter que quand nous disons plus anciens, nous + disons vraiment plus anciens. Vous avez peu de chances de rencontrer + de tels navigateurs encore utilisés de nos jours. Toutes les + versions actuelles des navigateurs transmettent leur en-tête <code>Host</code> comme exigé par les serveurs virtuels par nom.</p> </note> - <p>Il existe une solution avec la directive - <directive module="core">ServerPath</directive>, bien que + <p>Il existe une solution avec la directive + <directive module="core">ServerPath</directive>, bien que légèrement complexe :</p> <p>Exemple de configuration :</p> @@ -276,27 +279,27 @@ </VirtualHost><br /> </example> - <p>Qu'est-ce que cela signifie ? Il signifie qu'une requête - pour tout URI qui commence par "<code>/domain</code>" sera - servie par le serveur virtuel <code>www.domain.tld</code>. - Ainsi, les pages sont accessibles à - <code>http://www.domain.tld/domain/</code> pour tous les - clients, bien que ceux qui transmettent un en-tête - <code>Host:</code> peuvent également y accéder à + <p>Qu'est-ce que cela signifie ? Il signifie qu'une requête + pour tout URI qui commence par "<code>/domain</code>" sera + servie par le serveur virtuel <code>www.domain.tld</code>. + Ainsi, les pages sont accessibles à + <code>http://www.domain.tld/domain/</code> pour tous les + clients, bien que ceux qui transmettent un en-tête + <code>Host:</code> peuvent également y accéder à <code>http://www.domain.tld/</code>.</p> - <p>Pour rendre cette technique fonctionnelle, mettez un lien - dans votre serveur virtuel primaire vers - <code>http://www.domain.tld/domain/</code>. Ensuite, dans les - pages de ce serveur virtuel, assurez vous ne n'utiliser que - des liens relatifs (<em>par exemple</em>, "<code>file.html</code>" - ou "<code>../icons/image.gif</code>") ou des liens contenant - le préfixe <code>/domain/</code> (<em>par exemple</em>, - "<code>http://www.domain.tld/domain/misc/file.html</code>" + <p>Pour rendre cette technique fonctionnelle, mettez un lien + dans votre serveur virtuel primaire vers + <code>http://www.domain.tld/domain/</code>. Ensuite, dans les + pages de ce serveur virtuel, assurez vous ne n'utiliser que + des liens relatifs (<em>par exemple</em>, "<code>file.html</code>" + ou "<code>../icons/image.gif</code>") ou des liens contenant + le préfixe <code>/domain/</code> (<em>par exemple</em>, + "<code>http://www.domain.tld/domain/misc/file.html</code>" ou "<code>/domain/misc/file.html</code>").</p> - <p>Cela requiert un peu de discipline, mais si vous suivez - cette ligne de conduite, vous serez assuré que vos pages + <p>Cela requiert un peu de discipline, mais si vous suivez + cette ligne de conduite, vous serez assuré que vos pages s'afficheront dans tous les navigateurs, nouveaux et anciens.</p> </section> |