How2-Tipps

Apache2 Konfiguration – Grundlagen, Beispiele & Best Practices

Apache2 bietet umfassende Konfigurationsmöglichkeiten für Webserver. In diesem Blogbeitrag lernst du die wichtigsten Optionen, Strukturen und bekommst konkrete Konfigurationsbeispiele für deine Projekte.

1 min Lesezeit
Apache2 Konfiguration – Grundlagen, Beispiele & Best Practices

So richtest du deinen Apache-Webserver richtig ein

Der Apache HTTP Server (Apache2) ist extrem flexibel – und das liegt vor allem an seiner modularen, gut dokumentierten Konfiguration. Egal ob du nur eine statische Webseite hosten oder eine komplexe PHP-Anwendung absichern willst: Apache bietet die nötigen Werkzeuge. In diesem Artikel erfährst du, wie Apache2 konfiguriert wird, welche Dateien eine Rolle spielen und bekommst viele praxisnahe Konfigurationsbeispiele.

Verzeichnisstruktur von Apache2

Je nach Distribution (Debian/Ubuntu vs. RHEL/CentOS) unterscheidet sich der Aufbau leicht:

Unter Debian/Ubuntu:

`` /etc/apache2/ ├── apache2.conf # Hauptkonfiguration ├── sites-available/ # Konfig. für virtuelle Hosts (inaktiv) /├── sites-enabled/ # Aktive Konfigurationen (Symlinks) /├── mods-available/ # Alle verfügbaren Module /├── mods-enabled/ # Aktivierte Module (Symlinks) /├── conf-available/ # Allgemeine Zusatzconfigs /├── conf-enabled/ # Aktivierte Zusatzconfigs ``

Unter RHEL/CentOS:

`` /etc/httpd/ ├── conf/httpd.conf # Hauptkonfiguration ├── conf.d/ # Zusatzkonfigurationen ├── conf.modules.d/ # Modulkonfigurationen ``

Die zentrale Konfigurationsdatei

Die Datei apache2.conf bzw. httpd.conf ist der Ausgangspunkt aller Konfiguration. Hier werden globale Einstellungen vorgenommen:

Beispielauszug:

``apache ServerTokens Prod ServerSignature Off Timeout 60 KeepAlive On MaxKeepAliveRequests 100 ``

Virtuelle Hosts – mehrere Websites auf einem Server

Virtuelle Hosts erlauben es, mehrere Domains/Webseiten auf einem Apache-Server zu betreiben.

Beispiel 1: Einfache Konfiguration für example.com

Datei: /etc/apache2/sites-available/example.com.conf

```apache ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html

Options Indexes FollowSymLinks AllowOverride All Require all granted

ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined ```

Aktivieren und neu laden:

``bash a2ensite example.com.conf systemctl reload apache2 ``

HTTPS aktivieren (Let’s Encrypt + SSL)

Beispiel 2: Konfiguration für HTTPS

```apache ServerName example.com DocumentRoot /var/www/example.com/public_html SSLEngine on SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

Options -Indexes +FollowSymLinks AllowOverride All Require all granted

ErrorLog ${APACHE_LOG_DIR}/example.com-ssl-error.log CustomLog ${APACHE_LOG_DIR}/example.com-ssl-access.log combined ```

Umleitungen einrichten (Redirects)

Beispiel 3: HTTP auf HTTPS umleiten

``apache ServerName example.com Redirect permanent / https://example.com/ ``

Beispiel 4: Weiterleitung per .htaccess

``apache RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ``

Voraussetzung: mod_rewrite muss aktiviert sein:

``bash a2enmod rewrite systemctl restart apache2 ``

Zugriffsschutz einrichten

Beispiel 5: Passwortschutz mit .htaccess

``apache AuthType Basic AuthName "Zugang nur für Admins" AuthUserFile /etc/apache2/.htpasswd Require valid-user ``

.htpasswd-Datei erzeugen:

``bash htpasswd -c /etc/apache2/.htpasswd benutzername ``

Fehlerseiten definieren

🔧 Beispiel 6: Eigene Fehlerseiten

``apache ErrorDocument 404 /error/404.html ErrorDocument 403 /error/403.html ErrorDocument 500 /error/500.html ``

Performance-Tuning (Auszug)

In mpm_prefork.conf oder mpm_event.conf:

``apache StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 3000 ``

Best Practices

| Tipp | Beschreibung | | ---------------------------------- | -------------------------------------------------------------- | | 🔐 Sicherheitsoptionen | ServerTokens Prod, ServerSignature Off, Options -Indexes | | 🧩 Nur nötige Module aktivieren | z. B. mod_php, mod_ssl, mod_rewrite | | 📄 .htaccess vermeiden | Wo möglich, direkt in der VHost-Konfiguration arbeiten | | 🚫 Directory Browsing deaktivieren | Options -Indexes | | 🚦 Logs aktiv überwachen | /var/log/apache2/.log bzw. /var/log/httpd/.log | | 📦 Sites sauber trennen | für jede Domain eigene DocumentRoot, Logs, Konfigs |

Fazit

Apache2 bietet eine hochmodulare und kontrollierbare Serverumgebung. Mit den richtigen Konfigurationen lässt sich fast jede Anforderung abbilden – von kleinen statischen Seiten bis hin zu großen Portalen mit SSL, Redirects und Zugangsschutz.

Mit etwas Übung wird Apache nicht nur verständlich – sondern zu einem deiner mächtigsten Werkzeuge beim Hosting.