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
|
<?xml version='1.0' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- English Revision: 1784325 -->
<!-- French translation by alain B, review by Vincent Deffontaines -->
<!-- Updated by Lucien Gentis -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="ip-based.xml.meta">
<parentdocument href="./">Serveurs virtuels</parentdocument>
<title>Support Apache des serveurs virtuels par IP</title>
<seealso>
<a href="name-based.html">Support Apache des serveurs virtuels par nom</a>
</seealso>
<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
IP" et la commande "ifconfig" pour les activer), et/ou utiliser
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>
</section>
<section id="howto"><title>Comment configurer Apache</title>
<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>
<p>Utilisez des processus résidents multiples lorsque :</p>
<ul>
<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>,
<directive module="mod_unixd">Group</directive>,
<directive module="mpm_common">Listen</directive>, et
<directive module="core">ServerRoot</directive> différents.</li>
<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
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
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,
et un autre pour l'adresse restante).</li>
</ul>
<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
les performances.</li>
</ul>
</section>
<section id="multiple"><title>Configuration de processus multiples</title>
<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>
<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
avec Apache</a>).</p>
</section>
<section id="single"><title>Configuration d'un unique processus
résident pour des serveurs virtuels</title>
<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">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>
<highlight language="config">
<VirtualHost 172.20.30.40:80>
ServerAdmin webmaster@www1.example.com
DocumentRoot "/www/vhosts/www1"
ServerName www1.example.com
ErrorLog "/www/logs/www1/error_log"
CustomLog "/www/logs/www1/access_log" combined
</VirtualHost>
<VirtualHost 172.20.30.50:80>
ServerAdmin "webmaster@www2.example.org"
DocumentRoot "/www/vhosts/www2"
ServerName www2.example.org
ErrorLog "/www/logs/www2/error_log"
CustomLog "/www/logs/www2/access_log" combined
</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
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
<a href="../mod/directive-dict.html#Context">Contexte</a> en utilisant
l'<a href="../mod/quickreference.html">directive index</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
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
sous suEXEC. (Voir <a href="../suexec.html">suEXEC</a>).</p>
<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
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>
</section>
</manualpage>
|