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