Apache ist einer der meistgenutzten Webserver weltweit und bietet mit Virtual Hosts die Möglichkeit, mehrere Webseiten auf einem Server unter verschiedenen Domains oder Subdomains zu betreiben. Dieses Tutorial zeigt Schritt für Schritt, wie Sie Virtual Hosts sauber einrichten und gleichzeitig Best Practices für Sicherheit und Wartbarkeit beachten.
Apache Installation
Die Installation hängt von Ihrer Linux-Distribution ab. Für Debian/Ubuntu und RHEL/CentOS/AlmaLinux/Rocky Linux lauten die Befehle:
# Debian/Ubuntu
sudo apt update
sudo apt install apache2
RHEL/CentOS/AlmaLinux/Rocky Linux
sudo dnf install httpd
Apache-Dienst starten und aktivieren
Nach der Installation sollte der Apache-Dienst gestartet und beim Booten automatisch aktiviert werden:
# Debian/Ubuntu
sudo systemctl enable --now apache2
sudo systemctl status apache2
RHEL/CentOS/AlmaLinux/Rocky Linux
sudo systemctl enable --now httpd
sudo systemctl status httpd
Firewall konfigurieren
HTTP- und HTTPS-Verkehr muss erlaubt sein, damit Clients die Webseiten erreichen können.
# Beispiel mit UFW auf Ubuntu
sudo ufw allow 'Apache Full'
sudo ufw status
Beispiel mit firewalld auf RHEL/CentOS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Verzeichnisstruktur für Webseiten
Für jede Domain sollte ein eigenes Verzeichnis unter /var/www/ angelegt werden. Standardmäßig liegt die Apache-Root für Debian/Ubuntu unter /var/www/html.
sudo mkdir -p /var/www/meine-webseite
sudo chown -R www-data:www-data /var/www/meine-webseite
sudo chmod -R 755 /var/www/meine-webseite
Virtual Hosts einrichten
Für jede Domain wird eine separate Konfigurationsdatei erstellt. Auf Debian/Ubuntu liegt der Standardpfad unter /etc/apache2/sites-available/, auf RHEL/CentOS unter /etc/httpd/conf.d/.
# Beispiel für Debian/Ubuntu: /etc/apache2/sites-available/meine-webseite.confServerAdmin admin@meine-webseite.de ServerName meine-webseite.de ServerAlias www.meine-webseite.de DocumentRoot /var/www/meine-webseite ErrorLog ${APACHE_LOG_DIR}/meine-webseite_error.log
CustomLog ${APACHE_LOG_DIR}/meine-webseite_access.log combined
Virtual Hosts aktivieren
Auf Debian/Ubuntu müssen die Sites aktiviert und Apache neu geladen werden:
sudo a2ensite meine-webseite.conf sudo systemctl reload apache2RHEL/CentOS/AlmaLinux/Rocky Linux
Bei diesen Systemen genügt es meist, die Konfigurationsdatei in
/etc/httpd/conf.d/zu speichern und den Dienst neu zu laden:sudo systemctl reload httpdHosts-Datei testen (lokal)
Zum Testen ohne DNS kann die lokale
/etc/hostsDatei genutzt werden:sudo nano /etc/hosts # Eintrag hinzufügen 192.168.1.10 meine-webseite.de www.meine-webseite.deSSL/TLS aktivieren
HTTPS schützt den Datenverkehr zwischen Clients und Server. Mit Let’s Encrypt können kostenlose Zertifikate erstellt werden.
# Debian/Ubuntu mit Certbot sudo apt install certbot python3-certbot-apache sudo certbot --apache -d meine-webseite.de -d www.meine-webseite.deSecurity Best Practices
- Unnötige Module deaktivieren:
sudo a2dismod autoindex - Directory Listing deaktivieren:
Options -Indexes - ServerTokens verbergen:
ServerTokens ProdundServerSignature Off - Regelmäßige Updates von Apache und System durchführen
- Fail2ban nutzen, um wiederholte Angriffe auf Admin-Panels zu blockieren
Logging und Monitoring
Apache erstellt Zugriffs- und Fehlerprotokolle für jede Virtual Host. Diese sollten regelmäßig überprüft werden:
sudo tail -f /var/log/apache2/meine-webseite_access.log
sudo tail -f /var/log/apache2/meine-webseite_error.log
Performance-Optimierungen
Für produktive Umgebungen können Caching, KeepAlive und Mod_deflate aktiviert werden:
# Beispiel KeepAlive und Timeout in /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Gzip-Kompression aktivieren
sudo a2enmod deflate
sudo systemctl reload apache2
Mit diesen Schritten ist ein Apache-Webserver mit sauberen Virtual Hosts einsatzbereit. Die Trennung der Konfiguration pro Domain, SSL/TLS, Logging und Security-Einstellungen sorgen für einen stabilen und sicheren Betrieb im Unternehmens- oder Homelab-Umfeld.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











