]> granicus.if.org Git - apache/blob - docs/manual/vhosts/name-based.xml.fr
Xforms
[apache] / docs / manual / vhosts / name-based.xml.fr
1 <?xml version='1.0' ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1673945 -->
5 <!-- French translation by alain B, review by Vincent Deffontaines
6         updated by Lucien GENTIS -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <manualpage metafile="name-based.xml.meta">
26 <parentdocument href="./">Serveurs virtuels</parentdocument>
27 <title>Support Apache des serveurs virtuels par nom</title>
28
29 <summary>
30     <p>Ce document décrit quand et comment utiliser des serveurs
31     virtuels par nom.</p>
32 </summary>
33
34 <seealso><a href="ip-based.html">Support Apache des serveurs virtuels par IP</a></seealso>
35 <seealso><a href="details.html">Détails sur le fonctionnement des serveurs virtuels</a></seealso>
36 <seealso><a href="mass.html">Configuration dynamique des hébergements virtuels de masse</a></seealso>
37 <seealso><a href="examples.html">Exemples d'utilisations de VirtualHost</a></seealso>
38
39 <section id="namevip"><title>Serveurs virtuels par nom vs. par IP</title>
40
41     <p>Les <a href="ip-based.html">serveurs virtuels</a> par IP utilisent l'adresse IP
42     de la connexion afin de déterminer quel serveur virtuel doit
43     répondre. Par conséquent, vous devez disposer d'adresses IP
44     différentes pour chaque serveur.</p>
45
46     <p>Avec un hébergement
47     virtuel par nom, le serveur s'appuie sur les informations
48     transmises par le client dans les en-têtes HTTP de ses requêtes.
49     La technique présentée ici vous permet de disposer de serveurs
50     virtuels différents partagés sur une même adresse IP.</p>
51
52     <p>L'hébergement virtuel par nom est habituellement plus simple,
53     car il vous suffit de configurer votre serveur DNS pour que
54     chaque domaine pointe sur l'adresse IP dont vous disposez, et de
55     configurer votre serveur Apache HTTP afin qu'il reconnaisse
56     ces domaines. Il réduit aussi la pénurie en adresses IP. Par
57     conséquent, vous devriez utiliser l'hébergement virtuel par
58     nom, sauf dans le cas où vous utiliseriez des équipements qui
59     nécessitent un hébergement basé sur IP. Les raisons historiques de
60     l'hébergement basé sur IP dans un but de support de certains clients ne
61     s'appliquent plus à un serveur web d'usage général.</p>
62
63     <p>La sélection du serveur virtuel en fonction du nom s'opère en
64     dehors de l'algorithme de sélection du serveur virtuel en fonction
65     de l'adresse IP, ce qui signifie que les recherches du point de vue
66     du nom du serveur ne s'effectuent que parmi le jeu de serveurs
67     virtuels pour lesquels la correspondance avec la paire adresse
68     IP/port est la plus exacte.</p>
69
70 </section>
71
72 <section id="alg"><title>Comment le serveur sélectionne-t-il le serveur
73 virtuel basé sur le nom approprié</title>
74
75     <p>Il est important de savoir que la première étape de la résolution
76     de serveur virtuel basée sur le nom est une résolution basée sur IP.
77     La résolution de serveur virtuel basée sur le nom ne fait que
78     choisir le serveur virtuel basé sur le nom le plus approprié, en se
79     limitant aux candidats qui conviennent le mieux du point de vue IP.
80     La résolution basée sur IP est sans objet si l'on
81     utilise un caractère générique (*) pour l'adresse IP dans
82     toutes les directives VirtualHost.</p>
83
84     <p>A l'arrivée d'une requête, le serveur va rechercher l'argument de
85     section <directive type="section"
86     module="core">VirtualHost</directive> présentant la meilleure
87     (la plus exacte) correspondance avec la paire adresse IP/port
88     utilisée dans la requête. Si plusieurs serveurs virtuels possèdent
89     cette même paire adresse IP/port, Apache va ensuite comparer les
90     valeurs des directives <directive module="core"
91     >ServerName</directive> et <directive
92     module="core">ServerAlias</directive> avec le nom de serveur
93     présent dans la requête.</p>
94
95     <p>Si vous ne définissez pas de directive <directive
96     module="core">ServerName</directive> pour un serveur virtuel à base
97     de nom, le serveur utilisera par défaut le nom de domaine
98     entièrement qualifié (FQDN) déduit du nom d'hôte système. Cette
99     configuration sans nom de serveur explicite peut conduire à des
100     erreurs de choix du serveur virtuel à utiliser et est déconseillée.</p>
101
102     <section id="defaultvhost"><title>Le serveur virtuel à base de nom
103     par défaut pour une paire adresse IP/port</title>
104     <p>Si aucune directive ServerName ou ServerAlias ne correspond dans
105     la liste de serveurs virtuels présentant la meilleure correspondance
106     du point de vue adresse IP/port, c'est <strong>le premier serveur
107     virtuel de cette liste</strong> qui sera utilisé.</p></section>
108
109
110 </section>
111
112 <section id="using"><title>Utilisation de serveurs virtuels par nom</title>
113
114 <related>
115     <modulelist>
116     <module>core</module>
117     </modulelist>
118
119     <directivelist>
120         <directive module="core">DocumentRoot</directive>
121         <directive module="core">ServerAlias</directive>
122         <directive module="core">ServerName</directive>
123         <directive module="core" type="section">VirtualHost</directive>
124     </directivelist>
125 </related>
126
127
128     <p>La première étape consiste à créer une section
129     <directive type="section" module="core">VirtualHost</directive>
130     pour chacun des serveurs à définir. Dans chaque section
131     <directive type="section" module="core">VirtualHost</directive>,
132     vous devez définir au minimum une directive
133     <directive module="core">ServerName</directive> pour désigner
134     le serveur concerné et une directive
135     <directive module="core">DocumentRoot</directive> pour préciser
136     l'emplacement sur le système de fichiers du contenu de ce serveur.</p>
137
138     <note><title>Le serveur principal disparaît</title>
139         <p>Toute requête qui ne correspond à aucune section <directive
140         type="section" module="core">VirtualHost</directive> existante
141         est traitée avec la configuration du serveur principal, sans
142         tenir compte du nom d'hôte ou de la directive ServerName.</p>
143
144         <p>Lorsque vous ajoutez un serveur virtuel basé sur le nom à un
145         serveur existant, et si les caractéristiques de ce serveur
146         virtuel correspondent à des combinaisons IP/port préexistantes,
147         les requêtes seront alors traitées par un serveur virtuel
148         explicite. Dans ce cas, il est en général judicieux de créer un
149         <a href="#defaultvhost">serveur virtuel par défaut</a>
150         comportant une directive <directive
151         module="core">ServerName</directive> correspondant au nom du
152         serveur principal. De nouveaux domaines sur les mêmes interface
153         et port, mais nécessitant des configurations distinctes,
154         pourront alors être ajoutés en tant que serveurs virtuels
155         spécifiques (et non par défaut).</p>
156     </note>
157
158     <note><title>Héritage du nom de serveur</title>
159        <p>Il est toujours préférable de définir une directive <directive
160        module="core">ServerName</directive> au niveau de chaque serveur
161        virtuel à base de nom. Si un serveur virtuel ne définit pas
162        de directive  <directive module="core">ServerName</directive>, le
163        nom de ce serveur virtuel sera hérité du serveur principal. Si
164        aucun nom de serveur n'a été explicitement défini au niveau du
165        serveur principal, le serveur tentera de déterminer son nom via
166        une résolution de nom DNS inverse sur la première adresse
167        d'écoute. Dans tous les cas, ce nom de serveur hérité influencera
168        la sélection du serveur virtuel à base de nom, c'est pourquoi il
169        est toujours préférable de définir une directive <directive
170        module="core">ServerName</directive> pour chaque serveur virtuel
171        à base de nom.</p>
172     </note>
173
174     <p>Par exemple, supposez que vous hébergez le domaine
175     <code>www.example.com</code> et que vous souhaitez ajouter le
176     serveur virtuel <code>other.example.com</code> qui pointe sur
177     la même adresse IP. Il vous suffit d'ajouter la configuration
178     suivante à <code>httpd.conf</code>&nbsp;:</p>
179
180     <highlight language="config">
181 &lt;VirtualHost *:80&gt;
182     # Le premier serveur virtuel de la liste est aussi le
183     # serveur par défaut pour *:80
184     ServerName www.example.com
185     ServerAlias example.com
186     DocumentRoot "/www/domain"
187 &lt;/VirtualHost&gt;
188
189 &lt;VirtualHost *:80&gt;
190     ServerName other.example.com
191     DocumentRoot "/www/otherdomain"
192 &lt;/VirtualHost&gt;
193     </highlight>
194
195     <p>Autrement, vous pouvez spécifiez une adresse IP explicite
196     à la place de <code>*</code> dans la directive
197     <directive type="section" module="core" >VirtualHost</directive>.
198     Par exemple, cette méthode est utile si vous souhaitez faire
199     tourner quelques serveurs virtuels par nom sur une même adresse
200     IP, et d'autres, soit par IP, soit basés sur un autre jeu de
201     serveurs virtuels par nom sur une autre adresse IP.</p>
202
203     <p>Plusieurs serveurs sont accessibles par plus d'un nom. Il
204     suffit de placer la directive
205     <directive module="core">ServerAlias</directive> dans une section
206     <directive type="section" module="core">VirtualHost</directive>.
207     Par exemple, dans la première section
208     <directive type="section" module="core">VirtualHost</directive>
209     ci-dessus, la directive <directive module="core">ServerAlias</directive>
210     indique aux utilisateurs les autres noms permis pour accéder au
211     même site Web&nbsp;:</p>
212
213     <highlight language="config">
214         ServerAlias example.com *.example.com
215     </highlight>
216
217     <p>ainsi, toutes les requêtes portant sur un domaine
218     <code>example.com</code> seront servies par le serveur virtuel
219     <code>www.example.com</code>. Les caractères joker <code>*</code>
220     et <code>?</code> peuvent être utilisés pour les correspondances.
221     Bien entendu, vous ne pouvez pas inventer des noms et les placer
222     dans une directive <directive module="core">ServerName</directive>
223     ou <code>ServerAlias</code>. Tout d'abord, votre serveur DNS
224     doit être correctement configuré pour lier ces noms à une
225     adresse IP associée avec votre serveur.</p>
226
227     <p>La recherche du serveur virtuel à base de nom qui correspond au
228     plus près à la requête s'effectue parmi les <directive
229     type="section" module="core">virtualhost</directive> selon leur
230     ordre d'apparition dans le fichier de configuration. Le premier
231     serveur virtuel dont le <directive
232     module="core">ServerName</directive> ou le <directive
233     module="core">ServerAlias</directive> correspond est utilisé, sans
234     priorité particulière en cas de présence de caractères génériques
235     (que ce soit pour le ServerName ou le ServerAlias).</p>
236
237     <p>La liste complète des noms dans la section <directive
238     module="core">VirtualHost</directive> sont traités comme une
239     directive <directive module="core">ServerAlias</directive> sans
240     caractères génériques.</p>
241
242     <p>Finalement, vous pouvez affiner la configuration des serveurs
243     virtuels en plaçant d'autres directives à l'intérieur des sections
244     <directive type="section" module="core">VirtualHost</directive>.
245     La plupart des directives peut être placée dans ces sections en
246     y changeant seulement la configuration du serveur virtuel associé.
247     Pour déterminer si une directive particulière est permise,
248     consultez le <a
249     href="../mod/directive-dict.html#Context">contexte</a> de la
250     directive. Le jeu de directives configurées dans le contexte
251     du <em>serveur principal</em> (en dehors de toutes sections
252     <directive type="section" module="core">VirtualHost</directive>)
253     sera utilisé seulement s'il n'y a pas de configuration contraire
254     par un serveur virtuel.</p>
255
256 </section>
257
258 </manualpage>