Apache installieren und konfigurieren: Virtual Hosts richtig einrichten

Apache ist einer der am häufigsten verwendeten Webserver weltweit und eignet sich hervorragend für die Bereitstellung von Websites und Webanwendungen. Ein zentraler Bestandteil der Apache-Konfiguration sind Virtual Hosts, die es ermöglichen, mehrere Websites auf einem einzigen Server zu betreiben. In diesem Leitfaden zeigen wir Schritt für Schritt, wie Apache installiert und Virtual Hosts korrekt eingerichtet werden, um eine sichere und leistungsfähige Umgebung zu schaffen.

Systemvorbereitung

Bevor Apache installiert wird, sollte das System auf dem neuesten Stand sein, um Sicherheit und Stabilität zu gewährleisten.

Systemaktualisierung

sudo apt update
sudo apt upgrade -y

Für CentOS/RHEL:

sudo yum update -y

Basis-Pakete installieren

Hilfreiche Werkzeuge für Installation und Verwaltung:

sudo apt install wget curl git unzip -y

Apache Installation

Die Installation von Apache erfolgt über die Paketverwaltung. Anschließend werden die Dienste gestartet und automatisch beim Systemstart aktiviert.

Installation unter Ubuntu/Debian

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2

Installation unter CentOS/RHEL

sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd

Grundlegende Apache-Konfiguration

Die Hauptkonfigurationsdatei von Apache befindet sich unter /etc/apache2/apache2.conf (Ubuntu/Debian) bzw. /etc/httpd/conf/httpd.conf (CentOS).

Wichtige Parameter

  • ServerAdmin: E-Mail-Adresse des Administrators
  • DocumentRoot: Verzeichnis, in dem die Website-Dateien liegen
  • Listen: Port, auf dem Apache Anfragen entgegennimmt
  • AllowOverride: Legt fest, ob .htaccess-Dateien erlaubt sind

Virtual Hosts einrichten

Virtual Hosts ermöglichen das Hosting mehrerer Domains auf einem Server. Jede Domain erhält eine eigene Konfiguration.

Verzeichnisstruktur erstellen

sudo mkdir -p /var/www/meinewebsite
sudo mkdir -p /var/www/zweitewebsite
sudo chown -R $USER:$USER /var/www/meinewebsite
sudo chown -R $USER:$USER /var/www/zweitewebsite
sudo chmod -R 755 /var/www

Apache Virtual Host konfigurieren

sudo nano /etc/apache2/sites-available/meinewebsite.conf

Beispielkonfiguration:

<VirtualHost *:80>
    ServerAdmin admin@meinewebsite.de
    ServerName meinewebsite.de
    ServerAlias www.meinewebsite.de
    DocumentRoot /var/www/meinewebsite
ErrorLog ${APACHE_LOG_DIR}/meinewebsite_error.log
CustomLog ${APACHE_LOG_DIR}/meinewebsite_access.log combined

Weitere Virtual Hosts anlegen

sudo nano /etc/apache2/sites-available/zweitewebsite.conf
<VirtualHost *:80>
    ServerAdmin admin@zweitewebsite.de
    ServerName zweitewebsite.de
    ServerAlias www.zweitewebsite.de
    DocumentRoot /var/www/zweitewebsite
ErrorLog ${APACHE_LOG_DIR}/zweitewebsite_error.log
CustomLog ${APACHE_LOG_DIR}/zweitewebsite_access.log combined

Virtual Hosts aktivieren

sudo a2ensite meinewebsite.conf
sudo a2ensite zweitewebsite.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

SSL/TLS für Virtual Hosts

HTTPS ist heutzutage unverzichtbar. Let’s Encrypt bietet kostenlose SSL-Zertifikate.

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache

Folgen Sie den Anweisungen, um die Domains zu verifizieren und automatische Zertifikatserneuerungen einzurichten.

Performance-Optimierung

Apache kann durch einige Anpassungen ressourcenschonender und schneller arbeiten.

KeepAlive aktivieren

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

Module nur bei Bedarf aktivieren

sudo a2dismod status
sudo a2dismod autoindex

Caching einrichten

  • Mod_cache für dynamische Inhalte
  • Expires-Header für statische Inhalte
sudo a2enmod expires
sudo systemctl restart apache2

Monitoring und Logs

Die Überwachung von Apache-Logs hilft, Probleme frühzeitig zu erkennen und Performance zu analysieren.

Log-Dateien prüfen

tail -f /var/log/apache2/meinewebsite_access.log
tail -f /var/log/apache2/meinewebsite_error.log

Server-Status aktivieren

sudo a2enmod status
sudo systemctl restart apache2

Danach erreichbar unter: http://meinewebsite.de/server-status

Netzwerkkonfiguration

Ein korrekt konfiguriertes Netzwerk ist entscheidend für die Erreichbarkeit des Webservers.

IP-Adresse und Subnetz berechnen

Beispiel: IP 192.168.100.20/24

<math>
Subnetzadresse = 192.168.100.20 & 255.255.255.0 = 192.168.100.0
Broadcastadresse = 192.168.100.0 | ~255.255.255.0 = 192.168.100.255
</math>

Netzwerkinterface konfigurieren

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.100.20/24
      gateway4: 192.168.100.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Zusätzliche Best Practices

  • Regelmäßige Updates von Apache und Linux-Paketen
  • Backups der /var/www-Verzeichnisse und Konfigurationen
  • Firewall für HTTP/HTTPS Ports einrichten
  • Fail2ban zur Absicherung gegen Brute-Force-Angriffe
  • Verwendung von Mod_security für zusätzlichen Schutz

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.

Related Articles