Apache2 Workshop VirtualHosts: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Inhalt) |
|||
| (34 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
* Apache unterstützt VirtualHosts, um mehrere Webseiten auf einer Maschine zu hosten. | * 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). | * 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/''. | * Die Konfigurationsdateien für VirtualHosts liegen in ''/etc/apache2/sites-available/''. | ||
* Aktivierte VirtualHosts werden als Symlink in ''/etc/apache2/sites-enabled/'' hinterlegt. | * Aktivierte VirtualHosts werden als Symlink in ''/etc/apache2/sites-enabled/'' hinterlegt. | ||
* Ein VirtualHost wird mit '''a2ensite meine-seite.conf''' aktiviert. | * Ein VirtualHost wird mit '''a2ensite meine-seite.conf''' aktiviert. | ||
* Ein VirtualHost wird mit '''a2dissite meine-seite.conf''' deaktiviert. | * Ein VirtualHost wird mit '''a2dissite meine-seite.conf''' deaktiviert. | ||
| − | * Nach Änderungen muss Apache neu geladen werden: '''systemctl reload apache2'''. | + | * 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. | ||
| − | == Zweck == | + | = 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. | * Diese Datei definiert einen Standard-VirtualHost für HTTP-Anfragen. | ||
* Sie wird von Apache verwendet, wenn keine andere Konfiguration passt. | * Sie wird von Apache verwendet, wenn keine andere Konfiguration passt. | ||
| Zeile 16: | Zeile 30: | ||
* Änderungen an dieser Datei erfordern einen Neustart oder Reload von Apache. | * Änderungen an dieser Datei erfordern einen Neustart oder Reload von Apache. | ||
| − | == Inhalt == | + | === Inhalt === |
*cat /etc/apache2/sites-available/000-default.conf | *cat /etc/apache2/sites-available/000-default.conf | ||
| Zeile 40: | Zeile 54: | ||
</VirtualHost> | </VirtualHost> | ||
</pre> | </pre> | ||
| − | =Weitere Domain anlegen= | + | ==Weitere Domain anlegen== |
*Die Konfigurationsdatei sollte man unter '''/etc/apache2/sites-available''' ablegen. | *Die Konfigurationsdatei sollte man unter '''/etc/apache2/sites-available''' ablegen. | ||
*Danach wird sie mit a2ensite '''Dateiname''' aktiviert. | *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 | ||
| + | <pre> | ||
| + | <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> | ||
| + | </pre> | ||
| + | |||
| + | ===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?== | ||
| + | *[[Warum können virtuelle Webserver über den Namen unterschieden werden?]] | ||
| + | |||
| + | =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 | ||
| + | <pre> | ||
| + | <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> | ||
| + | </pre> | ||
| + | ===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. | ||
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.