home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F278678_namebased.xml.de < prev    next >
Extensible Markup Language  |  2004-04-17  |  15KB  |  298 lines

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