blob: 9e820c97351c55d92d521d5826d782e749883c72 [file] [log] [blame]
<?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="de" xml:lang="de"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Unterst&#252;tzung namensbasierter virtueller Hosts - Apache HTTP Server</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 href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/vhosts/name-based.html" rel="canonical" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/directives.html">Direktiven</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a></p>
<p class="apache">Apache HTTP Server Version 2.0</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/">HTTP-Server</a> &gt; <a href="http://httpd.apache.org/docs/">Dokumentation</a> &gt; <a href="../">Version 2.0</a> &gt; <a href="./">Virtual Hosts</a></div><div id="page-content"><div class="retired"><h4>Bitte beachten!</h4>
<p>Dieses Dokument bezieht sich auf Version <strong>2.0</strong> des Apache httpd, die <strong>nicht mehr gepflegt wird</strong>. Bitte aktualisieren Sie die Software und verwenden Sie stattdessen eine aktuelle Version des httpd, die an folgender Stelle dokumentiert ist:</p>
<ul><li><a href="http://httpd.apache.org/docs/current/">Dokumentation des Apache HTTP Server f&#252;r die zuletzt erschienene Version</a></li></ul><p>Sie k&#246;nnen <a href="http://httpd.apache.org/docs/current/vhosts/name-based.html">diesem Link</a> folgen, um zur aktuellen Version dieses Dokuments zu gelangen.</p></div><div id="preamble"><h1>Unterst&#252;tzung namensbasierter virtueller Hosts</h1>
<div class="toplang">
<p><span>Verf&#252;gbare Sprachen: </span><a href="../de/vhosts/name-based.html" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/vhosts/name-based.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="../ja/vhosts/name-based.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>
<p>Das Dokument beschreibt, wann und wie namensbasierte virtuelle Hosts zu
verwenden sind.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#namevip">Namensbasierte gegen&#252;ber IP-basierten
virtuellen Hosts</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#using">Die Verwendung von namensbasierten virtuellen Hosts</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#compat">Kompatibilit&#228;t mit &#228;lteren Browsern</a></li>
</ul><h3>Siehe auch</h3><ul class="seealso"><li><a href="ip-based.html">Unterst&#252;tzung IP-basierter virtueller
Hosts</a></li><li><a href="details.html">Tiefergehende Er&#246;rterung der Zuweisung
virtueller Hosts</a></li><li><a href="mass.html">Dynamisch konfiguriertes
Massen-Virtual-Hosting</a></li><li><a href="examples.html">Beispiele f&#252;r virtuelle Hosts in typischen
Installationen</a></li><li><a href="examples.html#serverpath">ServerPath-Beispielkonfiguration</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="namevip" id="namevip">Namensbasierte gegen&#252;ber IP-basierten
virtuellen Hosts</a></h2>
<p>IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den
korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich
ben&#246;tigen Sie eine IP-Adresse f&#252;r jeden virtuellen Host. Bei der
Verwendung von namensbasierten virtuellen Hosts verl&#228;&#223;t sich der
Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header
angibt. Durch Anwendung dieser Technik k&#246;nnen sich mehrere verschiedene
Hosts die gleiche IP-Adresse teilen.</p>
<p>Die Verwendung von namensbasierten virtuellen Hosts ist gew&#246;hnlich
einfacher. Sie m&#252;ssen lediglich Ihren DNS-Server darauf einstellen,
jeden Hostnamen auf die richtige IP-Adresse abzubilden, und dann den Apache
HTTP Server so konfigurieren, dass er die verschiedenen Hostnamen erkennt.
Namensbasierte virtuelle Hosts entsch&#228;rfen auch den Bedarf an
knappen IP-Adressen. Daher sollten Sie namensbasierte virtuelle Hosts
verwenden, sofern kein besonderer Grund daf&#252;r existiert, IP-basierte
virtuelle Hosts zu w&#228;hlen. M&#246;gliche Gr&#252;nde f&#252;r die
Verwendung IP-basierter virtueller Hosts sind:</p>
<ul>
<li>Einige antike Clients sind nicht kompatibel zu namensbasierten
virtuellen Hosts. Damit namensbasierte virtuelle Hosts funktionieren,
muss der Client den HTTP-Host-Header senden. Dies ist bei HTTP/1.1
vorgeschrieben und in allen modernen HTTP/1.0-Browsern als Erweiterung
implementiert. Wenn Sie Unterst&#252;tzung f&#252;r veraltete Clients
ben&#246;tigen und dennoch namensbasierte virtuelle Hosts verwenden,
dann finden Sie eine m&#246;gliche L&#246;sung daf&#252;r am Ende des
Dokuments.</li>
<li>Namensbasierte virtuelle Hosts k&#246;nnen aufgrund der Natur des
SSL-Protokolls nicht mit SSL-gesicherten Servern verwendet werden.</li>
<li>Einige Betriebssysteme und Netzwerkanlagen setzen Techniken zum
Bandbreiten-Management ein, die nicht zwischen Hosts unterscheiden
k&#246;nnen, wenn diese nicht auf verschiedenen IP-Adressen liegen.</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="using" id="using">Die Verwendung von namensbasierten virtuellen Hosts</a></h2>
<table class="related"><tr><th>Referenzierte Module</th><th>Referenzierte Direktiven</th></tr><tr><td><ul><li><code class="module"><a href="../mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code></li><li><code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code></li><li><code class="directive"><a href="../mod/core.html#servername">ServerName</a></code></li><li><code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code></li><li><code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code></li></ul></td></tr></table>
<p>Um namensbasierte virtuelle Hosts zu verwenden, m&#252;ssen Sie die
IP-Adresse (und m&#246;glicherweise den Port) des Servers benennen, an
der Anfragen f&#252;r die Hosts entgegengenommen werden. Dies wird mit
der Direktive <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>
eingestellt. Im Normalfall, wenn alle IP-Adressen des Server verwendet
werden sollen, k&#246;nnen Sie <code>*</code> als Argument f&#252;r
<code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> verwenden. Wenn Sie
vorhaben, mehrere Ports zu nutzen (etwa wenn SSL l&#228;uft), sollten
Sie dem Argument einen Port hinzuf&#252;gen, wie zum Beispiel
<code>*:80</code>. Beachten Sie,
dass die Angabe einer IP-Adresse in einer <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>-Anweisung den Server nicht
automatisch an dieser Adresse lauschen l&#228;&#223;t. Lesen Sie bitte "<a href="../bind.html">Bestimmen der vom Apache verwendeten Adressen und
Ports</a>" f&#252;r weitere Details. Zus&#228;tzlich muss jede hier
angegebene IP-Adresse einer Netzwerkkarte des Servers zugeordnet sein.</p>
<p>Der n&#228;chste Schritt ist die Erstellung eines <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Blocks f&#252;r jeden einzelnen
Host, den Sie bedienen wollen. Das Argument der Direktive <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> sollte das gleiche
sein wie das Argument der <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>-Anweisung (d.h. eine IP-Adresse
oder <code>*</code> f&#252;r alle Adressen). Innerhalb jedes <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Blocks ben&#246;tigen
Sie zumindestens eine <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>-Anweisung, um zu bestimmen, welcher
Host bedient wird, und eine <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>-Anweisung, um anzugeben, wo im
Dateisystem der Inhalt des Hosts abgelegt ist.</p>
<div class="note"><h3>Der Hauptserver verschwindet</h3>
Wenn Sie virtuelle Hosts zu einem bestehenden Webserver hinzuf&#252;gen,
m&#252;ssen Sie auch einen <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Block f&#252;r den bestehenden Host
<span class="transnote">(<em>Anm.d.&#220;.:</em> und bisherigen Hauptserver)</span> erstellen.
Die <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>- und
<code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>-Anweisungen zu diesem
virtuellen Host sollten die gleichen sein wie die globalen <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>- und <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>-Anweisungen. F&#252;hren Sie diesen
virtuellen Host als erstes in der Konfigurationsdatei auf, so dass er als
Standard-Host fungiert.
</div>
<p>Vorausgesetzt, Sie bedienen z.B. die Domain
<code>www.domain.tld</code> und m&#246;chten den virtuellen Host
<code>www.otherdomain.tld</code> hinzuf&#252;gen, welcher auf
die gleiche IP-Adresse zeigt. Dann f&#252;gen Sie einfach Folgendes der
<code>httpd.conf</code> hinzu:</p>
<div class="example"><p><code>
NameVirtualHost *:80<br />
<br />
&lt;VirtualHost *:80&gt;<br />
<span class="indent">
ServerName www.domain.tld<br />
ServerAlias domain.tld *.domain.tld<br />
DocumentRoot /www/domain<br />
</span>
&lt;/VirtualHost&gt;<br />
<br />
&lt;VirtualHost *:80&gt;<br />
<span class="indent">ServerName www.otherdomain.tld<br />
DocumentRoot /www/otherdomain<br />
</span>
&lt;/VirtualHost&gt;<br />
</code></p></div>
<p>Sie k&#246;nnen anstelle des <code>*</code> bei den beiden Anweisungen
<code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> und <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> alternativ eine
eindeutige IP-Adresse angeben. Das kann man beispielsweise machen, um
einige namensbasierte virtuelle Hosts auf einer IP-Adresse zu betreiben und
entweder IP-basierte oder ein anderes Set von namensbasierten virtuellen
Hosts auf einer anderen Adresse.</p>
<p>Viele Server wollen unter mehr als einem Namen erreichbar sein. Die
Direktive <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>, die innerhalb
des <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Abschnittes angegeben wird,
erm&#246;glicht dies. Zum Beispiel zeigt die <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>-Anweisung in dem ersten <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Block oben an, dass die
aufgef&#252;hrten Namen alternative Namen sind, die man verwenden kann, um
das gleiche Webangebot zu erreichen:</p>
<div class="example"><p><code>
ServerAlias domain.tld *.domain.tld
</code></p></div>
<p>Anfragen f&#252;r alle Hosts der Domain <code>domain.tld</code> werden
von dem virtuellen Host <code>www.domain.tld</code> bedient. Die
Platzhalter <code>*</code> und <code>?</code> k&#246;nnen anstelle
entsprechender Namen verwendet werden. Nat&#252;rlich k&#246;nnen Sie nicht
einfach Namen erfinden und diese bei <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> oder <code>ServerAlias</code>
angeben, Sie m&#252;ssen zun&#228;chst Ihren DNS Server entsprechend
konfigurieren, dass er diese Namen auf die mit Ihrem Server verkn&#252;pfte
IP-Adresse abbildet.</p>
<p>Und schlu&#223;endlich k&#246;nnen Sie die Konfiguration der virtuellen
Hosts mittels Angabe weiterer Direktiven innherhalb der <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Container
feineinstellen. Die meisten Direktiven k&#246;nnen in diesen Containern
angegeben werden und ver&#228;ndern dann ausschlie&#223;lich die
Konfiguration des entsprechenden virtuellen Hosts. Pr&#252;fen Sie den <a href="../mod/directive-dict.html#Context">Kontext</a> einer Direktive, um
herauszufinden, ob eine bestimmte Direktive zul&#228;ssig ist.
Im <em>Hauptserver-Kontext</em> (au&#223;erhalb der <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Container) definierte
Konfigurationsanweisungen werden nur dann angewendet, wenn sie nicht durch
Einstellungen des virtuellen Hosts au&#223;er Kraft gesetzt wurden.</p>
<p>Wenn nun eine Anfrage eintrifft, pr&#252;ft der Server zuerst, ob sie eine
IP-Adresse verwendet, die der <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>-Anweisung entspricht. Ist dies der
Fall, dann sieht er sich jeden <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Abschnitt mit einer passenden
IP-Adresse an und versucht den einen zu finden, dessen <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>- oder <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>-Anweisung mit dem gew&#252;nschten
Hostnamen &#252;bereinstimmt. Findet er einen, dann verwendet er die
Konfiguration dieses Servers. Wird kein passender virtueller Host gefunden,
dann wird <strong>der erste angegeben virtuelle Host</strong> verwendet,
dessen IP-Adresse pa&#223;t.</p>
<p>Die Folge davon ist, dass der erste aufgef&#252;hrte virtuelle Host der
<em>Standard</em>-Virtual-Host ist. Die <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>-Anweisung des <em>Hauptservers</em>
wird <strong>niemals</strong> verwendet, wenn eine IP-Adresse mit einer
<code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code>-Anweisung
&#252;bereinstimmt. Wenn Sie eine spezielle Konfiguration f&#252;r Anfragen
angeben m&#246;chten, die keinem bestimmten virtuellen Host entsprechen,
packen Sie diese Konfiguration einfach in einen <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>-Container und f&#252;hren diesen als
erstes in der Konfigurationsdatei auf.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="compat" id="compat">Kompatibilit&#228;t mit &#228;lteren Browsern</a></h2>
<p>Wie zuvor erw&#228;hnt gibt es einige Clients, die nicht die notwendigen
Daten senden, mit denen namensbasierte virtuelle Hosts korrekt
funktionieren. Diesen Clients werden stets die Seiten des ersten, f&#252;r
diese IP-Adresse aufgef&#252;hrten virtuellen Hosts gesendet werden (des
<cite>prim&#228;ren</cite> namensbasierten virtuellen Hosts).</p>
<div class="note"><h3>Was bedeutet &#228;lter?</h3>
<p>Beachten Sie bitte, wenn wir von &#228;lter sprechen, meinen wir auch
&#228;lter. Es ist sehr unwahrscheinlich, dass sie einen dieser Browser
heutzutage in Verwendung finden werden. Alle aktuellen Browser-Versionen
senden den <code>Host</code>-Header, so wie er f&#252;r namensbasierte
virtuelle Hosts ben&#228;&#246;tigt wird.</p>
</div>
<p>Mit der Direktive <code class="directive"><a href="../mod/core.html#serverpath">ServerPath</a></code> existiert
eine m&#246;gliche Behelfskonstruktion, obgleich sie etwas schwerf&#228;llig
ist:</p>
<p>Beispielkonfiguration:</p>
<div class="example"><p><code>
NameVirtualHost 111.22.33.44<br />
<br />
&lt;VirtualHost 111.22.33.44&gt;<br />
<span class="indent">
ServerName www.domain.tld<br />
ServerPath /domain<br />
DocumentRoot /web/domain<br />
</span>
&lt;/VirtualHost&gt;<br />
</code></p></div>
<p>Was bedeutet das? Es bedeutet, dass eine Anfrage f&#252;r eine mit
"<code>/domain</code>" beginnende URI von dem virtuellen Host
<code>www.domain.tld</code> bedient wird. Dies hei&#223;t, dass die Seiten
f&#252;r alle Clients unter <code>http://www.domain.tld/domain/</code>
abrufbar sind, wenngleich Clients, die den Header <code>Host:</code>
senden, auch &#252;ber <code>http://www.domain.tld/</code> auf sie zugreifen
k&#246;nnen.</p>
<p>Legen Sie einen Link auf der Seite Ihres prim&#228;ren virtuellen Hosts zu
<code>http://www.domain.tld/domain/</code>, um die Behelfsl&#246;sung
verf&#252;gbar zu machen. Bei den Seiten der virtuellen Hosts m&#252;ssen
Sie dann sicherstellen, entweder au&#223;schlie&#223;lich relative Links
(<em>z.B.</em> "<code>file.html</code>" oder
"<code>../icons/image.gif</code>") zu verwenden oder Links, die das
einleitende <code>/domain/</code> enthalten (<em>z.B.</em>,
"<code>http://www.domain.tld/domain/misc/file.html</code>" oder
"<code>/domain/misc/file.html</code>").</p>
<p>Dies erfordert etwas Disziplin, die Befolgung dieser Richtlinien stellt
jedoch gr&#246;&#223;tenteils sicher, dass Ihre Seiten mit allen Browsern
funktionieren, alten wie neuen.</p>
</div></div>
<div class="bottomlang">
<p><span>Verf&#252;gbare Sprachen: </span><a href="../de/vhosts/name-based.html" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="../en/vhosts/name-based.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../es/vhosts/name-based.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="../ja/vhosts/name-based.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/vhosts/name-based.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/vhosts/name-based.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Module</a> | <a href="../mod/directives.html">Direktiven</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossar</a> | <a href="../sitemap.html">Seitenindex</a></p></div>
</body></html>