Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
Der Apache HTTP-Server bietet die Möglichkeit zur Verwendung von virtuellen Hosts, um verschiedene Server für verschiedene IP-Adressen/Rechnernamen oder verschiedene Ports auf dem selben Server zu benutzen. So ist es möglich, dass z.B. Web-Angebote der Form: 'www.vhost_1.tld', 'www.vhost_2.tld', usw. auf einen Apache-Server angeboten werden. Dabei sollet man zwischen 'Namensbasierten virtuellen Servern' (ab HTTP/1.1 möglich) und 'IP-basierte virtuelle Hosts' unterscheiden. Im folgenden werden Beispiel-Konfigurationen zu 'Virtuellen Hosts' unter Debian-Apache2 (sarge) gegeben. Dabei werden beide erwähnte Möglichkeiten vorgestellt. Konfiguration: 'Namensbasierte virtuelle Hosts'Bei 'Namensbasierten virtuellen Hosts' reagiert der Server mit nur einer IP-Adresse auf verschiedenen WEB-Adressen unterschiedlich. Das funktioniert nur in Zusammenhang mit einer korrekten Namensauflösung (DNS-Server). Große Provider wie z.B. '1&1 Internet' oder 'Strato' verwenden dieses Prinzip. In folgenden wird ein Beispiel für zwei 'Namensbasierte virtuelle Hosts' aufgezeichnet. Die beiden Hosts in diesem Beispiel haben die Namen: 'www.vhost_1.tld' und 'www.vhost_2.tld'. Unter Debian-Apache2 sollten virtuelle Hosts konfigurationstechnisch ins Verzeichnis: '/etc/apache2/sites-available/' abgelegt werden. Dabei sollte für jeden Host eine Datei angelegt werden. Hier die Beispiel-Dateien für die beiden virtuellen Hosts:
Ein virtuelle Server wird dann jeweils durch den Block '<VirtualHost
... </VirtualHost>' repräsentiert.
Innerhalb eines solchen Blocks für einen virtuellen Server werden die
spezifischen Eigenschaften des Servers festgelegt. Nach den Einbringen der zusätzlichen Konfigurationsdateien sind alle benötigten Verzeichnisse für die virtuellen Hosts zu erstellen. In diesem Beispiel sind das die Verzeichnisse: '/var/www/vhost_1' und '/var/www/vhost_2', indem jeweils ein Verzeichnis mit den Namen '/html', '/cgi-bin' und '/logs' erstellt werden müssen. Danach können die Sites mit dem Kommando: 'a2ensite' aktiviert werden. Wie schon erwähnt, werden für virtuelle Hosts ein Name-Server (DNS) benötigt, indem die Namen der einzelnen Hosts durch entsprechende 'CNAME' bzw. 'A Records' bekannt gegeben werden. Die Einträge sind in der zuständigen Zonen-Datei zu machen. Nach den erneuten Start des Apache-Servers sollte ein Zugriff mit: 'www.vhost_1.tld' bzw. 'www.vhost_2.tld' möglich sein. Konfiguaration: 'IP-basierte virtuelle Hosts'Bei einem 'IP-basierten virtuellen Host' reagiert der Server auf mehrere IP-Adressen (die z.B. durch virtuelle Netzwerk-Interfaces erzeugt werden) in Abhängigkeit von der IP-Adresse unterschiedlich. D.h. es werden je nach angeforderter Adresse verschiedene Bereiche berücksichtigt. Wie auch bei 'Namensbasierten virtuellen Hosts' empfiehlt es sind, für jede Site eine eigene Konfigurationsdatei zu erstellen. Hier zwei solche Beispieldateien die unter der IP-Adresse: 'http://192.168.0.11/' und 'http://192.168.0.12/' angesprochen werden können:
Der prinzipielle Aufbau einer Konfigurationsdatei ist quasi identisch wie beim 'Namensbasierten virtuellen Host' (vgl. oben). Der einzige Unterschied ist, hinter: '<VirtualHost ...' wird nun die IP-Adresse für die entsprechende Site festgelegt. Auch sind nach dem Einbringen der Konfigurationsdateien sind die entsprechenden notwendigen Verzeichnisse zu erzeugen und die neuen virtuellen Host zu aktivieren (Link erzeugen, z.B. mit: 'a2ensite'). Nach einen Neustart des Apache-Servers, sollten die Sites mit: 'http://192.168.0.11/' und 'http://192.168.0.12/' angesprochen werden können. Um sie mit den eigentlichen Namen ('www.vhost_3.tld' bzw. 'www.vhost_4.tld') ansprechen zu können, bedarf es ebenfalls eine Name-Server-Konfiguration. AnmerkungenName-Server KonfigurationDamit einen virtuellen Host korrekt über seinen Server-Namen ('ServerName') angesprochen werden kann, muss ein Name-Server korrekt konfiguriert sein. Hier ein Auszug einer Konfiguration, an Hand des Name-Servers: 'Bind':
In der 'named.conf' sind alle vier zuvor vorgestellten virtuellen Hosts aufgeführt. Die entsprechenden Zonen-Dateien sind gelb markiert. Hier als Beispiel der Inhalt der erste Zonen-Datei:
In den gelb markierten Zeile ist der Verweis auf die IP-Adresse zu finden,
in diesem Fall die: '192.168.0.10'. Die
zwei Zeilen sind notwendig, damit eine Namenauflösung in der Form 'vhost_1.tld'
bzw. 'www.vhost_1.tld' oder auch 'abc.vhost_1.tld'
möglich ist. Möchte man einer Netzwerkkarte weitere IP-Adressen zuordnen, so kann dies mit dem Kommando: 'ifconfig' geschehen. Mit den folgenden zwei Kommandos werden die virtuelle Netzwerk-Interfaces erzeugt, wie sie für die zuvor vorgestellten 'IP-basierten virtuellen Hosts' benötigt werden:
Sollen die Netzwerkkarte permanent beim Hochlauf des Systems über mehrere IP-Adressen verfügen, so sind die Einträge hierzu in der Datei: '/etc/network/interfaces' zu machen:
Hier wurden der Netzwerkkarte '192.168.0.10' noch die weiteren virtuellen Netzwerk-Interfaces: '192.168.0.11' und '192.168.0.12' zugeordnet. Umgebung des der virtuellen Hosts einrichtenIn folgenden wird gezeigt, wie ein Benutzer anzulegen ist, der ausschließlich auf seinen virtuellen Host zugreifen kann. Weiterhin wird gezeigt wie die Verzeichnisrechte für den virtuellen Host zu setzen sind. Hier ein Bsp. anhand des 'vhost_1.tld':
Mit 'useradd' wird ein Benutzer, in
diesem Fall der Benutzer 'user_1' inkl.
seines /home-Verzeichnises '/var/www/vhost_1.tld'
angelegt (Option '-m' dient zum Anlegen
des /home-Verzeichnises). Der Benutzer
gehört der Gruppe 'www-data' an und
verfügt über keine Shell (Option: '-s /bin/false'). Damit ein FTP-Zugriff gewährleistet ist, muss evtl. noch in der Datei: '/etc/shells' die Zeile '/bin/false' eingefügt werden. Weitere Infos
letzte Änderung: 28. Januar 2008 |
Copyright © 2004 Norbert Eusterholz |