]> granicus.if.org Git - apache/blob - docs/manual/vhosts/name-based.xml.de
Quote path/URL arguments to Proxy* directives.
[apache] / docs / manual / vhosts / name-based.xml.de
1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
4 <!-- English Revision: 420990:1673917 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <manualpage metafile="name-based.xml.meta">
24 <parentdocument href="./">Virtual Hosts</parentdocument>
25 <title>Unterst&uuml;tzung namensbasierter virtueller Hosts</title>
26
27 <summary>
28   <p>Das Dokument beschreibt, wann und wie namensbasierte virtuelle Hosts zu
29     verwenden sind.</p>
30 </summary>
31
32 <seealso><a href="ip-based.html">Unterst&uuml;tzung IP-basierter virtueller
33     Hosts</a></seealso>
34 <seealso><a href="details.html">Tiefergehende Er&ouml;rterung der Zuweisung
35     virtueller Hosts</a></seealso>
36 <seealso><a href="mass.html">Dynamisch konfiguriertes
37     Massen-Virtual-Hosting</a></seealso>
38 <seealso><a href="examples.html">Beispiele f&uuml;r virtuelle Hosts in typischen
39     Installationen</a></seealso>
40 <seealso><a href="examples.html#serverpath"
41     >ServerPath-Beispielkonfiguration</a></seealso>
42
43 <section id="namevip"><title>Namensbasierte gegen&uuml;ber IP-basierten
44     virtuellen Hosts</title>
45
46   <p>IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den
47     korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich 
48     ben&ouml;tigen Sie eine IP-Adresse f&uuml;r jeden virtuellen Host. Bei der 
49     Verwendung von namensbasierten virtuellen Hosts verl&auml;&szlig;t sich der 
50     Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header 
51     angibt. Durch Anwendung dieser Technik k&ouml;nnen sich mehrere verschiedene 
52     Hosts die gleiche IP-Adresse teilen.</p>
53
54   <p>Die Verwendung von namensbasierten virtuellen Hosts ist gew&ouml;hnlich 
55     einfacher. Sie m&uuml;ssen lediglich Ihren DNS-Server darauf einstellen, 
56     jeden Hostnamen auf die richtige IP-Adresse abzubilden, und dann den Apache 
57     HTTP Server so konfigurieren, dass er die verschiedenen Hostnamen erkennt.
58     Namensbasierte virtuelle Hosts entsch&auml;rfen auch den Bedarf an 
59     knappen IP-Adressen. Daher sollten Sie namensbasierte virtuelle Hosts 
60     verwenden, sofern kein besonderer Grund daf&uuml;r existiert, IP-basierte 
61     virtuelle Hosts zu w&auml;hlen. M&ouml;gliche Gr&uuml;nde f&uuml;r die 
62     Verwendung IP-basierter virtueller Hosts sind:</p>
63
64   <ul>
65     <li>Einige antike Clients sind nicht kompatibel zu namensbasierten
66       virtuellen Hosts. Damit namensbasierte virtuelle Hosts funktionieren,
67       muss der Client den HTTP-Host-Header senden. Dies ist bei HTTP/1.1
68       vorgeschrieben und in allen modernen HTTP/1.0-Browsern als Erweiterung
69       implementiert. Wenn Sie Unterst&uuml;tzung f&uuml;r veraltete Clients
70       ben&ouml;tigen und dennoch namensbasierte virtuelle Hosts verwenden,
71       dann finden Sie eine m&ouml;gliche L&ouml;sung daf&uuml;r am Ende des
72       Dokuments.</li>
73
74     <li>Namensbasierte virtuelle Hosts k&ouml;nnen aufgrund der Natur des
75       SSL-Protokolls nicht mit SSL-gesicherten Servern verwendet werden.</li>
76
77     <li>Einige Betriebssysteme und Netzwerkanlagen setzen Techniken zum 
78       Bandbreiten-Management ein, die nicht zwischen Hosts unterscheiden
79       k&ouml;nnen, wenn diese nicht auf verschiedenen IP-Adressen liegen.</li>
80     </ul>
81
82 </section>
83
84 <section id="using"><title>Die Verwendung von namensbasierten virtuellen Hosts</title>
85
86   <related>
87     <modulelist>
88       <module>core</module>
89     </modulelist>
90
91     <directivelist>
92       <directive module="core">DocumentRoot</directive>
93       <directive module="core">NameVirtualHost</directive>
94       <directive module="core">ServerAlias</directive>
95       <directive module="core">ServerName</directive>
96       <directive module="core">ServerPath</directive>
97       <directive module="core" type="section">VirtualHost</directive>
98     </directivelist>
99   </related>
100
101   <p>Um namensbasierte virtuelle Hosts zu verwenden, m&uuml;ssen Sie die
102     IP-Adresse (und m&ouml;glicherweise den Port) des Servers benennen, an
103     der Anfragen f&uuml;r die Hosts entgegengenommen werden. Dies wird mit
104     der Direktive <directive module="core">NameVirtualHost</directive>
105     eingestellt. Im Normalfall, wenn alle IP-Adressen des Server verwendet
106     werden sollen, k&ouml;nnen Sie <code>*</code> als Argument f&uuml;r
107     <directive module="core">NameVirtualHost</directive> verwenden. Wenn Sie
108     vorhaben, mehrere Ports zu nutzen (etwa wenn SSL l&auml;uft), sollten
109     Sie dem Argument einen Port hinzuf&uuml;gen, wie zum Beispiel
110     <code>*:80</code>. Beachten Sie,
111     dass die Angabe einer IP-Adresse in einer <directive
112     module="core">NameVirtualHost</directive>-Anweisung den Server nicht
113     automatisch an dieser Adresse lauschen l&auml;&szlig;t. Lesen Sie bitte "<a
114     href="../bind.html">Bestimmen der vom Apache verwendeten Adressen und
115     Ports</a>" f&uuml;r weitere Details. Zus&auml;tzlich muss jede hier
116     angegebene IP-Adresse einer Netzwerkkarte des Servers zugeordnet sein.</p>
117  
118   <p>Der n&auml;chste Schritt ist die Erstellung eines <directive type="section"
119     module="core">VirtualHost</directive>-Blocks f&uuml;r jeden einzelnen
120     Host, den Sie bedienen wollen. Das Argument der Direktive <directive
121     type="section" module="core">VirtualHost</directive> sollte das gleiche
122     sein wie das Argument der <directive
123     module="core">NameVirtualHost</directive>-Anweisung (d.h. eine IP-Adresse
124     oder <code>*</code> f&uuml;r alle Adressen). Innerhalb jedes <directive
125     type="section"  module="core">VirtualHost</directive>-Blocks ben&ouml;tigen
126     Sie zumindestens eine <directive
127     module="core">ServerName</directive>-Anweisung, um zu bestimmen, welcher
128     Host bedient wird, und eine <directive
129     module="core">DocumentRoot</directive>-Anweisung, um anzugeben, wo im
130     Dateisystem der Inhalt des Hosts abgelegt ist.</p>
131
132   <note><title>Der Hauptserver verschwindet</title>
133     Wenn Sie virtuelle Hosts zu einem bestehenden Webserver hinzuf&uuml;gen,
134     m&uuml;ssen Sie auch einen <directive type="section"    
135     module="core">VirtualHost</directive>-Block f&uuml;r den bestehenden Host
136     <transnote>und bisherigen Hauptserver</transnote> erstellen. 
137     Die <directive module="core">ServerName</directive>- und
138     <directive module="core">DocumentRoot</directive>-Anweisungen zu diesem
139     virtuellen Host sollten die gleichen sein wie die globalen <directive 
140     module="core">ServerName</directive>- und <directive 
141     module="core">DocumentRoot</directive>-Anweisungen. F&uuml;hren Sie diesen
142     virtuellen Host als erstes in der Konfigurationsdatei auf, so dass er als
143     Standard-Host fungiert.
144   </note>
145
146   <p>Vorausgesetzt, Sie bedienen z.B. die Domain
147     <code>www.domain.tld</code> und m&ouml;chten den virtuellen Host
148     <code>www.otherdomain.tld</code> hinzuf&uuml;gen, welcher auf
149     die gleiche IP-Adresse zeigt. Dann f&uuml;gen Sie einfach Folgendes der
150     <code>httpd.conf</code> hinzu:</p>
151
152     <example>
153     NameVirtualHost *:80<br />
154     <br />
155     &lt;VirtualHost *:80&gt;<br />
156     <indent>
157     ServerName www.domain.tld<br />
158     ServerAlias domain.tld *.domain.tld<br />
159     DocumentRoot /www/domain<br />
160     </indent>
161     &lt;/VirtualHost&gt;<br />
162     <br />
163     &lt;VirtualHost *:80&gt;<br />
164     <indent>ServerName www.otherdomain.tld<br />
165     DocumentRoot /www/otherdomain<br />
166     </indent>
167     &lt;/VirtualHost&gt;<br />
168     </example>
169
170   <p>Sie k&ouml;nnen anstelle des <code>*</code> bei den beiden Anweisungen 
171     <directive module="core">NameVirtualHost</directive> und <directive 
172     type="section" module="core">VirtualHost</directive> alternativ eine 
173     eindeutige IP-Adresse angeben. Das kann man beispielsweise machen, um 
174     einige namensbasierte virtuelle Hosts auf einer IP-Adresse zu betreiben und 
175     entweder IP-basierte oder ein anderes Set von namensbasierten virtuellen 
176     Hosts auf einer anderen Adresse.</p>
177   
178   <p>Viele Server wollen unter mehr als einem Namen erreichbar sein. Die 
179     Direktive <directive module="core">ServerAlias</directive>, die innerhalb 
180     des <directive type="section" 
181     module="core">VirtualHost</directive>-Abschnittes angegeben wird,
182     erm&ouml;glicht dies. Zum Beispiel zeigt die <directive 
183     module="core">ServerAlias</directive>-Anweisung in dem ersten <directive 
184     type="section" module="core">VirtualHost</directive>-Block oben an, dass die
185     aufgef&uuml;hrten Namen alternative Namen sind, die man verwenden kann, um
186     das gleiche Webangebot zu erreichen:</p>
187
188     <example>
189     ServerAlias domain.tld *.domain.tld
190     </example>
191
192   <p>Anfragen f&uuml;r alle Hosts der Domain <code>domain.tld</code> werden
193     von dem virtuellen Host <code>www.domain.tld</code> bedient. Die
194     Platzhalter <code>*</code> und <code>?</code> k&ouml;nnen anstelle
195     entsprechender Namen verwendet werden. Nat&uuml;rlich k&ouml;nnen Sie nicht
196     einfach Namen erfinden und diese bei <directive 
197     module="core">ServerName</directive> oder <code>ServerAlias</code>
198     angeben, Sie m&uuml;ssen zun&auml;chst Ihren DNS Server entsprechend
199     konfigurieren, dass er diese Namen auf die mit Ihrem Server verkn&uuml;pfte
200     IP-Adresse abbildet.</p>
201
202   <p>Und schlu&szlig;endlich k&ouml;nnen Sie die Konfiguration der virtuellen
203     Hosts mittels Angabe weiterer Direktiven innherhalb der <directive 
204     type="section" module="core">VirtualHost</directive>-Container
205     feineinstellen. Die meisten Direktiven k&ouml;nnen in diesen Containern
206     angegeben werden und ver&auml;ndern dann ausschlie&szlig;lich die
207     Konfiguration des entsprechenden virtuellen Hosts. Pr&uuml;fen Sie den <a
208     href="../mod/directive-dict.html#Context">Kontext</a> einer Direktive, um
209     herauszufinden, ob eine bestimmte Direktive zul&auml;ssig ist.
210     Im <em>Hauptserver-Kontext</em> (au&szlig;erhalb der <directive 
211     type="section" module="core">VirtualHost</directive>-Container) definierte
212     Konfigurationsanweisungen werden nur dann angewendet, wenn sie nicht durch
213     Einstellungen des virtuellen Hosts au&szlig;er Kraft gesetzt wurden.</p>
214
215   <p>Wenn nun eine Anfrage eintrifft, pr&uuml;ft der Server zuerst, ob sie eine
216     IP-Adresse verwendet, die der <directive
217     module="core">NameVirtualHost</directive>-Anweisung entspricht. Ist dies der
218     Fall, dann sieht er sich jeden <directive type="section"
219     module="core">VirtualHost</directive>-Abschnitt mit einer passenden
220     IP-Adresse an und versucht den einen zu finden, dessen <directive
221     module="core">ServerName</directive>- oder <directive
222     module="core">ServerAlias</directive>-Anweisung mit dem gew&uuml;nschten
223     Hostnamen &uuml;bereinstimmt. Findet er einen, dann verwendet er die
224     Konfiguration dieses Servers. Wird kein passender virtueller Host gefunden,
225     dann wird <strong>der erste angegeben virtuelle Host</strong> verwendet,
226     dessen IP-Adresse pa&szlig;t.</p>
227
228   <p>Die Folge davon ist, dass der erste aufgef&uuml;hrte virtuelle Host der
229     <em>Standard</em>-Virtual-Host ist. Die <directive
230     module="core">DocumentRoot</directive>-Anweisung des <em>Hauptservers</em>
231     wird <strong>niemals</strong> verwendet, wenn eine IP-Adresse mit einer 
232     <directive module="core">NameVirtualHost</directive>-Anweisung
233     &uuml;bereinstimmt. Wenn Sie eine spezielle Konfiguration f&uuml;r Anfragen
234     angeben m&ouml;chten, die keinem bestimmten virtuellen Host entsprechen,
235     packen Sie diese Konfiguration einfach in einen <directive type="section"
236     module="core">VirtualHost</directive>-Container und f&uuml;hren diesen als
237     erstes in der Konfigurationsdatei auf.</p>
238
239 </section>
240
241 <section id="compat"><title>Kompatibilit&auml;t mit &auml;lteren Browsern</title>
242   
243   <p>Wie zuvor erw&auml;hnt gibt es einige Clients, die nicht die notwendigen
244     Daten senden, mit denen namensbasierte virtuelle Hosts korrekt
245     funktionieren. Diesen Clients werden stets die Seiten des ersten, f&uuml;r
246     diese IP-Adresse aufgef&uuml;hrten virtuellen Hosts gesendet werden (des
247     <cite>prim&auml;ren</cite> namensbasierten virtuellen Hosts).</p>
248
249   <note><title>Was bedeutet &auml;lter?</title>
250     <p>Beachten Sie bitte, wenn wir von &auml;lter sprechen, meinen wir auch
251     &auml;lter. Es ist sehr unwahrscheinlich, dass sie einen dieser Browser
252     heutzutage in Verwendung finden werden. Alle aktuellen Browser-Versionen
253     senden den <code>Host</code>-Header, so wie er f&uuml;r namensbasierte
254     virtuelle Hosts ben&auml;&ouml;tigt wird.</p>
255   </note>
256
257   <p>Mit der Direktive <directive module="core">ServerPath</directive> existiert  
258     eine m&ouml;gliche Behelfskonstruktion, obgleich sie etwas schwerf&auml;llig
259     ist:</p>
260
261   <p>Beispielkonfiguration:</p>
262
263   <example>
264     NameVirtualHost 111.22.33.44<br />
265     <br />
266     &lt;VirtualHost 111.22.33.44&gt;<br />
267     <indent>
268     ServerName www.domain.tld<br />
269     ServerPath /domain<br />
270     DocumentRoot /web/domain<br />
271     </indent>
272     &lt;/VirtualHost&gt;<br />
273   </example>
274
275   <p>Was bedeutet das? Es bedeutet, dass eine Anfrage f&uuml;r eine mit
276     "<code>/domain</code>" beginnende URI von dem virtuellen Host
277     <code>www.domain.tld</code> bedient wird. Dies hei&szlig;t, dass die Seiten
278     f&uuml;r alle Clients unter <code>http://www.domain.tld/domain/</code>
279     abrufbar sind, wenngleich Clients, die den Header <code>Host:</code>
280     senden, auch &uuml;ber <code>http://www.domain.tld/</code> auf sie zugreifen
281     k&ouml;nnen.</p>
282
283   <p>Legen Sie einen Link auf der Seite Ihres prim&auml;ren virtuellen Hosts zu 
284     <code>http://www.domain.tld/domain/</code>, um die Behelfsl&ouml;sung
285     verf&uuml;gbar zu machen. Bei den Seiten der virtuellen Hosts m&uuml;ssen
286     Sie dann sicherstellen, entweder au&szlig;schlie&szlig;lich relative Links
287     (<em>z.B.</em> "<code>file.html</code>" oder
288     "<code>../icons/image.gif</code>") zu verwenden oder Links, die das
289     einleitende <code>/domain/</code> enthalten (<em>z.B.</em>,
290     "<code>http://www.domain.tld/domain/misc/file.html</code>" oder
291     "<code>/domain/misc/file.html</code>").</p>
292
293   <p>Dies erfordert etwas Disziplin, die Befolgung dieser Richtlinien stellt
294     jedoch gr&ouml;&szlig;tenteils sicher, dass Ihre Seiten mit allen Browsern
295     funktionieren, alten wie neuen.</p>
296
297 </section>
298 </manualpage>