Mehrfache Verwendung einer IP Adresse mit Apache
ArticleCategory: [Choose a category for your article]
System Administration
AuthorImage:[Here we need a little image form you]
TranslationInfo:[Author and translation history]
original in en Atif Ghaffar
en to de Jens Link
AboutTheAuthor:[A small biography about the author]
Ich lebe in der Schweiz und arbeite als Webmaster/Unix Systemadministrator.
Meine Vorlieben sind Linux, Unix, Perl, Apache und Software unter der GPL.
Sie können auf meiner
Homepage
mehr über mich erfahren.
Abstract:[Here you write a little summary]
Dieser Artikel beschreibt, wie man mehrere virtuelle Webserver mit der gleichen IP Adresse verwenden kann. Kenntnisse von Apache, DNS und Unix werden vorausgesetzt.
Dieser Artikel richtet sich an ISPs, System Administratoren und jeden der gerne liest und lernt.
ArticleIllustration:[This is the title picture for your article]
ArticleBody:[The article body]
Wieso sollte man eine IP Adresse mehrfach verwenden?
Die mehrfach Verwendung von IP Adressen ist aus verschieden Gründen sinnvoll:
- man hat nicht genügend IP Adressen
- man hat nur eine einzige IP Adresse (wie in meinem Fall)
- Zeitersparnis des Administrators, er muß einem Rechner nicht mehrere IP Adressen zuweisen.
Wie verwende ich eine IP Adresse mehrmals?
Es ist sehr einfach mit Apache mehrere Domains mit der selben IP Adresse zu verwenden.
Ich nehme für diesen Artikel an das wir die IP Adresse 192.168.1.1 und den Hostname hometranet.home verwenden.
Fügen Sie einfach folgende Zeile zu ihrer httpd.conf hinzu:
NameVirtualHost 192.168.1.1:80
Als nächstes werden wir drei virtuelle Webserver mit der gleichen IP Adresse erstellen.
#Host für Unix Dateien
<VirtualHost 192.168.1.1:80>
ServerName unix.hometranet.home
DocumentRoot /www/unix/html
ScriptAlias /cgi-bin/ /www/unix/cgi-bin/
TransferLog /www/unix/logs/access_log
ErrorLog /www/unix/logs/error_log
</VirtualHost>
#Host für Perl Dateien
<VirtualHost 192.168.1.1:80>
ServerName perl.hometranet.home
DocumentRoot /www/perl/html
ScriptAlias /cgi-bin/ /www/perl/cgi-bin/
TransferLog /www/perl/logs/access_log
ErrorLog /www/perl/logs/error_log
</VirtualHost>
#Und hier legen wir alles rund um Apache ab.
<VirtualHost 192.168.1.1:80>
ServerName apache.hometranet.home
DocumentRoot /www/apache/html
ScriptAlias /cgi-bin/ /www/apache/cgi-bin/
TransferLog /www/apache/logs/access_log
ErrorLog /www/apache/logs/error_log
</VirtualHost>
So, jetzt haben wir 3 virtuelle Hosts mit nur einer IP Adresse erzeugt.
Als nächstes müssen wir CNAME bzw. A Records für diese Namen in unseren Nameserver
Zonen Datei eintragen (und nicht vergessen die Seriennummer. zu erhöhen).
In unserem Beispiel würde ich folgendes in /var/named/homtraned.hom.fwd hinzufügen:
perl.hometranet.home. IN A 192.168.1.1
apache.hometranet.home. IN A 192.168.1.1
unix.hometranet.home. IN A 192.168.1.1
Beachten sie:
Falls sie den Host mit irgendeinem anderen als den angegeben Namen aufrufen, so wird der erste virtuelle Host antworten.
In Versionen vor Apache 1.3.x hätte der letzte geantwortet.
Beispiel: Wenn sie der host madmag heißt, und sie ihn mit http://madmag.hometranet.home aufrufen, führt dies zu dem gleichen Ergebnis wie der Aufruf von unix.hometranet.home
Benutzung von Wildcards und Dynamischen Hostnamen
Jetzt kommt der interessante Teil. Apache erlaubt Wildcards in Hostnamen.
Dies bedeutet, das sie einen domian Name *.home.hometranet,home setzen können und alle Zugriffe user1.hometranet.home, user2.hometranet.home und user3.hometranet.home werden antworten
Beispiel:
#host for users
<VirtualHost 192.168.1.1:80>
ServerName home.hometranet.home
ServerAlias *.home.hometranet.home
DocumentRoot /www/home/html
TransferLog /www/home/logs/access_log
ErrorLog /www/home/logs/error_log
</VirtualHost>
sowie einen Eintrag in der named Zonen Datei.
*.home.hometranet.home. IN A 192.168.1.1
Anmerkung: Dieser Trick funktioniert nicht mit einem Microsoft DNS Server. Er verweigert Wildcards in Hostnamen
(Aber sie verwenden ja sicher auch keinen, oder?)
Ich habe ein kleines Programm geschrieben, daß es den Benutzern im Netzwerk erlaubt ihre CV zur Datenbak hinzuzufügen um den ober vorgestellten Trick zu verwenden. Ihre CV sind dann unter http://IhrBenutzerName.cv.developer.ch zu erreichen.
Hier finden sie ein ausführliches Beispiel für eine Konfiguration, die ich aus meiner httpd.conf entnommen habe
Um diese Datei in ihre httpd.conf einzubinden, können sie die Include Anweisung in ihrer httpd.conf verwenden.
Include "/etc/vhosts.conf"
Weitere Informationen
-
[Apache name-based Virtual Host Support]
-
http://www.apache.org/docs/vhosts/name-based.html
-
[Apache Virtual Host documentation]
-
http://www.apache.org/docs/vhosts/index.html
- [An In-Depth Discussion of Virtual Host Matching]
-
http://www.apache.org/docs/vhosts/details.html