Hallo Forum,
ich lese gerade die Apache Doku zu "name based virtual servers".
<zitat>Um namensbasierte virtuelle Hosts zu verwenden, müssen Sie die IP-Adresse (und möglicherweise den Port) des Servers benennen, an der Anfragen für die Hosts entgegengenommen werden. Dies wird mit der Direktive NameVirtualHost eingestellt. Im Normalfall, wenn alle IP-Adressen des Server verwendet werden sollen, können Sie * als Argument für NameVirtualHost verwenden. Wenn Sie vorhaben, mehrere Ports zu nutzen (etwa wenn SSL läuft), sollten Sie dem Argument einen Port hinzufügen, wie zum Beispiel *:80. Beachten Sie, dass die Angabe einer IP-Adresse in einer NameVirtualHost-Anweisung den Server nicht automatisch an dieser Adresse lauschen läßt. Lesen Sie bitte "Bestimmen der vom Apache verwendeten Adressen und Ports" für weitere Details. Zusätzlich muss jede hier angegebene IP-Adresse einer Netzwerkkarte des Servers zugeordnet sein.</zitat>
Könnte mir das mal jemand bitte erläutern?
Wozu soll die Direktive NameVirtualHost gut sein? Zwei Situationen:
Jemand ruft im Internet in seinem Browser die Seite www.selfhtml.org auf. Dieser Domainname wird an einen DNS Server geschickt und dieser gibt die IP an den Computer des Surfers zurück. Nun kann der Besucher über mehrere Router mit dem Zielrechner auf dem Apache läuft in Kontakt treten.
Der Rechner auf dem Apache läuft ist nun ein physischer Rechner, der ist über das Internet über die IP 213.198.84.179 erreichbar.
Nun läuft auf dem gleichen Rechner mit dem Apache der www.slefhtml.org bedient ein volkommen anderes Projekt nebenher, sagen wir über Zebras. Meinetwegen www.zebras.de
Wenn nun eine Anfrage aus dem Internet kommt, was bekommt der apache dann zu sehen. Was schickt mein Browser dann an diesen Apache Rechner? 213.198.84.179/selflogo.jpg oder www.selfhtml.org/selflogo.jpg? Oder die IP UND die Domain mit Pfad?
Wenn ich auf meinem lokalen Rechner Apache installiere verstehe ich diese Geschichte noch. Habe da angegeben NameVirtualHost 127.0.0.1:80
und dann als virtuellen Host:
<VirtualHost *:80>
<Directory />
AllowOverride All
</Directory>
ServerAdmin pma@phpmyadmin
DocumentRoot c:/programme/phpmyadmin
ServerName db
ErrorLog logs/db
CustomLog logs/dbcustom_log common
</VirtualHost>
Wenn ich nun http://db in das Adressfeld des Browsers eingebe, guckt das Betriebssystem in der "hosts" Datei nach sieht das dort 127.0.0.1 db steht. Also verbindet es den Browser mit 127.0.0.1 Woher weiß der Browser dann aber dass er Seiten aus dem Verzeichnis c:/programme/phpmyadmin liefern soll?
Wie kann ich auf einem eigenen Recher, welcher ja nur eine IP hat mehere verschiedene Projekte hosten?