-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 1673947 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision: 1673652 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1044378 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision : 1690343 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1721975 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673932 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1544626 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English Revision : 1561569 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- English revision : 1561569 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1719571 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673945 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673945 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1328159 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English revision : 1200006 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1682923 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English revision : 1655141 -->
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.fr.xsl"?>
<!-- French translation : Lucien GENTIS -->
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673947 -->
<manualpage metafile="details.xml.meta">
<parentdocument href="./">Serveurs virtuels</parentdocument>
- <title>Détails sur le fonctionnement des serveurs virtuels</title>
+ <title>Détails sur le fonctionnement des serveurs virtuels</title>
<summary>
- <p>Ce document vise à expliquer dans le détail comment le serveur
- HTTP Apache procède lors du choix de l'utilisation
- d'un serveur virtuel en fonction d'une requête reçue.</p>
+ <p>Ce document vise à expliquer dans le détail comment le serveur
+ HTTP Apache procède lors du choix de l'utilisation
+ d'un serveur virtuel en fonction d'une requête reçue.</p>
- <p>Il est recommandé de lire la documentation<a href="name-based.html#namevip">
- Serveurs virtuels à base de nom et serveurs virtuels à base
- d'adresse IP</a> pour déterminer quel type de serveur virtuel nous
+ <p>Il est recommandé de lire la documentation<a href="name-based.html#namevip">
+ Serveurs virtuels à base de nom et serveurs virtuels à base
+ d'adresse IP</a> pour déterminer quel type de serveur virtuel nous
convient le mieux, puis de lire les documentations <a
- href="name-based.html">serveurs virtuels à base de nom</a> ou <a
- href="ip-based.html">serveurs virtuels à base d'adresse IP</a>, et enfin
- d'étudier <a href="examples.html">quelques exemples</a>.</p>
+ href="name-based.html">serveurs virtuels à base de nom</a> ou <a
+ href="ip-based.html">serveurs virtuels à base d'adresse IP</a>, et enfin
+ d'étudier <a href="examples.html">quelques exemples</a>.</p>
- <p>Si vous voulez entrer dans les détails, vous pouvez revenir vers
+ <p>Si vous voulez entrer dans les détails, vous pouvez revenir vers
cette page.</p>
</summary>
-<seealso><a href="ip-based.html">Support des serveurs virtuels à base
+<seealso><a href="ip-based.html">Support des serveurs virtuels à base
d'adresse IP</a></seealso>
-<seealso><a href="name-based.html">Support des serveurs virtuels à base
+<seealso><a href="name-based.html">Support des serveurs virtuels à base
de nom</a></seealso>
<seealso><a href="examples.html">Exemples de serveurs virtuels pour une
configuration courante</a></seealso>
-<seealso><a href="mass.html">Hébergement virtuel de masse configuré
+<seealso><a href="mass.html">Hébergement virtuel de masse configuré
dynamiquement</a></seealso>
<section id="configparsing"><title>Fichier de configuration</title>
<p>Un <em>serveur principal (main_server)</em> contient toutes
- les définitions qui apparaissent en dehors des sections
+ les définitions qui apparaissent en dehors des sections
<code><VirtualHost></code>.</p>
<p>Les serveurs virtuels, aussi
- appelés <em>vhosts</em> (pour virtual hosts), sont définis par les
+ appelés <em>vhosts</em> (pour virtual hosts), sont définis par les
sections <directive type="section" module="core">VirtualHost</directive>.</p>
<p>Chaque directive <code>VirtualHost</code> comporte une ou
plusieurs adresses et des ports optionnels.</p>
- <p>Il est possible d'utiliser des noms d'hôtes dans la définition
- d'un serveur virtuel, mais ils seront résolus en adresses IP au
- démarrage du serveur, et si une résolution de nom échoue, cette
- définition de serveur virtuel sera ignorée. Cette méthode est par
- conséquent déconseillée.</p>
+ <p>Il est possible d'utiliser des noms d'hôtes dans la définition
+ d'un serveur virtuel, mais ils seront résolus en adresses IP au
+ démarrage du serveur, et si une résolution de nom échoue, cette
+ définition de serveur virtuel sera ignorée. Cette méthode est par
+ conséquent déconseillée.</p>
<p>L'adresse peut
- être spécifiée sous la forme <code>*</code>, ce qui conviendra à la
- requête si aucun autre serveur virtuel ne possède l'adresse IP
- explicite correspondant à celle de la requête.</p>
-
- <p>L'adresse qui apparaît dans la directive <code>VirtualHost</code>
- peut être associée à un port optionnel. Si aucun port n'est
- spécifié, il s'agit d'un port générique qui peut aussi être spécifié
- comme <code>*</code>. Le port générique correspond à toutes les
+ être spécifiée sous la forme <code>*</code>, ce qui conviendra à la
+ requête si aucun autre serveur virtuel ne possède l'adresse IP
+ explicite correspondant à celle de la requête.</p>
+
+ <p>L'adresse qui apparaît dans la directive <code>VirtualHost</code>
+ peut être associée à un port optionnel. Si aucun port n'est
+ spécifié, il s'agit d'un port générique qui peut aussi être spécifié
+ comme <code>*</code>. Le port générique correspond à toutes les
valeurs de port.</p>
- <p>(Il ne faut pas confondre les numéros de port sur lesquels Apache
- est en écoute avec les numéros de port spécifiés dans la directive
- <code>VirtualHost</code> ; ces derniers ne servent qu'à définir le
- <code>serveur virtuel</code> qui sera sélectionné pour traiter la
- requête. Pour définir les ports sur lesquels Apache est en écoute,
+ <p>(Il ne faut pas confondre les numéros de port sur lesquels Apache
+ est en écoute avec les numéros de port spécifiés dans la directive
+ <code>VirtualHost</code> ; ces derniers ne servent qu'à définir le
+ <code>serveur virtuel</code> qui sera sélectionné pour traiter la
+ requête. Pour définir les ports sur lesquels Apache est en écoute,
utilisez la directive <directive module="mpm_common">Listen</directive>).
</p>
- <p>L'ensemble des adresses (y compris les résultats multiples
- <code>A</code> issus des requêtes DNS) est appelé <em>jeu
+ <p>L'ensemble des adresses (y compris les résultats multiples
+ <code>A</code> issus des requêtes DNS) est appelé <em>jeu
d'adresses</em> du serveur virtuel.</p>
- <p>Apache fait automatiquement sa sélection à partir de l'en-tête
+ <p>Apache fait automatiquement sa sélection à partir de l'en-tête
HTTP <code>Host</code> fourni par le client, lorsque la
correspondance la plus exacte du point de vue adresse IP/port a lieu
pour plusieurs serveurs virtuels.</p>
<p>La directive <directive module="core">ServerName</directive> peut
- apparaître en quelque endroit de la définition d'un serveur.
- Cependant, chaque occurrence écrase la précédente (pour ce serveur).
- Si aucune directive <code>ServerName</code> n'est spécifiée, le
- serveur tente de déterminer le nom du serveur à partir de l'adresse
+ apparaître en quelque endroit de la définition d'un serveur.
+ Cependant, chaque occurrence écrase la précédente (pour ce serveur).
+ Si aucune directive <code>ServerName</code> n'est spécifiée, le
+ serveur tente de déterminer le nom du serveur à partir de l'adresse
IP.</p>
- <p>Le premier serveur virtuel à base de nom apparaissant dans le
- fichier de configuration pour une paire IP:port donnée est
- significatif car c'est lui qui sera utilisé pour toutes les requêtes
- reçues sur cette adresse IP/port et pour laquelle aucun autre
- serveur virtuel ne possède un ServerName ou un ServerAlias
- correspondant. Il sera aussi utilisé pour toutes les connexions SSL
+ <p>Le premier serveur virtuel à base de nom apparaissant dans le
+ fichier de configuration pour une paire IP:port donnée est
+ significatif car c'est lui qui sera utilisé pour toutes les requêtes
+ reçues sur cette adresse IP/port et pour laquelle aucun autre
+ serveur virtuel ne possède un ServerName ou un ServerAlias
+ correspondant. Il sera aussi utilisé pour toutes les connexions SSL
si le serveur ne supporte pas l'<glossary
ref="servernameindication">Indication du nom du serveur</glossary>.</p>
- <p>Tous les noms spécifiés au sein d'une section
- <code>VirtualHost</code> sont traités comme un
- <code>ServerAlias</code> (sans caractères génériques), mais ne sont
- écrasés par aucune directive <code>ServerAlias</code>.</p>
+ <p>Tous les noms spécifiés au sein d'une section
+ <code>VirtualHost</code> sont traités comme un
+ <code>ServerAlias</code> (sans caractères génériques), mais ne sont
+ écrasés par aucune directive <code>ServerAlias</code>.</p>
- <p>Pour chaque serveur virtuel, diverses valeurs sont initialisées
- par défaut. En particulier :</p>
+ <p>Pour chaque serveur virtuel, diverses valeurs sont initialisées
+ par défaut. En particulier :</p>
<ol>
- <li>Dans le cas où un serveur virtuel ne contient pas de directives
+ <li>Dans le cas où un serveur virtuel ne contient pas de directives
<directive module="core">ServerAdmin</directive>,
<directive module="core">Timeout</directive>,
<directive module="core">KeepAliveTimeout</directive>,
<directive module="core">MaxKeepAliveRequests</directive>,
<directive module="mpm_common">ReceiveBufferSize</directive>,
ou <directive module="mpm_common">SendBufferSize</directive>,
- alors la valeur de chacun de ces paramètres est héritée de celle du
- serveur principal. (C'est à dire, héritée de la valeur finale après
+ alors la valeur de chacun de ces paramètres est héritée de celle du
+ serveur principal. (C'est à dire, héritée de la valeur finale après
lecture de la configuration du serveur principal.)</li>
- <li>Les permissions par défaut sur les répertoires de chaque
- serveur virtuel sont assemblées avec celles du serveur principal.
- Elles concernent également toutes les informations de configuration
- par répertoire pour tous les modules.</li>
+ <li>Les permissions par défaut sur les répertoires de chaque
+ serveur virtuel sont assemblées avec celles du serveur principal.
+ Elles concernent également toutes les informations de configuration
+ par répertoire pour tous les modules.</li>
- <li>Les configurations par serveur pour chaque module sont assemblées
- à partir de celles du serveur principal.</li>
+ <li>Les configurations par serveur pour chaque module sont assemblées
+ à partir de celles du serveur principal.</li>
</ol>
<p>L'essentiel des valeurs de configuration des serveurs virtuels
- provient de valeurs par défaut issues du serveur principal.
+ provient de valeurs par défaut issues du serveur principal.
Mais la position dans le fichier de configuration des directives
du serveur principal n'a pas d'importance -- l'ensemble de la
configuration du serveur principal est lu avant que ces valeurs par
- défaut soient appliquées aux serveur virtuels. Ainsi, même si la
- définition d'une valeur apparaît après celle d'un serveur virtuel,
+ défaut soient appliquées aux serveur virtuels. Ainsi, même si la
+ définition d'une valeur apparaît après celle d'un serveur virtuel,
cette valeur peut affecter la definition du serveur virtuel.</p>
- <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
+ <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
- renvoyées par une résolution DNS sur le <code>ServerName</code>
+ renvoyées par une résolution DNS sur le <code>ServerName</code>
du serveur principal.</p>
- <p>Pour tous les champs <code>ServerName</code> non définis, dans
+ <p>Pour tous les champs <code>ServerName</code> non définis, dans
le cas d'une configuration en serveur virtuel par nom, la valeur
- adoptée par défaut est la première adresse donnée dans la section
- <code>VirtualHost</code> qui définit le serveur virtuel.</p>
+ adoptée par défaut est la première adresse donnée dans la section
+ <code>VirtualHost</code> qui définit le serveur virtuel.</p>
<p>Si un serveur virtuel contient la valeur magique
- <code>_default_</code>, il fonctionne sur le même <code>ServerName</code>
+ <code>_default_</code>, il fonctionne sur le même <code>ServerName</code>
que le serveur principal.</p>
</section>
<section id="hostmatching"><title>Choix du serveur virtuel</title>
- <p>À la réception d'une requête, le serveur procède comme suit pour
- déterminer quel serveur virtuel utiliser :</p>
+ <p>À la réception d'une requête, le serveur procède comme suit pour
+ déterminer quel serveur virtuel utiliser :</p>
<section id="hashtable"><title>Recherche de l'adresse IP</title>
- <p>Lors d'une première connexion sur une adresse/port, le serveur
+ <p>Lors d'une première connexion sur une adresse/port, le serveur
recherche toutes les directives <code>VirtualHost</code> qui
- possèdent la même adresse IP/port.</p>
+ possèdent la même adresse IP/port.</p>
<p>S'il n'y a aucune correspondance exacte pour cette adresse/port,
- la recherche s'effectue sur la valeur générique (<code>*</code>).</p>
+ la recherche s'effectue sur la valeur générique (<code>*</code>).</p>
- <p>Si aucune correspondance n'est enfin trouvée, la requête sera
+ <p>Si aucune correspondance n'est enfin trouvée, la requête sera
servie par le serveur principal.</p>
- <p>S'il existe des définitions <code>VirtualHost</code> pour
- l'adresse IP, l'étape suivante consiste à déterminer si nous avons à
- faire à un serveur virtuel à base de nom ou d'adresse IP.</p>
+ <p>S'il existe des définitions <code>VirtualHost</code> pour
+ l'adresse IP, l'étape suivante consiste à déterminer si nous avons à
+ faire à un serveur virtuel à base de nom ou d'adresse IP.</p>
</section>
<section id="ipbased"><title>Serveur virtuel par IP</title>
- <p>Si une seule section <code>VirtualHost</code> présente la
+ <p>Si une seule section <code>VirtualHost</code> présente la
meilleure correspondance avec la paire adresse IP/port, aucune
- action n'est entreprise et la requête est
- traitée par le serveur virtuel qui correspond.</p>
+ action n'est entreprise et la requête est
+ traitée par le serveur virtuel qui correspond.</p>
</section>
<section id="namebased"><title>Serveur virtuel par nom</title>
- <p>Si plusieurs sections <code>VirtualHost</code> présentent la
+ <p>Si plusieurs sections <code>VirtualHost</code> présentent la
meilleure correspondance avec la paire adresse IP/port, le terme
- "liste" dans les étapes suivantes fait référence à la liste des
+ "liste" dans les étapes suivantes fait référence à la liste des
serveurs virtuels qui correspondent, selon l'ordre dans lequel ils
apparaissent dans le fichier de configuration.</p>
<p>Si la connexion utilise SSL, si le serveur supporte l'<glossary
ref="servernameindication">Indication de nom de serveur</glossary>,
- et si la négociation du client SSL inclut l'extension TLS dans le
- nom d'hôte requis, alors ce nom d'hôte sera utilisé par la suite, tout
- comme un en-tête <code>Host:</code> aurait été utilisé dans le cas
- d'une connexion non-SSL. Si ces conditions ne sont pas réunies, le
- premier serveur virtuel à base de nom dont l'adresse correspond sera
- utilisé pour les connexions SSL. Ceci est important car c'est le
- serveur virtuel qui détermine quel certificat le serveur va utiliser
+ et si la négociation du client SSL inclut l'extension TLS dans le
+ nom d'hôte requis, alors ce nom d'hôte sera utilisé par la suite, tout
+ comme un en-tête <code>Host:</code> aurait été utilisé dans le cas
+ d'une connexion non-SSL. Si ces conditions ne sont pas réunies, le
+ premier serveur virtuel à base de nom dont l'adresse correspond sera
+ utilisé pour les connexions SSL. Ceci est important car c'est le
+ serveur virtuel qui détermine quel certificat le serveur va utiliser
pour la connexion.</p>
- <p>Si la requête contient un en-tête <code>Host:</code>, on
+ <p>Si la requête contient un en-tête <code>Host:</code>, on
recherche dans la liste le premier serveur virtuel dont le
<code>ServerName</code> ou le <code>ServerAlias</code> correspond,
- et c'est celui-ci qui va traiter la requête. Un en-tête
- <code>Host:</code> peut comporter un numéro de port mais Apache
- l'ignore systématiquement et utilise toujours le
- port sur lequel il a effectivement reçu la requête.</p>
+ et c'est celui-ci qui va traiter la requête. Un en-tête
+ <code>Host:</code> peut comporter un numéro de port mais Apache
+ l'ignore systématiquement et utilise toujours le
+ port sur lequel il a effectivement reçu la requête.</p>
<p>Le premier serveur virtuel du fichier de configuration qui
- possède l'adresse spécifiée est prioritaire et intercepte toutes les
- requêtes à destination d'un nom de serveur inconnu, ou toute requête
- sans en-tête <code>Host:</code> (comme les requêtes HTTP/1.0).</p>
+ possède l'adresse spécifiée est prioritaire et intercepte toutes les
+ requêtes à destination d'un nom de serveur inconnu, ou toute requête
+ sans en-tête <code>Host:</code> (comme les requêtes HTTP/1.0).</p>
</section>
<section id="persistent"><title>Connexions persistantes</title>
- <p>La <em>recherche par adresse IP</em> décrite ci-avant n'est faite
+ <p>La <em>recherche par adresse IP</em> décrite ci-avant n'est faite
qu'<em>une fois</em> pour chaque session TCP/IP, alors que la
- <em>recherche par nom</em> est réalisée pour <em>chaque</em> requête au
+ <em>recherche par nom</em> est réalisée pour <em>chaque</em> requête au
cours d'une connexion persistante (KeepAlive). En d'autres termes,
- il est possible pour un client de faire des requêtes sur
- différents serveurs virtuels par nom, au cours d'une unique
+ il est possible pour un client de faire des requêtes sur
+ différents serveurs virtuels par nom, au cours d'une unique
connexion persistante.</p>
</section>
<section id="absoluteURI"><title>URI absolu</title>
- <p>Au cas où l'URI de la requête est absolu, et que son nom de
+ <p>Au cas où l'URI de la requête est absolu, et que son nom de
serveur et son port correspondent au serveur principal (ou l'un
- des serveurs virtuels configurés), <em>et</em> qu'ils correspondent
- à l'adresse et au port de la requête, alors l'URI est amputé
- de son préfixe protocole/nom de serveur/port et traité par le
+ des serveurs virtuels configurés), <em>et</em> qu'ils correspondent
+ à l'adresse et au port de la requête, alors l'URI est amputé
+ de son préfixe protocole/nom de serveur/port et traité par le
serveur correspondant (principal ou virtuel). Si cette correspondance
- n'existe pas, l'URI reste inchangé et la requête est considérée
- comme une requête d'un serveur mandataire (proxy).</p>
+ n'existe pas, l'URI reste inchangé et la requête est considérée
+ comme une requête d'un serveur mandataire (proxy).</p>
</section>
<section id="observations"><title>Observations</title>
<ul>
- <li>La sélection d'un serveur virtuel en fonction de son nom est
- un processus qui intervient après la sélection par le serveur du
+ <li>La sélection d'un serveur virtuel en fonction de son nom est
+ un processus qui intervient après la sélection par le serveur du
serveur virtuel qui correspond le mieux du point de vue adresse
IP/port.</li>
- <li>Si vous ne tenez pas compte de l'adresse IP à laquelle le
- client s'est connecté, indiquez un caractère "*" comme adresse
- pour tous les serveurs virtuels, et la sélection du serveur
- virtuel en fonction du nom s'appliquera alors à tous les serveurs
- virtuels définis.</li>
+ <li>Si vous ne tenez pas compte de l'adresse IP à laquelle le
+ client s'est connecté, indiquez un caractère "*" comme adresse
+ pour tous les serveurs virtuels, et la sélection du serveur
+ virtuel en fonction du nom s'appliquera alors à tous les serveurs
+ virtuels définis.</li>
- <li>Les vérifications sur <code>ServerName</code> et
+ <li>Les vérifications sur <code>ServerName</code> et
<code>ServerAlias</code> ne sont jamais
- réalisées pour les serveurs virtuels par IP.</li>
+ réalisées pour les serveurs virtuels par IP.</li>
<li>Seul l'ordre des serveurs virtuels par nom
- pour une adresse donnée a une importance. Le serveur virtuel
- par nom qui est présent en premier dans la configuration se
- voit attribué la priorité la plus haute pour les requêtes
+ pour une adresse donnée a une importance. Le serveur virtuel
+ par nom qui est présent en premier dans la configuration se
+ voit attribué la priorité la plus haute pour les requêtes
arrivant sur son jeu d'adresses IP.</li>
- <li>Le numéro de port contenu dans l'en-tête <code>Host:</code> n'est jamais utilisé
+ <li>Le numéro de port contenu dans l'en-tête <code>Host:</code> n'est jamais utilisé
pour les tests de correspondances. Apache ne prend en compte
- que le numéro de port sur lequel le client a envoyé la requête.</li>
+ que le numéro de port sur lequel le client a envoyé la requête.</li>
- <li>Si deux serveurs virtuels partagent la même adresse, la
- sélection se fera implicitement sur le nom. Il s'agit d'une
- nouvelle fonctionnalité de la version 2.3.11.</li>
+ <li>Si deux serveurs virtuels partagent la même adresse, la
+ sélection se fera implicitement sur le nom. Il s'agit d'une
+ nouvelle fonctionnalité de la version 2.3.11.</li>
- <li>Le serveur principal ne sert les requêtes que
- lorsque l'adresse IP et le port demandés par le client ne
- correspondent à aucun serveur virtuel (y compris un serveur
+ <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>*</code>). En d'autres termes, le serveur
principal n'est utile que pour les combinaisons adresse/port
- non spécifiées (sauf quand un serveur virtuel <code>_default_</code>
+ non spécifiées (sauf quand un serveur virtuel <code>_default_</code>
correspond au port).</li>
<li>Il ne faut jamais employer de noms DNS dans des directives
<code>VirtualHost</code>, car cela oblige le serveur a s'appuyer
- sur le DNS au moment du démarrage. De plus, vous vous exposez
- à des problèmes de sécurité si vous n'avez pas la maîtrise du
- DNS pour la totalité de vos domaines. Voir la documentation
+ sur le DNS au moment du démarrage. De plus, vous vous exposez
+ à des problèmes de sécurité si vous n'avez pas la maîtrise du
+ DNS pour la totalité de vos domaines. Voir la documentation
<a href="../dns-caveats.html">disponible ici</a>, ainsi que
- les deux points précisés ci-après.</li>
+ les deux points précisés ci-après.</li>
<li>Un nom de serveur <code>ServerName</code> devrait toujours
- être indiqué pour chaque serveur virtuel. Sans cela, une
- résolution DNS est nécessaire pour chaque serveur virtuel.</li>
+ être indiqué pour chaque serveur virtuel. Sans cela, une
+ résolution DNS est nécessaire pour chaque serveur virtuel.</li>
</ul>
</section>
<section id="tips"><title>Trucs et astuces</title>
- <p>En plus des points évoqués sur la page des
- <a href="../dns-caveats.html#tips">problèmes liés au DNS</a>,
- voici quelques points intéressants :</p>
+ <p>En plus des points évoqués sur la page des
+ <a href="../dns-caveats.html#tips">problèmes liés au DNS</a>,
+ voici quelques points intéressants :</p>
<ul>
- <li>Toujours positionner les définitions relatives au serveur
- principal avant toute définition <code>VirtualHost</code>.
- (Ceci améliore grandement la lisibilité de la configuration
- -- 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
+ <li>Toujours positionner les définitions relatives au serveur
+ principal avant toute définition <code>VirtualHost</code>.
+ (Ceci améliore grandement la lisibilité de la configuration
+ -- 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 de tous les
serveurs virtuels.)</li>
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1746754 -->
<summary>
- <p>Le but de ce document est d'essayer de répondre aux questions
- les plus répandues sur la configuration des <a href="index.html">serveurs virtuels</a>.
- Les scénarios présentés ici se rencontrent quand plusieurs
- serveurs Webs doivent tourner sur une seule et même machine au
+ <p>Le but de ce document est d'essayer de répondre aux questions
+ les plus répandues sur la configuration des <a href="index.html">serveurs virtuels</a>.
+ 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>
<section id="purename"><title>Fonctionnement de plusieurs serveurs
virtuels par nom sur une seule adresse IP.</title>
- <p>Votre serveur possède plusieurs noms d'hôte qui correspondent à
- une seule adresse IP, ce qui lui permet de répondre différemment si
- une requête est envoyée à <code>www.example.com</code> ou
+ <p>Votre serveur possède plusieurs noms d'hôte qui correspondent à
+ une seule adresse IP, ce qui lui permet de répondre différemment si
+ une requête est envoyée à <code>www.example.com</code> ou
<code>www.example.org</code>.</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
+ 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
+ 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>
+ que sur la machine possédant ces entrées.</p>
</note>
<highlight language="config">
-# Apache doit écouter sur le port 80
+# Apache doit écouter sur le port 80
Listen 80
<VirtualHost *:80>
DocumentRoot "/www/example1"
</highlight>
- <p>Les astérisques correspondent à toutes les adresses, si bien que
- le serveur principal ne répondra jamais à aucune requête. Comme le
+ <p>Les astérisques correspondent à toutes les adresses, si bien que
+ le serveur principal ne répondra jamais à aucune requête. Comme le
serveur virtuel
<code>ServerName 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
+ 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 <directive module="core">ServerName</directive> sera servie par ce premier
<directive type="section" module="core">VirtualHost</directive>.</p>
- <p>La configuration ci-dessus correspond à ce que l'on souhaite pour
- la plupart des serveurs virtuels à base de nom. Il faudra cependant
- utiliser une configuration différente si vous souhaitez servir un
- contenu différent en fonction de l'adresse IP ou du port.</p>
+ <p>La configuration ci-dessus correspond à ce que l'on souhaite pour
+ la plupart des serveurs virtuels à base de nom. Il faudra cependant
+ utiliser une configuration différente si vous souhaitez servir un
+ contenu différent en fonction de l'adresse IP ou du port.</p>
<note>
<title>Note :</title>
<p>Vous pouvez remplacer <code>*</code>
- par une adresse IP du système. Le serveur virtuel concerné
- ne sera alors sélectionné que pour les requêtes HTTP vers
+ par une adresse IP du système. Le serveur virtuel concerné
+ ne sera alors sélectionné que pour les requêtes HTTP vers
cette adresse IP.</p>
- <p>En général, il est commode d'utiliser <code>*</code> sur
- les systèmes dont l'adresse IP n'est pas constante - par
- exemple, pour des serveurs dont l'adresse IP est attribuée
- dynamiquement par le FAI, et où le DNS est géré au moyen
+ <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>
+ fonctionne sans devoir être modifiée quand l'adresse IP du
+ système est modifiée.</p>
</note>
</section>
d'une seule adresse IP.</title>
<note>
- <title>Note :</title><p>Toutes les techniques présentées ici
- peuvent être étendues à un plus grand nombre d'adresses IP.</p>
+ <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.example.com</code> doit répondre, et sur l'autre
+ <code>server.example.com</code> doit répondre, et sur l'autre
(<code>172.20.30.50</code>), deux serveurs virtuels (ou plus)
- répondront.</p>
+ répondront.</p>
<highlight language="config">
Listen 80
</VirtualHost>
</highlight>
- <p>Toute requête arrivant sur une autre adresse que
+ <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
+ 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
+ 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
+ (<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
<directive type="section" module="core">VirtualHost</directive>.</p>
<highlight language="config">
</VirtualHost>
</highlight>
- <p>Ainsi, les requêtes en provenance de chacun des deux réseaux
- seront servies par le même <directive type="section"
+ <p>Ainsi, les requêtes en provenance de chacun des deux réseaux
+ seront servies par le même <directive type="section"
module="core">VirtualHost</directive>.</p>
<note>
- <title>Note :</title><p>Sur le réseau interne, il est possible
+ <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
+ <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
+ 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. L'exemple
- suivant montre que la sélection en fonction du nom intervient après
- la sélection de la meilleure correspondance du point de vue adresse
+ <p>Vous disposez de plusieurs domaines pointant sur la même adresse
+ IP et vous voulez également servir de multiples ports. L'exemple
+ suivant montre que la sélection en fonction du nom intervient après
+ la sélection de la meilleure correspondance du point de vue adresse
IP/port.</p>
<highlight language="config">
</section>
- <section id="ip"><title>Hébergement virtuel basé sur IP</title>
+ <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
</VirtualHost>
</highlight>
- <p>Les requêtes provenant d'adresses non spécifiées dans l'une des
+ <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
+ <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.example.com</code> et <code>www.example.org</code>.
- Pour chacun d'eux, nous voulons un hébergement sur les ports 80
+ Pour chacun d'eux, nous voulons un hébergement sur les ports 80
et 8080.</p>
<highlight language="config">
</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>Toute adresse indiquée comme argument d'une section VirtualHost
+ <p>Toute adresse indiquée comme argument d'une section VirtualHost
et n'apparaissant dans aucun autre serveur virtuel, fait de cette
- section un serveur virtuel sélectionnable uniquement en fonction de
+ section un serveur virtuel sélectionnable uniquement en fonction de
son adresse IP.</p>
<highlight language="config">
</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
+ 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"
name="ProxyPreserveHost">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>
+ 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>
<highlight language="config">
<VirtualHost *:*>
<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
- couple adresse/port non traité par aucun autre serveur virtuel.</p>
+ <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>
<highlight language="config">
<VirtualHost _default_:*>
</highlight>
<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
+ 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
+ <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
+ (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
+ réécrire une requête pour une unique page d'information (ou pour
un script).</p>
</section>
<section id="defaultdifferentports"><title>Serveurs virtuels
- <code>_default_</code> pour des ports différents</title>
+ <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
- <code>_default_</code> pour le port 80 est ajouté.</p>
+ <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>
<highlight language="config">
<VirtualHost _default_:80>
</VirtualHost>
</highlight>
- <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>
+ <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
<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>
<highlight language="config">
</VirtualHost>
</highlight>
- <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>
- <p>L'utilisation du caractère générique <code>*</code> dans la
- déclaration d'un serveur virtuel l'emporte sur
+ <p>L'utilisation du caractère générique <code>*</code> dans la
+ déclaration d'un serveur virtuel l'emporte sur
<code>_default_</code>.</p>
</section>
<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
+ 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
</VirtualHost>
</highlight>
- <p>Le serveur virtuel peut maintenant être joint par la nouvelle
+ <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 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>
<highlight language="config">
</VirtualHost>
</highlight>
- <p>À cause de la directive
- <directive module="core">ServerPath</directive>, une requête sur
+ <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é.</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
+ 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
+ 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>
+ <em>c'est-à-dire</em> avec ou sans préfixe d'URL.</p>
</section>
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1674195 -->
<summary>
- <p>Quand de nombreux serveurs virtuels sont créés, Apache peut
- dépasser les limites en descripteurs de fichiers ('file descriptors',
- également appelés <cite>gestionnaires de fichiers</cite>) si chacun
+ <p>Quand de nombreux serveurs virtuels sont créés, Apache peut
+ dépasser les limites en descripteurs de fichiers ('file descriptors',
+ également appelés <cite>gestionnaires de fichiers</cite>) si chacun
des serveurs virtuels utilise ses propres fichiers journaux. Le
- nombre total de descripteurs de fichiers utilisés par Apache est
+ nombre total de descripteurs de fichiers utilisés par Apache est
d'un par fichier journal, un pour chacune des autres directives
de fichiers journaux, plus un nombre constant compris entre 10 et 20
- pour son fonctionnement interne. Les systèmes d'exploitation Unix
+ pour son fonctionnement interne. Les systèmes d'exploitation Unix
limitent le nombre de descripteurs de fichiers utilisables par
processus ; une valeur courante pour cette limite est de 64, et
- cette valeur peut le plus souvent être augmentée.</p>
+ cette valeur peut le plus souvent être augmentée.</p>
- <p>Apache tente d'accroître cette valeur limite si nécessaire, mais
+ <p>Apache tente d'accroître cette valeur limite si nécessaire, mais
sans y parvenir dans les cas suivants :</p>
<ol>
- <li>Le système d'exploitation ne permet pas l'utilisation d'appels
- systèmes <code>setrlimit()</code>.</li>
+ <li>Le système d'exploitation ne permet pas l'utilisation d'appels
+ systèmes <code>setrlimit()</code>.</li>
<li>L'appel <code>setrlimit(RLIMIT_NOFILE)</code> ne fonctionne pas
- sur votre système d'exploitation (c'est le cas sous Solaris 2.3).</li>
+ sur votre système d'exploitation (c'est le cas sous Solaris 2.3).</li>
- <li>Le nombre de descripteurs de fichiers nécessaires à Apache
- dépasse la limite physique du matériel.</li>
+ <li>Le nombre de descripteurs de fichiers nécessaires à Apache
+ dépasse la limite physique du matériel.</li>
- <li>Le système impose d'autres limites sur l'utilisation des
+ <li>Le système impose d'autres limites sur l'utilisation des
descripteurs de fichiers, comme par exemple une limite sur les
flux stdio, utilisables uniquement sur les descripteurs de
- fichiers inférieurs à 256. (sous Solaris 2).</li>
+ fichiers inférieurs à 256. (sous Solaris 2).</li>
</ol>
- <p>En cas de problème, Vous pouvez :</p>
+ <p>En cas de problème, Vous pouvez :</p>
<ul>
- <li>Réduire le nombre de fichiers journaux, en ne spécifiant
+ <li>Réduire le nombre de fichiers journaux, en ne spécifiant
aucun fichier journal dans les sections
<directive type="section" module="core">VirtualHost</directive>,
en donc en envoyant les informations aux fichiers journaux du
- serveur principal (Voir <a href="#splitlogs">Éclatement des
+ serveur principal (Voir <a href="#splitlogs">Éclatement des
fichiers journaux</a> ci-dessous pour plus d'informations sur
- cette possibilité).</li>
+ cette possibilité).</li>
<li>
- Dans les cas 1 ou 2 (évoqués ci-dessus), augmentez la limite sur
- les descripteurs de fichiers avant le démarrage d'Apache, au
+ Dans les cas 1 ou 2 (évoqués ci-dessus), augmentez la limite sur
+ les descripteurs de fichiers avant le démarrage d'Apache, au
moyen d'un script comme
<example>
<!-- the document misc/descriptors.xml does not exist yet in 2.1
<p>Veuillez noter que le document
<a href="../misc/descriptors.html">Descripteurs et Apache</a>
- contient plus de détails concernant les problèmes de descripteurs
- de fichiers et comment les résoudre en fonction de votre système
+ contient plus de détails concernant les problèmes de descripteurs
+ de fichiers et comment les résoudre en fonction de votre système
d'exploitation.</p>
-->
</summary>
-<section id="splitlogs"><title>Éclatement des fichiers journaux</title>
+<section id="splitlogs"><title>Éclatement des fichiers journaux</title>
-<p>Lorsque vous choisissez d'enregistrer les informations émanant de
-plusieurs serveurs virtuels dans un même fichier journal, vous voudrez
-ensuite pouvoir scinder ces informations à des fins de statistiques, par
-exemple, sur les différents serveurs virtuels. Il est possible de procéder
-de la manière suivante :</p>
+<p>Lorsque vous choisissez d'enregistrer les informations émanant de
+plusieurs serveurs virtuels dans un même fichier journal, vous voudrez
+ensuite pouvoir scinder ces informations à des fins de statistiques, par
+exemple, sur les différents serveurs virtuels. Il est possible de procéder
+de la manière suivante :</p>
-<p>Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque
-entrée du journal. Ceci se paramètre au moyen de la directive
+<p>Tout d'abord, vous devez ajouter le nom du serveur virtuel à chaque
+entrée du journal. Ceci se paramètre au moyen de la directive
<directive module="mod_log_config"> LogFormat</directive> et de la
-variable <code>%v</code>. Ajoutez cette variable au début de la chaîne
-de définition du format de journalisations :</p>
+variable <code>%v</code>. Ajoutez cette variable au début de la chaîne
+de définition du format de journalisations :</p>
<highlight language="config">
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
CustomLog "logs/multiple_vhost_log" vhost
</highlight>
-<p>Cette configuration va provoquer la création d'un fichier de
+<p>Cette configuration va provoquer la création d'un fichier de
journalisation au format standard (CLF : 'Common Log Format'), mais dont
-chaque ligne débutera par le nom canonique du serveur virtuel (spécifié
+chaque ligne débutera par le nom canonique du serveur virtuel (spécifié
par la directive <directive module="core">ServerName</directive>).
(Voir <module>mod_log_config</module> pour d'autres informations sur la
personnalisation des fichiers journaux.)</p>
-<p>Au moment de séparer les informations du fichier journal en un fichier
+<p>Au moment de séparer les informations du fichier journal en un fichier
par serveur virtuel, le programme <code>
-<a href="../programs/other.html">split-logfile</a></code> peut être
-utilisé. Ce programme peut être trouvé dans le répertoire
+<a href="../programs/other.html">split-logfile</a></code> peut être
+utilisé. Ce programme peut être trouvé dans le répertoire
<code>support</code> de la distribution d'Apache.</p>
-<p>Exécutez ce programme au moyen de la commande :</p>
+<p>Exécutez ce programme au moyen de la commande :</p>
<example>
split-logfile < /logs/multiple_vhost_log
</example>
-<p>Une fois exécuté avec le nom du fichier contenant tous les journaux,
-ce programme va générer un fichier pour chacun des serveurs virtuels
-qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est
-nommé <code>nomduserveur.log</code>.</p>
+<p>Une fois exécuté avec le nom du fichier contenant tous les journaux,
+ce programme va générer un fichier pour chacun des serveurs virtuels
+qui apparaît dans le fichier d'entrée. Chaque fichier en sortie est
+nommé <code>nomduserveur.log</code>.</p>
</section>
</manualpage>
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1753872 -->
<summary>
- <p>Le principe des <cite>Serveurs Virtuels</cite> consiste à
+ <p>Le principe des <cite>Serveurs Virtuels</cite> consiste à
faire fonctionner un ou plusieurs serveurs Web (comme
<code>www.company1.example.com</code> et <code>www.company2.example.com</code>)
- sur une même machine. Les serveurs virtuels peuvent être soit
- "<a href="ip-based.html">par-IP</a>" où une adresse IP est
- attribuée pour chaque serveur Web, soit "<a href="name-based.html"
- >par-nom</a>" où plusieurs noms de domaine se côtoient sur
- des mêmes adresses IP. L'utilisateur final ne perçoit pas
- qu'en fait il s'agit d'un même serveur physique.</p>
-
- <p>Apache a été le précurseur des serveurs proposant cette
- méthode de serveurs virtuels basés sur les adresses IP. Ses
+ sur une même machine. Les serveurs virtuels peuvent être soit
+ "<a href="ip-based.html">par-IP</a>" où une adresse IP est
+ attribuée pour chaque serveur Web, soit "<a href="name-based.html"
+ >par-nom</a>" où plusieurs noms de domaine se côtoient sur
+ des mêmes adresses IP. L'utilisateur final ne perçoit pas
+ qu'en fait il s'agit d'un même serveur physique.</p>
+
+ <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 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>
+ 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>
<p>Vous trouverez ci-dessous une liste documentaire qui vous
- expliquera en détails le fonctionnement du support des serveurs
+ expliquera en détails le fonctionnement du support des serveurs
virtuels par le serveur HTTP Apache.</p>
</summary>
<seealso><a href="ip-based.html">Serveurs virtuels par-IP</a></seealso>
<seealso><a href="examples.html">Exemples de serveurs virtuels</a></seealso>
<seealso><a href="fd-limits.html">Limites des descripteurs de fichiers</a></seealso>
-<seealso><a href="mass.html">Hébergement virtuel en masse</a></seealso>
-<seealso><a href="details.html">Détails sur les critères de choix du serveur</a></seealso>
+<seealso><a href="mass.html">Hébergement virtuel en masse</a></seealso>
+<seealso><a href="details.html">Détails sur les critères de choix du serveur</a></seealso>
<section id="support"><title>Support des serveurs virtuels</title>
(ou, <em>trop de fichiers journaux</em>)</li>
<li><a href="mass.html">Configuration dynamique en masse de
Serveurs Virtuels</a></li>
- <li><a href="details.html">Explication approfondie des critères
- de sélection d'un Serveur Virtuel</a></li>
+ <li><a href="details.html">Explication approfondie des critères
+ de sélection d'un Serveur Virtuel</a></li>
</ul>
</section>
<li><directive module="core">ServerPath</directive></li>
</ul>
- <p>Pour vérifier et analyser la configuration de vos serveurs
+ <p>Pour vérifier et analyser la configuration de vos serveurs
virtuels, vous pouvez utiliser l'argument <code>-S</code> sur
la ligne de commande.</p>
httpd.exe -S
</example>
- <p>Cette commande affichera dans le détail comment Apache a
- traité son fichier de configuration. Les erreurs de configuration
- peuvent être corrigées par l'examen attentif des adresses IP et
+ <p>Cette commande affichera dans le détail comment Apache a
+ traité son fichier de configuration. Les erreurs de configuration
+ peuvent être corrigées par l'examen attentif des adresses IP et
des noms de serveurs. (Consultez la documentation du programme
<program>httpd</program> pour les autres arguments de la ligne de
commande)</p>
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- English Revision: 1673658 -->
<a href="name-based.html">Support Apache des serveurs virtuels par nom</a>
</seealso>
-<section id="requirements"><title>Système requis</title>
+<section id="requirements"><title>Système requis</title>
<p>Comme l'indique le terme <cite>par IP</cite>, le serveur
- <strong>doit disposer de différentes paires adresses IP/port pour chaque
- serveur virtuel par IP</strong>. La machine peut posséder
- plusieurs connexions physiques au réseau, ou utiliser des
- interfaces virtuelles qui sont supportées par la plupart des
- systèmes d'exploitation modernes (Consultez la documentation des
- systèmes d'exploitation pour plus de détails, notamment les "alias
+ <strong>doit disposer de différentes paires adresses IP/port pour chaque
+ serveur virtuel par IP</strong>. La machine peut posséder
+ plusieurs connexions physiques au réseau, ou utiliser des
+ interfaces virtuelles qui sont supportées par la plupart des
+ systèmes d'exploitation modernes (Consultez la documentation des
+ systèmes d'exploitation pour plus de détails, notamment les "alias
IP" et la commande "ifconfig" pour les activer), et/ou utiliser
- plusieurs numéros de port.</p>
+ plusieurs numéros de port.</p>
<p>Selon la terminologie du serveur HTTP Apache, l'utilisation d'une
- seule adresse IP avec plusieurs ports TCP s'apparente aussi à de
- l'hébergement virtuel basé sur IP.</p>
+ seule adresse IP avec plusieurs ports TCP s'apparente aussi à de
+ l'hébergement virtuel basé sur IP.</p>
</section>
<section id="howto"><title>Comment configurer Apache</title>
- <p>Il y a deux manières de configurer Apache pour le support de
+ <p>Il y a deux manières de configurer Apache pour le support de
multiples serveurs virtuels. Il suffit soit de faire tourner un
- processus résident <program>httpd</program> pour chaque nom de
- domaine, soit de faire tourner un unique processus résident qui
- gère tous les serveurs virtuels.</p>
+ processus résident <program>httpd</program> pour chaque nom de
+ domaine, soit de faire tourner un unique processus résident qui
+ gère tous les serveurs virtuels.</p>
- <p>Utilisez des processus résidents multiples lorsque :</p>
+ <p>Utilisez des processus résidents multiples lorsque :</p>
<ul>
- <li>il y a des problèmes de répartition de sécurité, tels
+ <li>il y a des problèmes de répartition de sécurité, tels
qu'une entreprise1 ne souhaite que personne d'une entreprise2
- ne puisse lire ses données excepté via le Web. Dans ce cas,
- vous aurez besoin de deux processus résidents, chacun fonctionnant
- avec des paramètres <directive module="mod_unixd">User</directive>,
+ ne puisse lire ses données excepté via le Web. Dans ce cas,
+ vous aurez besoin de deux processus résidents, chacun fonctionnant
+ avec des paramètres <directive module="mod_unixd">User</directive>,
<directive module="mod_unixd">Group</directive>,
<directive module="mpm_common">Listen</directive>, et
- <directive module="core">ServerRoot</directive> différents.</li>
+ <directive module="core">ServerRoot</directive> différents.</li>
- <li>vous disposez suffisamment de mémoire et de
+ <li>vous disposez suffisamment de mémoire et de
<a href="../misc/descriptors.html">descripteurs de fichiers</a>
- pour l'écoute de chaque alias IP de la machine. Il est seulement
+ pour l'écoute de chaque alias IP de la machine. Il est seulement
possible d'appliquer la directive
<directive module="mpm_common">Listen</directive>, soit sur toutes
les adresses avec le joker "*", soit uniquement sur des adresses
- spécifiques. Donc, si vous avez besoin d'écouter une adresse
+ spécifiques. Donc, si vous avez besoin d'écouter une adresse
en particulier, vous devrez le faire pour l'ensemble des
autres adresses (Bien qu'il soit plus simple de lancer un
- processus <program>httpd</program> pour écouter N-1 adresses,
+ processus <program>httpd</program> pour écouter N-1 adresses,
et un autre pour l'adresse restante).</li>
</ul>
- <p>Utilisez un unique processus résident lorsque :</p>
+ <p>Utilisez un unique processus résident lorsque :</p>
<ul>
<li>le partage de la configuration httpd entre les serveurs
virtuels est acceptable.</li>
- <li>la machine assume déjà une grande quantité de requêtes, et
- que l'ajout de processus résidents supplémentaires en affecterait
+ <li>la machine assume déjà une grande quantité de requêtes, et
+ que l'ajout de processus résidents supplémentaires en affecterait
les performances.</li>
</ul>
<section id="multiple"><title>Configuration de processus multiples</title>
- <p>Créez une installation indépendante du programme
+ <p>Créez une installation indépendante du programme
<program>httpd</program> pour chaque serveur virtuel. Pour
chacune d'elle, utilisez la directive
<directive module="mpm_common">Listen</directive> dans le fichier
- de configuration pour définir l'adresse IP (ou serveur virtuel)
- que le processus résident doit gérer. Par exemple :</p>
+ de configuration pour définir l'adresse IP (ou serveur virtuel)
+ que le processus résident doit gérer. Par exemple :</p>
<highlight language="config">
Listen 192.0.2.100:80
</highlight>
- <p>Il est recommandé d'utiliser une adresse IP plutôt qu'un nom
- de domaine (consultez <a href="../dns-caveats.html">Problèmes DNS
+ <p>Il est recommandé d'utiliser une adresse IP plutôt qu'un nom
+ de domaine (consultez <a href="../dns-caveats.html">Problèmes DNS
avec Apache</a>).</p>
</section>
<section id="single"><title>Configuration d'un unique processus
-résident pour des serveurs virtuels</title>
+résident pour des serveurs virtuels</title>
- <p>Dans ce cas, un unique processus httpd va gérer les requêtes
+ <p>Dans ce cas, un unique processus httpd va gérer les requêtes
pour le serveur principal et tous les serveurs virtuels. Dans le
fichier de configuration, la directive
- <directive module="core">VirtualHost</directive> va servir à
- définir les autres directives
+ <directive module="core">VirtualHost</directive> va servir à
+ définir les autres directives
<directive module="core">ServerAdmin</directive>,
<directive module="core">ServerName</directive>,
<directive module="core">DocumentRoot</directive>,
<directive module="core">ErrorLog</directive> et
<directive module="mod_log_config">TransferLog</directive> ou
<directive module="mod_log_config">CustomLog</directive> avec des
- valeurs différentes pour chaque serveur virtuel. Par exemple :</p>
+ valeurs différentes pour chaque serveur virtuel. Par exemple :</p>
<highlight language="config">
<VirtualHost 172.20.30.40:80>
</VirtualHost>
</highlight>
- <p>Il est recommandé d'utiliser une adresse IP plutôt qu'un nom
- de domaine comme argument à la directive <VirtualHost>
- (consultez <a href="../dns-caveats.html">Problèmes DNS
+ <p>Il est recommandé d'utiliser une adresse IP plutôt qu'un nom
+ de domaine comme argument à la directive <VirtualHost>
+ (consultez <a href="../dns-caveats.html">Problèmes DNS
avec Apache</a>).</p>
<p>Presque <strong>toutes</strong> les directives de configuration
- peuvent être employées dans une directive VirtualHost, à l'exception
- des directives qui contrôlent la création du processus et de
- quelques autres. Pour connaître celles utilisables dans une
- directive VirtualHost, vérifiez leur
+ peuvent être employées dans une directive VirtualHost, à l'exception
+ des directives qui contrôlent la création du processus et de
+ quelques autres. Pour connaître celles utilisables dans une
+ directive VirtualHost, vérifiez leur
<a href="../mod/directive-dict.html#Context">Contexte</a> en utilisant
l'<a href="../mod/directives.html">Index des directives</a>.</p>
<!--
<p>Les directives <directive module="mpm_common">User</directive> et
- <directive module="mpm_common">Group</directive> NE doivent PLUS être
- utilisées à l'intérieur d'une directive VirtualHost lors d'une
- <a href="../suexec.html">exécution sous suEXEC</a>. Voir la directive
- <a href="../mod/mod_suexec.html/#suexecusergroup">SuexecUserGroup</a> définie
+ <directive module="mpm_common">Group</directive> NE doivent PLUS être
+ utilisées à l'intérieur d'une directive VirtualHost lors d'une
+ <a href="../suexec.html">exécution sous suEXEC</a>. Voir la directive
+ <a href="../mod/mod_suexec.html/#suexecusergroup">SuexecUserGroup</a> définie
en remplacement depuis la version 2.0.</p>
-->
- <p><directive module="mod_suexec">SuexecUserGroup</directive> peut être
- utilisées à l'intérieur d'une directive VirtualHost si l'exécution se fait
+ <p><directive module="mod_suexec">SuexecUserGroup</directive> peut être
+ utilisées à l'intérieur d'une directive VirtualHost si l'exécution se fait
sous suEXEC. (Voir <a href="../suexec.html">suEXEC</a>).</p>
- <p><em>SÉCURITÉ :</em> lorsque vous spécifiez où écrire les
+ <p><em>SÉCURITÉ :</em> lorsque vous spécifiez où écrire les
fichiers journaux, soyez attentif aux risques si quelqu'un d'autre
- que celui qui a démarré Apache dispose des droits d'écriture
+ que celui qui a démarré Apache dispose des droits d'écriture
sur l'emplacement de ces fichiers. Consultez les
- <a href="../misc/security_tips.html">Conseils sur la sécurité</a>
- pour plus de détails.</p>
+ <a href="../misc/security_tips.html">Conseils sur la sécurité</a>
+ pour plus de détails.</p>
</section>
</manualpage>
-<?xml version="1.0" encoding="ISO-8859-1" ?>
+<?xml version="1.0" ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1719576 -->
-<?xml version='1.0' encoding='ISO-8859-1' ?>
+<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1673945 -->
<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>
<seealso><a href="ip-based.html">Support Apache des serveurs virtuels par IP</a></seealso>
-<seealso><a href="details.html">Détails sur le fonctionnement des serveurs virtuels</a></seealso>
-<seealso><a href="mass.html">Configuration dynamique des hébergements virtuels de masse</a></seealso>
+<seealso><a href="details.html">Détails sur le fonctionnement des serveurs virtuels</a></seealso>
+<seealso><a href="mass.html">Configuration dynamique des hébergements virtuels de masse</a></seealso>
<seealso><a href="examples.html">Exemples d'utilisations de VirtualHost</a></seealso>
<section id="namevip"><title>Serveurs virtuels par nom vs. par IP</title>
<p>Les <a href="ip-based.html">serveurs virtuels</a> 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.</p>
+ 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.</p>
- <p>Avec un hébergement
+ <p>Avec un hébergement
virtuel par nom, le serveur s'appuie 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>
+ 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,
+ <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, sauf dans le cas où vous utiliseriez des équipements qui
- nécessitent un hébergement basé sur IP. Les raisons historiques de
- l'hébergement basé sur IP dans un but de support de certains clients ne
- s'appliquent plus à un serveur web d'usage général.</p>
-
- <p>La sélection du serveur virtuel en fonction du nom s'opère en
- dehors de l'algorithme de sélection du serveur virtuel en fonction
+ ces domaines. Il réduit aussi la pénurie en adresses IP. Par
+ conséquent, vous devriez utiliser l'hébergement virtuel par
+ nom, sauf dans le cas où vous utiliseriez des équipements qui
+ nécessitent un hébergement basé sur IP. Les raisons historiques de
+ l'hébergement basé sur IP dans un but de support de certains clients ne
+ s'appliquent plus à un serveur web d'usage général.</p>
+
+ <p>La sélection du serveur virtuel en fonction du nom s'opère en
+ dehors de l'algorithme de sélection du serveur virtuel en fonction
de l'adresse IP, ce qui signifie que les recherches du point de vue
du nom du serveur ne s'effectuent que parmi le jeu de serveurs
virtuels pour lesquels la correspondance avec la paire adresse
</section>
-<section id="alg"><title>Comment le serveur sélectionne-t-il le serveur
-virtuel basé sur le nom approprié</title>
+<section id="alg"><title>Comment le serveur sélectionne-t-il le serveur
+virtuel basé sur le nom approprié</title>
- <p>Il est important de savoir que la première étape de la résolution
- de serveur virtuel basée sur le nom est une résolution basée sur IP.
- La résolution de serveur virtuel basée sur le nom ne fait que
- choisir le serveur virtuel basé sur le nom le plus approprié, en se
+ <p>Il est important de savoir que la première étape de la résolution
+ de serveur virtuel basée sur le nom est une résolution basée sur IP.
+ La résolution de serveur virtuel basée sur le nom ne fait que
+ choisir le serveur virtuel basé sur le nom le plus approprié, en se
limitant aux candidats qui conviennent le mieux du point de vue IP.
- La résolution basée sur IP est sans objet si l'on
- utilise un caractère générique (*) pour l'adresse IP dans
+ La résolution basée sur IP est sans objet si l'on
+ utilise un caractère générique (*) pour l'adresse IP dans
toutes les directives VirtualHost.</p>
- <p>A l'arrivée d'une requête, le serveur va rechercher l'argument de
+ <p>A l'arrivée d'une requête, le serveur va rechercher l'argument de
section <directive type="section"
- module="core">VirtualHost</directive> présentant la meilleure
+ module="core">VirtualHost</directive> présentant la meilleure
(la plus exacte) correspondance avec la paire adresse IP/port
- utilisée dans la requête. Si plusieurs serveurs virtuels possèdent
- cette même paire adresse IP/port, Apache va ensuite comparer les
+ utilisée dans la requête. Si plusieurs serveurs virtuels possèdent
+ cette même paire adresse IP/port, Apache va ensuite comparer les
valeurs des directives <directive module="core"
>ServerName</directive> et <directive
>module="core">ServerAlias</directive> avec le nom de serveur
- présent dans la requête.</p>
+ présent dans la requête.</p>
- <p>Si vous ne définissez pas de directive <directive
- module="core">ServerName</directive> pour un serveur virtuel à base
- de nom, le serveur utilisera par défaut le nom de domaine
- entièrement qualifié (FQDN) déduit du nom d'hôte système. Cette
- configuration sans nom de serveur explicite peut conduire à des
- erreurs de choix du serveur virtuel à utiliser et est déconseillée.</p>
+ <p>Si vous ne définissez pas de directive <directive
+ module="core">ServerName</directive> pour un serveur virtuel à base
+ de nom, le serveur utilisera par défaut le nom de domaine
+ entièrement qualifié (FQDN) déduit du nom d'hôte système. Cette
+ configuration sans nom de serveur explicite peut conduire à des
+ erreurs de choix du serveur virtuel à utiliser et est déconseillée.</p>
- <section id="defaultvhost"><title>Le serveur virtuel à base de nom
- par défaut pour une paire adresse IP/port</title>
+ <section id="defaultvhost"><title>Le serveur virtuel à base de nom
+ par défaut pour une paire adresse IP/port</title>
<p>Si aucune directive ServerName ou ServerAlias ne correspond dans
- la liste de serveurs virtuels présentant la meilleure correspondance
+ la liste de serveurs virtuels présentant la meilleure correspondance
du point de vue adresse IP/port, c'est <strong>le premier serveur
- virtuel de cette liste</strong> qui sera utilisé.</p></section>
+ virtuel de cette liste</strong> qui sera utilisé.</p></section>
</section>
</related>
- <p>La première étape consiste à créer une section
+ <p>La première étape consiste à créer une section
<directive type="section" module="core">VirtualHost</directive>
- pour chacun des serveurs à définir. Dans chaque section
+ pour chacun des serveurs à définir. Dans chaque section
<directive type="section" module="core">VirtualHost</directive>,
- vous devez définir au minimum une directive
- <directive module="core">ServerName</directive> pour désigner
- 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>Toute requête qui ne correspond à aucune section <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>Toute requête qui ne correspond à aucune section <directive
type="section" module="core">VirtualHost</directive> existante
- est traitée avec la configuration du serveur principal, sans
- tenir compte du nom d'hôte ou de la directive ServerName.</p>
-
- <p>Lorsque vous ajoutez un serveur virtuel basé sur le nom à un
- serveur existant, et si les caractéristiques de ce serveur
- virtuel correspondent à des combinaisons IP/port préexistantes,
- les requêtes seront alors traitées par un serveur virtuel
- explicite. Dans ce cas, il est en général judicieux de créer un
- <a href="#defaultvhost">serveur virtuel par défaut</a>
+ est traitée avec la configuration du serveur principal, sans
+ tenir compte du nom d'hôte ou de la directive ServerName.</p>
+
+ <p>Lorsque vous ajoutez un serveur virtuel basé sur le nom à un
+ serveur existant, et si les caractéristiques de ce serveur
+ virtuel correspondent à des combinaisons IP/port préexistantes,
+ les requêtes seront alors traitées par un serveur virtuel
+ explicite. Dans ce cas, il est en général judicieux de créer un
+ <a href="#defaultvhost">serveur virtuel par défaut</a>
comportant une directive <directive
module="core">ServerName</directive> correspondant au nom du
- serveur principal. De nouveaux domaines sur les mêmes interface
- et port, mais nécessitant des configurations distinctes,
- pourront alors être ajoutés en tant que serveurs virtuels
- spécifiques (et non par défaut).</p>
+ serveur principal. De nouveaux domaines sur les mêmes interface
+ et port, mais nécessitant des configurations distinctes,
+ pourront alors être ajoutés en tant que serveurs virtuels
+ spécifiques (et non par défaut).</p>
</note>
- <note><title>Héritage du nom de serveur</title>
- <p>Il est toujours préférable de définir une directive <directive
+ <note><title>Héritage du nom de serveur</title>
+ <p>Il est toujours préférable de définir une directive <directive
module="core">ServerName</directive> au niveau de chaque serveur
- virtuel à base de nom. Si un serveur virtuel ne définit pas
+ virtuel à base de nom. Si un serveur virtuel ne définit pas
de directive <directive module="core">ServerName</directive>, le
- nom de ce serveur virtuel sera hérité du serveur principal. Si
- aucun nom de serveur n'a été explicitement défini au niveau du
- serveur principal, le serveur tentera de déterminer son nom via
- une résolution de nom DNS inverse sur la première adresse
- d'écoute. Dans tous les cas, ce nom de serveur hérité influencera
- la sélection du serveur virtuel à base de nom, c'est pourquoi il
- est toujours préférable de définir une directive <directive
+ nom de ce serveur virtuel sera hérité du serveur principal. Si
+ aucun nom de serveur n'a été explicitement défini au niveau du
+ serveur principal, le serveur tentera de déterminer son nom via
+ une résolution de nom DNS inverse sur la première adresse
+ d'écoute. Dans tous les cas, ce nom de serveur hérité influencera
+ la sélection du serveur virtuel à base de nom, c'est pourquoi il
+ est toujours préférable de définir une directive <directive
module="core">ServerName</directive> pour chaque serveur virtuel
- à base de nom.</p>
+ à base de nom.</p>
</note>
- <p>Par exemple, supposez que vous hébergez le domaine
+ <p>Par exemple, supposez que vous hébergez le domaine
<code>www.example.com</code> et que vous souhaitez ajouter le
serveur virtuel <code>other.example.com</code> qui pointe sur
- la même adresse IP. Il vous suffit d'ajouter la configuration
- suivante à <code>httpd.conf</code> :</p>
+ la même adresse IP. Il vous suffit d'ajouter la configuration
+ suivante à <code>httpd.conf</code> :</p>
<highlight language="config">
<VirtualHost *:80>
# Le premier serveur virtuel de la liste est aussi le
- # serveur par défaut pour *:80
+ # serveur par défaut pour *:80
ServerName www.example.com
ServerAlias example.com
DocumentRoot "/www/domain"
</VirtualHost>
</highlight>
- <p>Autrement, vous pouvez spécifiez une adresse IP explicite
- à la place de <code>*</code> dans la directive
+ <p>Autrement, vous pouvez spécifiez une adresse IP explicite
+ à la place de <code>*</code> dans la directive
<directive type="section" module="core" >VirtualHost</directive>.
- Par exemple, cette méthode est utile si vous souhaitez faire
- tourner quelques serveurs virtuels par nom sur une même adresse
- IP, et d'autres, soit par IP, soit basés sur un autre jeu de
+ 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
+ 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>
+ indique aux utilisateurs les autres noms permis pour accéder au
+ même site Web :</p>
<highlight language="config">
ServerAlias example.com *.example.com
</highlight>
- <p>ainsi, toutes les requêtes portant sur un domaine
+ <p>ainsi, toutes les requêtes portant sur un domaine
<code>example.com</code> seront servies par le serveur virtuel
- <code>www.example.com</code>. Les caractères joker <code>*</code>
- et <code>?</code> peuvent être utilisés pour les correspondances.
+ <code>www.example.com</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>
+ doit être correctement configuré pour lier ces noms à une
+ adresse IP associée avec votre serveur.</p>
- <p>La recherche du serveur virtuel à base de nom qui correspond au
- plus près à la requête s'effectue parmi les <directive
+ <p>La recherche du serveur virtuel à base de nom qui correspond au
+ plus près à la requête s'effectue parmi les <directive
type="section" module="core">virtualhost</directive> selon leur
ordre d'apparition dans le fichier de configuration. Le premier
serveur virtuel dont le <directive
module="core">ServerName</directive> ou le <directive
- module="core">ServerAlias</directive> correspond est utilisé, sans
- priorité particulière en cas de présence de caractères génériques
+ module="core">ServerAlias</directive> correspond est utilisé, sans
+ priorité particulière en cas de présence de caractères génériques
(que ce soit pour le ServerName ou le ServerAlias).</p>
- <p>La liste complète des noms dans la section <directive
- module="core">VirtualHost</directive> sont traités comme une
+ <p>La liste complète des noms dans la section <directive
+ module="core">VirtualHost</directive> sont traités comme une
directive <directive module="core">ServerAlias</directive> sans
- caractères génériques.</p>
+ caractères génériques.</p>
<p>Finalement, vous pouvez affiner la configuration des serveurs
- virtuels en plaçant d'autres directives à l'intérieur des sections
+ 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,
+ 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
+ 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
+ sera utilisé seulement s'il n'y a pas de configuration contraire
par un serveur virtuel.</p>
</section>