Apache2 Workshop VirtualHosts: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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?]]

Version vom 15. März 2025, 09:07 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

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

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