Apache-Minikurs 3  -  Virtuelle Hosts

☰ Menü

IP-basierte virtuelle Hosts einrichten

 

IP-basierte virtuelle Hosts

Ein Webserver wird über verschiedene IP-Adressen angesprochen. Ein Webserver, zwei IP-Adressen, zwei unabhängige Serverinstanzen mit unterschiedlichen Inhalten.

 

Vorbereitungen

IP-basierte virtuelle Hosts können auf Rechnern errichtet werden, welche über mehrere IP-Adressen angesprochen werden. Selbstverständlich kann man auch unter Linux einer Netzwerkkarte mehrere IP-Adressen zuweisen und so IP-basierte virtuelle Hosts realisiseren. In der Praxis kann es jedoch Probleme geben. Netzwerkkarten mit mehreren IP-Adressen müssen bisweilen über ein zusätzliches Autostartskript aktiviert werden. Unter VMware ist es sehr viel einfacher, eine zweite Netzwerkkarte "einzubauen". Die vorgeschlagene VM enthält hat bereits zwei Netzwerkadpater "eingebaut".

Wie Sie eine zweite Netzwerkkarte selbst einrichten, lesen Sie bei Interesse hier:

Eine zweite Netzwerkkarte einrichten

Vorgehensweise:
  1. Öffnen Sie in VMware den Eigenschaftendialog der virtuellen Maschine!
  2. Editieren Sie die Einstellungen dieser Maschine!
  3. Fügen Sie eine zweite Netzwerkkarte mit der Netzwerkoption NAT hinzu!
  4. Schließen Sie den Assistenten und starten Sie die virtuelle Maschine!
  5. Tragen Sie die neue Netzwerkkarte in die Datei /etc/network/interfaces ein.
  6. Aktivieren Sie anschließend die zweite Netzwerkkarte durch einen reboot der VM.
# The secondary network interface
allow-hotplug ens37
iface ens37 inet dhcp

Box 1: Zusätzliche Parameter in der Datei /etc/network/interfaces. Der Parameter ens37 ist der Name der Netzwerkkarte. Diesen können Sie ggf. mit dem Befehl ip a s überprüfen.

 

Dokumentenstruktur erstellen

In Debian 9 (Stretch) ist als DocumentRoot standardmäßig der Ordner /var/www/html eingestellt. Für die neue VHost-Instanz benötigen wir einen zusätzlichen, parallel liegenden DocumentRoot-Ordner, z.B. /var/www/nic2. Legen Sie diesen an:
[sudo] mkdir /var/www/nic2
Jetzt fehlt noch eine index.html-Datei in diesem Ordner, z.B.:

index.html

Box 2: Datei /var/www/nic2/index.html

 

Konfiguration erstellen:

Für jede Instanz eines virtuellen Hosts sollten Sie eine eigen Konfigurationsdatei erstellen. Dies ist sehr schnell erledigt. Betrachten Sie dazu den Inhalt der Konfiguration der Standardseite. Diese ist in der Datei /etc/apache2/sites-available/000-default.conf zu finden. Diese Datei enthält, abgesehen von Kommentaren, nur wenige wichtige Zeilen:

1
2
3
4
5
6
<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Box 3: Konfiguration der Standard-Instanz, Datei: /etc/apache2/sites-available/000-default.conf

Das Sternchen in Zeile 1 besagt, dass alle IP-Adressen und Namen des Servers bedient werden. Die Ziffer 80 steht für die Portnummer. In Zeile 3 ist der DocumentRoot-Ordner eingetragen.

Erstellen Sie eine entsprechende Konfigurationsdatei /etc/apache2/sites-available/nic2.conf der neue VHost-Instanz.

1
2
3
4
5
6
<VirtualHost 192.168.52.134:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/nic2
	ErrorLog ${APACHE_LOG_DIR}/nic2-error.log
	CustomLog ${APACHE_LOG_DIR}/nic2-access.log combined
</VirtualHost>

Box 4: Konfiguration der neuen VHost-Instanz, Datei: /etc/apache2/sites-available/nic2.conf

Die IP-Adresse in Zeile 1 müssen Sie noch anpassen!
Die richtige IP-Adresse Ihres zweiten Netzwerkadpaters zeigt der Befehl ip a s an.

 

Testen

Aktivieren Sie mit dem Konsolenbefehl a2ensite nic2 die neue Instanz und lesen Sie mit service apache2 reload die geänderte Konfiguration des Webservers neu ein!

Mit a2dissite nic2, gefolgt von service apache2 reload deaktivieren Sie diese Instanz wieder.

Rufen Sie den Webserver über die IP-Adressen beider Netzwerkkarten auf!

 

Videoanleitung

 

Mögliche Probleme

 

Aufgaben 2

  1. Konfigurieren Sie die zweite Netzwerkkarte wie oben beschrieben!
  2. Warum ist es im realen LAN besser, die IP-Adresse eines Servers manuell festzulegen, statt sie über  DHCP  automatisch und dynamisch zu beziehen?
  3. Welche Konsequenzen entstehen, wenn zwei Rechner im LAN die gleiche IP-Adresse verwenden?
  4. Apache ist modular strukturiert.
    Erläutern Sie diese Aussage im Hinblick auf die Konfigurationsdateien des Apache-Webservers!
  5. In der zentralen Konfigurationsdatei /etc/apache2/apache2.conf werden Dateien im Ordner /etc/apache2/sites-available nicht eingebunden. Statt dessen wird am Ende der Konfigurationsdatei der Ordner /etc/apache2/sites-enabled mit der Anweisung IncludeOptional sites-enabled/*.conf eingebunden.
    Welche Bedeutung haben in diesem Zusammenhang die Befehle a2ensite und a2dissite?
  6. Überprüfen Sie die Zuordnung zwischen den IP-Adressen und Log-Dateien! Warum ist es sinnvoll, für jede VHost-Instanz, eigene Log-Dateien zu führen?
  7. Worin besteht der Unterschied zwischen den Konsolenbefehlen service apache2 reload und service apache2 restart?
  8. Wie gehen Sie vor, wenn Sie eine weitere IP-Adresse für Anfragen berücksichtigen möchten?
  9. Dokumentieren Sie die Ihre praktische Umsetzung IP-basierter virtueller Hosts!

 

Hilfe

Vhosts-Dokumentationen auf der Apache-Projekseite:
httpd.apache.org/docs/2.4/de/vhosts

 

W. Hermanns, © 2018