Apache2 Workshop VirtualHosts: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 93: | Zeile 93: | ||
*Konfigure 2 Virtuelle Nameserver | *Konfigure 2 Virtuelle Nameserver | ||
*Aktivere sie. | *Aktivere sie. | ||
| + | |||
==Warum geht das eigentlich?== | ==Warum geht das eigentlich?== | ||
*[[Warum können virtuelle Webserver über den Namen unterschieden werden?]] | *[[Warum können virtuelle Webserver über den Namen unterschieden werden?]] | ||
| Zeile 129: | Zeile 130: | ||
===Apache restart=== | ===Apache restart=== | ||
*apachectl restart | *apachectl restart | ||
| + | ==Aufgaben== | ||
| + | *Lege im Nameser 2 Weitere Domains an. | ||
| + | *hydra.it1XX.int und medusa.it1XX.int mit neuen IPs | ||
| + | *aktiviere die IPs statisch | ||
| + | *Lege wie oben Unterverzeichnisse an | ||
| + | *Erstelle je eine index.html deine Wahl | ||
| + | *Konfigure 2 Virtuelle ip-basierte Nameserver | ||
| + | *Aktivere sie. | ||
Aktuelle Version vom 15. März 2025, 09:08 Uhr
Grundlagen
- Apache unterstützt VirtualHosts, um mehrere Webseiten auf einer Maschine zu hosten.
- Es gibt zwei Arten: Named-based (mehrere Domains auf einer IP) und IP-based (jede Seite hat eine eigene IP).
- Named-based VirtualHosts sind die Standardmethode, da sie weniger IP-Adressen benötigen.
- Die Konfigurationsdateien für VirtualHosts liegen in /etc/apache2/sites-available/.
- Aktivierte VirtualHosts werden als Symlink in /etc/apache2/sites-enabled/ hinterlegt.
- Ein VirtualHost wird mit a2ensite meine-seite.conf aktiviert.
- Ein VirtualHost wird mit a2dissite meine-seite.conf deaktiviert.
- Nach Änderungen muss Apache neu geladen werden: systemctl reload apache2.
- Standardmäßig verarbeitet Apache Anfragen an die erste aktivierte VirtualHost-Datei.
- Falls keine passende Domain gefunden wird, antwortet Apache mit dem Default VirtualHost.
- Um HTTPS für VirtualHosts zu nutzen, muss ein Zertifikat und SNI (Server Name Indication) verwendet werden.
IP- vs. Name-based VirtualHosts
- Bei IP-based VirtualHosts benötigt jede Webseite eine eigene IP-Adresse.
- Diese Methode wird meist in älteren Systemen oder besonderen Netzwerkkonfigurationen genutzt.
- Named-based VirtualHosts sind flexibler, da mehrere Domains eine einzelne IP teilen können.
- Named-based VirtualHosts funktionieren mit HTTPS dank SNI (Server Name Indication).
- IP-based VirtualHosts sind sinnvoll, wenn verschiedene SSL-Zertifikate ohne SNI genutzt werden sollen.
Namedbased Virtual Host
/etc/apache2/sites-available/000-default.conf
Zweck
- Diese Datei definiert einen Standard-VirtualHost für HTTP-Anfragen.
- Sie wird von Apache verwendet, wenn keine andere Konfiguration passt.
- Standardmäßig lauscht dieser VirtualHost auf Port 80.
- Die Datei kann als Vorlage für weitere VirtualHosts genutzt werden.
- Änderungen an dieser Datei erfordern einen Neustart oder Reload von Apache.
Inhalt
- cat /etc/apache2/sites-available/000-default.conf
# Standard-VirtualHost für HTTP (Port 80)
<VirtualHost *:80>
# Hauptdomain des VirtualHosts
ServerName www.example.com
# E-Mail-Adresse des Administrators (wird in Fehlerseiten angezeigt)
ServerAdmin webmaster@localhost
# Wurzelverzeichnis der Webseite
DocumentRoot /var/www/html
# Fehlerprotokoll für diesen VirtualHost
ErrorLog ${APACHE_LOG_DIR}/error.log
# Zugriffprotokoll mit vordefiniertem Log-Format
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Weitere Domain anlegen
- Die Konfigurationsdatei sollte man unter /etc/apache2/sites-available ablegen.
- Danach wird sie mit a2ensite Dateiname aktiviert.
Zuerst erstellen wie ein Verzeichnis und eine Webseite
- mkdir /var/www/porty
- cd /var/www/porty
- wget https://xinux.de/downloads/html/porty.html
- mv porty.html index.html
Datei
- cat /etc/apache2/sites-available/02-porty.conf
<VirtualHost *:80>
ServerName porty.it113.int
ServerAdmin technik@it113.int
DocumentRoot /var/www/porty
ErrorLog ${APACHE_LOG_DIR}/porty-error.log
CustomLog ${APACHE_LOG_DIR}/porty-access.log combined
</VirtualHost>
Default Seite deaktiveren
- a2dissite 000-default.conf
Aktivieren der Seite
- a2ensite 02-porty
Test ob alles in Ordnung ist
- apachectl configtest
Syntax OK
Apache restart
- apachectl restart
Aufgaben
- Lege im Nameser 2 Weitere Domains an.
- kalle.it1XX.int und babsi.it1XX.in
- Lege wie oben Unterverzeichnisse an
- Erstelle je eine index.html deine Wahl
- Konfigure 2 Virtuelle Nameserver
- Aktivere sie.
Warum geht das eigentlich?
IP basierter Virtuell Host
Vorbereitung
- Wir müssen an die Schnittstelle weitere freie IPs binden
- Dies geschieht mit
- ip addr add 10.88.113.46/24 dev enp0s3
- Um es bootfähig zu machen sollte man die /etc/network/interfaces ergänzen
auto enp0s3 iface enp0s3 inet static address 192.168.178.45/24 gateway 192.168.178.1 post-up ip addr add 192.168.178.46/24 dev enp0s3
Verzeichnis mit Seite erstellen
- cd /root
- wget https://xinux.de/downloads/html/webgen.sh
- mkdir /var/www/ipbased
- bash webgen.sh ipbased > /var/www/ipbased/index.html
Konfiguration erstellen
- cat /etc/apache2/sites-available/03-ipbased.conf
<VirtualHost 10.88.113.46:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/ipbased
ErrorLog ${APACHE_LOG_DIR}/ipbased-error.log
CustomLog ${APACHE_LOG_DIR}/ipbased-access.log combined
</VirtualHost>
Aktivieren der Seite
- a2ensite 03-ipbased
Test ob alles in Ordnung ist
- apachectl configtest
Syntax OK
Apache restart
- apachectl restart
Aufgaben
- Lege im Nameser 2 Weitere Domains an.
- hydra.it1XX.int und medusa.it1XX.int mit neuen IPs
- aktiviere die IPs statisch
- Lege wie oben Unterverzeichnisse an
- Erstelle je eine index.html deine Wahl
- Konfigure 2 Virtuelle ip-basierte Nameserver
- Aktivere sie.