File: details.html.fr

package info (click to toggle)
apache2 2.4.10-10%2Bdeb8u12
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 53,768 kB
  • sloc: ansic: 156,128; sh: 12,961; perl: 1,760; awk: 738; makefile: 577; lex: 374; yacc: 161
file content (367 lines) | stat: -rw-r--r-- 20,942 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Dtails sur le fonctionnement des serveurs virtuels - Serveur Apache HTTP Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.4</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Serveurs virtuels</a></div><div id="page-content"><div id="preamble"><h1>Dtails sur le fonctionnement des serveurs virtuels</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/vhosts/details.html" title="Franais">&nbsp;fr&nbsp;</a> |
<a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="Trke">&nbsp;tr&nbsp;</a></p>
</div>


    <p>Ce document vise  expliquer dans le dtail comment le serveur
    HTTP Apache procde lors du choix de l'utilisation
    d'un serveur virtuel en fonction d'une requte reue.</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 dterminer quel type de serveur virtuel nous
    convient le mieux, puis de lire les documentations <a href="name-based.html">serveurs virtuels  base de nom</a> ou <a href="ip-based.html">serveurs virtuels  base d'adresse IP</a>, et enfin
    d'tudier <a href="examples.html">quelques exemples</a>.</p>

    <p>Si vous voulez entrer dans les dtails, vous pouvez revenir vers
    cette page.</p>

</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#configparsing">Fichier de configuration</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#hostmatching">Choix du serveur virtuel</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#tips">Trucs et astuces</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="ip-based.html">Support des serveurs virtuels  base
d'adresse IP</a></li><li><a href="name-based.html">Support des serveurs virtuels  base
de nom</a></li><li><a href="examples.html">Exemples de serveurs virtuels pour une
configuration courante</a></li><li><a href="mass.html">Hbergement virtuel de masse configur
dynamiquement</a></li></ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="configparsing" id="configparsing">Fichier de configuration</a></h2>

    <p>Un <em>serveur  principal (main_server)</em> contient toutes
    les dfinitions qui apparaissent en dehors des sections
    <code>&lt;VirtualHost&gt;</code>.</p>

    <p>Les serveurs virtuels, aussi
    appels <em>vhosts</em> (pour virtual hosts), sont dfinis par les
    sections <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>.</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'htes dans la dfinition
    d'un serveur virtuel, mais ils seront rsolus en adresses IP au
    dmarrage du serveur, et si une rsolution de nom choue, cette
    dfinition de serveur virtuel sera ignore. Cette mthode est par
    consquent dconseille.</p>

    <p>L'adresse peut
    tre spcifie sous la forme <code>*</code>, ce qui conviendra  la
    requte si aucun autre serveur virtuel ne possde l'adresse IP
    explicite correspondant  celle de la requte.</p>

    <p>L'adresse qui apparat dans la directive <code>VirtualHost</code>
    peut tre associe  un port optionnel. Si aucun port n'est
    spcifi, il s'agit d'un port gnrique qui peut aussi tre spcifi
    comme <code>*</code>. Le port gnrique correspond  toutes les
    valeurs de port.</p>

    <p>(Il ne faut pas confondre les numros de port sur lesquels Apache
    est en coute avec les numros de port spcifis dans la directive
    <code>VirtualHost</code> ; ces derniers ne servent qu' dfinir le
    <code>serveur virtuel</code> qui sera slectionn pour traiter la
    requte. Pour dfinir les ports sur lesquels Apache est en coute,
    utilisez la directive <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>).
    </p>

    <p>L'ensemble des adresses (y compris les rsultats multiples
    <code>A</code> issus des requtes DNS) est appel <em>jeu
    d'adresses</em> du serveur virtuel.</p>

    <p>Apache fait automatiquement sa slection  partir de l'en-tte
    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 <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> peut
    apparatre en quelque endroit de la dfinition d'un serveur.
    Cependant, chaque occurrence crase la prcdente (pour ce serveur).
    Si aucune directive <code>ServerName</code> n'est spcifie, le
    serveur tente de dterminer 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 donne est
    significatif car c'est lui qui sera utilis pour toutes les requtes
    reues sur cette adresse IP/port et pour laquelle aucun autre
    serveur virtuel ne possde un ServerName ou un ServerAlias
    correspondant. Il sera aussi utilis pour toutes les connexions SSL
    si le serveur ne supporte pas l'<a class="glossarylink" href="../glossary.html#servernameindication" title="voir glossaire">Indication du nom du serveur</a>.</p>

    <p>Tous les noms spcifis au sein d'une section
    <code>VirtualHost</code> sont traits comme un
    <code>ServerAlias</code> (sans caractres gnriques), mais ne sont
    crass par aucune directive <code>ServerAlias</code>.</p>

    <p>Pour chaque serveur virtuel, diverses valeurs sont initialises
    par dfaut. En particulier&nbsp;:</p>

    <ol>
      <li>Dans le cas o un serveur virtuel ne contient pas de directives
      <code class="directive"><a href="../mod/core.html#serveradmin">ServerAdmin</a></code>,
      <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code>,
      <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code>,
      <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code>,
      <code class="directive"><a href="../mod/core.html#maxkeepaliverequests">MaxKeepAliveRequests</a></code>,
      <code class="directive"><a href="../mod/mpm_common.html#receivebuffersize">ReceiveBufferSize</a></code>,
      ou <code class="directive"><a href="../mod/mpm_common.html#sendbuffersize">SendBufferSize</a></code>,
      alors la valeur de chacun de ces paramtres est hrite de celle du
      serveur principal. (C'est  dire, hrite de la valeur finale aprs
      lecture de la configuration du serveur principal.)</li>

      <li>Les permissions par dfaut sur les rpertoires de chaque
      serveur virtuel sont assembles avec celles du serveur principal.
      Elles concernent galement toutes les informations de configuration
      par rpertoire pour tous les modules.</li>

      <li>Les configurations par serveur pour chaque module sont assembles
       partir de celles du serveur principal.</li>
    </ol>

    <p>L'essentiel des valeurs de configuration des serveurs virtuels
    provient de valeurs par dfaut 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
    dfaut soient appliques aux serveur virtuels. Ainsi, mme si la
    dfinition d'une valeur apparat aprs 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
    <code class="program"><a href="../programs/httpd.html">httpd</a></code> est utilis  sa place. Nous appellerons
    <em>jeu d'adresses du serveur principal</em> les adresses IP
    renvoyes par une rsolution DNS sur le <code>ServerName</code>
    du serveur principal.</p>

    <p>Pour tous les champs <code>ServerName</code> non dfinis, dans
    le cas d'une configuration en serveur virtuel par nom, la valeur
    adopte par dfaut est la premire adresse donne dans la section
    <code>VirtualHost</code> qui dfinit le serveur virtuel.</p>

    <p>Si un serveur virtuel contient la valeur magique
    <code>_default_</code>, il fonctionne sur le mme <code>ServerName</code>
    que le serveur principal.</p>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="hostmatching" id="hostmatching">Choix du serveur virtuel</a></h2>

    <p> la rception d'une requte, le serveur procde comme suit pour
    dterminer quel serveur virtuel utiliser&nbsp;:</p>

    <h3><a name="hashtable" id="hashtable">Recherche de l'adresse IP</a></h3>

    <p>Lors d'une premire connexion sur une adresse/port, le serveur
    recherche toutes les directives <code>VirtualHost</code> qui
    possdent la mme adresse IP/port.</p>

    <p>S'il n'y a aucune correspondance exacte pour cette adresse/port,
    la recherche s'effectue sur la valeur gnrique (<code>*</code>).</p>

    <p>Si aucune correspondance n'est enfin trouve, la requte sera
    servie par le serveur principal.</p>

    <p>S'il existe des dfinitions <code>VirtualHost</code> pour
    l'adresse IP, l'tape suivante consiste  dterminer si nous avons 
    faire  un serveur virtuel  base de nom ou d'adresse IP.</p>

    

    <h3><a name="ipbased" id="ipbased">Serveur virtuel par IP</a></h3>

    <p>Si une seule section <code>VirtualHost</code> prsente la
    meilleure correspondance avec la paire adresse IP/port, aucune
    action n'est entreprise et la requte est
    traite par le serveur virtuel qui correspond.</p>

    

    <h3><a name="namebased" id="namebased">Serveur virtuel par nom</a></h3>

    <p>Si plusieurs sections <code>VirtualHost</code> prsentent la
    meilleure correspondance avec la paire adresse IP/port, le terme
    "liste" dans les tapes suivantes fait rfrence  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'<a class="glossarylink" href="../glossary.html#servernameindication" title="voir glossaire">Indication de nom de serveur</a>,
    et si la ngociation du client SSL inclut l'extension TLS dans le
    nom d'hte requis, alors ce nom d'hte sera utilis par la suite, tout
    comme un en-tte <code>Host:</code> aurait t utilis dans le cas
    d'une connexion non-SSL. Si ces conditions ne sont pas runies, 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 dtermine quel certificat le serveur va utiliser
    pour la connexion.</p>

    <p>Si la requte contient un en-tte <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 requte. Un en-tte
    <code>Host:</code> peut comporter un numro de port mais Apache
    l'ignore systmatiquement et utilise toujours le
    port sur lequel il a effectivement reu la requte.</p>

    <p>Le premier serveur virtuel du fichier de configuration qui
    possde l'adresse spcifie est prioritaire et intercepte toutes les
    requtes  destination d'un nom de serveur inconnu, ou toute requte
    sans en-tte <code>Host:</code> (comme les requtes HTTP/1.0).</p>

    

    <h3><a name="persistent" id="persistent">Connexions persistantes</a></h3>

    <p>La <em>recherche par adresse IP</em> dcrite ci-avant n'est faite
    qu'<em>une fois</em> pour chaque session TCP/IP, alors que la
    <em>recherche par nom</em> est ralise pour <em>chaque</em> requte au
    cours d'une connexion persistante (KeepAlive). En d'autres termes,
    il est possible pour un client de faire des requtes sur
    diffrents serveurs virtuels par nom, au cours d'une unique
    connexion persistante.</p>

    

    <h3><a name="absoluteURI" id="absoluteURI">URI absolu</a></h3>

    <p>Au cas o l'URI de la requte est absolu, et que son nom de
    serveur et son port correspondent au serveur principal (ou l'un
    des serveurs virtuels configurs), <em>et</em> qu'ils correspondent
     l'adresse et au port de la requte, alors l'URI est amput
    de son prfixe 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 requte est considre
    comme une requte d'un serveur mandataire (proxy).</p>


<h3><a name="observations" id="observations">Observations</a></h3>

    <ul>
      <li>La slection d'un serveur virtuel en fonction de son nom est
      un processus qui intervient aprs la slection 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 caractre "*" comme adresse
      pour tous les serveurs virtuels, et la slection du serveur
      virtuel en fonction du nom s'appliquera alors  tous les serveurs
      virtuels dfinis.</li>

      <li>Les vrifications sur <code>ServerName</code> et
      <code>ServerAlias</code> ne sont jamais
      ralises pour les serveurs virtuels par IP.</li>

      <li>Seul l'ordre des serveurs virtuels par nom
      pour une adresse donne a une importance. Le serveur virtuel
      par nom qui est prsent en premier dans la configuration se
      voit attribu la priorit la plus haute pour les requtes
      arrivant sur son jeu d'adresses IP.</li>

      <li>Le numro de port contenu dans l'en-tte <code>Host:</code> n'est jamais utilis
      pour les tests de correspondances. Apache ne prend en compte
      que le numro de port sur lequel le client a envoy la requte.</li>

      <li>Si deux serveurs virtuels partagent la mme adresse, la
      slection 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 requtes que
      lorsque l'adresse IP et le port demands 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 spcifies (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 dmarrage. De plus, vous vous exposez
       des problmes de scurit si vous n'avez pas la matrise du
      DNS pour la totalit de vos domaines. Voir la documentation
      <a href="../dns-caveats.html">disponible ici</a>, ainsi que
      les deux points prciss ci-aprs.</li>

      <li>Un nom de serveur <code>ServerName</code> devrait toujours
      tre indiqu pour chaque serveur virtuel. Sans cela, une
      rsolution DNS est ncessaire pour chaque serveur virtuel.</li>
      </ul>
      

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="tips" id="tips">Trucs et astuces</a></h2>

    <p>En plus des points voqus sur la page des
    <a href="../dns-caveats.html#tips">problmes lis au DNS</a>,
    voici quelques points intressants&nbsp;:</p>

    <ul>
      <li>Toujours positionner les dfinitions relatives au serveur
      principal avant toute dfinition <code>VirtualHost</code>.
      (Ceci amliore grandement la lisibilit de la configuration
      -- la manire dont la configuration est interprte aprs la
      lecture des fichiers ne met pas en vidence le fait que les
      dfinitions positionnes avant et surtout aprs les serveurs
      virtuels peuvent impacter le fonctionnement de tous les
      serveurs virtuels.)</li>

   </ul>

</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/vhosts/details.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/vhosts/details.html" title="Franais">&nbsp;fr&nbsp;</a> |
<a href="../ko/vhosts/details.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/details.html" hreflang="tr" rel="alternate" title="Trke">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/vhosts/details.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autoris sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>