- Veröffentlicht am
- • How2-Tipps
Apache vs. Nginx – Welcher Webserver ist besser?
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
Ein praxisnaher Vergleich von Architektur, Performance, Konfiguration und Einsatzbereichen
Wenn es um Webserver geht, führt kaum ein Weg an diesen beiden Giganten vorbei: Apache HTTP Server und Nginx. Beide sind Open Source, beide liefern Websites aus – und beide haben treue Anhänger. Doch worin unterscheiden sie sich wirklich? Dieser Artikel vergleicht Architektur, Performance, Konfiguration und typische Einsatzzwecke – inklusive praxisnaher Beispiele.
1. Architektur – Prozesse vs. Ereignisse
Apache: Prozessbasiert
Apache arbeitet klassisch prozess- oder threadbasiert. Jeder Client (also z. B. ein Browser, der eine Seite aufruft) erhält einen eigenen Prozess oder Thread. Das sorgt für Stabilität und einfache Fehlereingrenzung, ist aber bei vielen gleichzeitigen Anfragen speicherintensiv.
Apache bietet verschiedene Multi-Processing-Module (MPMs):
- prefork – klassisch, stabil, gut für PHP (jeder Request = eigener Prozess)
- worker – effizienter durch Threads
- event – moderner, asynchron, reagiert besser auf viele gleichzeitige Anfragen
Vorteil: Robust und bewährt Nachteil: Höherer RAM-Verbrauch bei vielen gleichzeitigen Nutzern
Nginx: Ereignisbasiert und asynchron
Nginx wurde 2004 mit einem völlig neuen Konzept entwickelt: asynchrone, ereignisgesteuerte Verarbeitung. Statt für jede Verbindung einen Prozess zu starten, nutzt Nginx wenige Worker-Prozesse, die tausende Anfragen parallel handhaben können.
Das macht Nginx extrem ressourcenschonend – ideal für stark frequentierte Websites, Streaming-Plattformen oder APIs.
Vorteil: Hohe Performance bei minimalem Speicherverbrauch Nachteil: Etwas komplexere Fehlerdiagnose und weniger flexibel bei dynamischen Inhalten
2. Performance im Vergleich
In Benchmarks zeigt sich klar:
- Bei statischen Dateien (HTML, Bilder, CSS, JS) ist Nginx bis zu 2–3× schneller als Apache.
- Bei dynamischen Inhalten (PHP, Python, etc.) ist der Unterschied geringer, da hier oft PHP-FPM oder FastCGI die Arbeit übernehmen.
| Szenario | Apache | Nginx |
|---|---|---|
| 10 gleichzeitige Requests | Schnell | Sehr schnell |
| 1000 gleichzeitige Requests | Mittel | Stabil & schnell |
| Dynamische PHP-Seite | Gut | Gut (über PHP-FPM) |
| SSL/TLS-verschlüsselte Seiten | Stabil | Effizienter |
| CPU-/RAM-Verbrauch | Höher | Deutlich geringer |
Fazit: Nginx punktet bei hoher Last und statischen Inhalten, Apache überzeugt mit Flexibilität und Kompatibilität.
3. Konfiguration und Handhabung
Apache – flexibel bis ins Detail
Apache erlaubt fast alles per .htaccess.
Dadurch können Webentwickler selbst Änderungen vornehmen, z. B. Weiterleitungen, Zugriffsbeschränkungen oder Header-Anpassungen.
Für Shared-Hosting-Umgebungen ist das ideal.
Beispiel .htaccess:
RewriteEngine On
RewriteRule ^blog/(.*)$ blog.php?post=$1 [L]
Nachteile:
.htaccess wird bei jedem Request geprüft – das kostet Performance.
Nginx – klar und schnell
Nginx erlaubt keine .htaccess-Dateien. Alle Regeln stehen in einer zentralen Konfigurationsdatei, was effizienter, aber weniger flexibel ist.
Beispiel (Rewrite-Regel in Nginx):
location /blog/ {
rewrite ^/blog/(.*)$ /blog.php?post=$1 last;
}
Vorteil: Schnellere Verarbeitung Nachteil: Änderungen erfordern meist Root-Zugriff
4. Sicherheit und Erweiterbarkeit
Beide Server unterstützen HTTPS, HTTP/2, und umfangreiche Sicherheitsfeatures. Apache punktet mit mod_security als integrierter Web Application Firewall (WAF). Nginx bietet dagegen durch seine Architektur eine geringere Angriffsfläche und wird häufig als Reverse Proxy vor Apache eingesetzt.
5. Typische Einsatzszenarien
| Einsatzbereich | Empfehlung |
|---|---|
| Klassisches Webhosting mit PHP, CMS (z. B. WordPress, TYPO3) | ✅ Apache |
| Hochlast-Webseiten mit vielen statischen Dateien | ✅ Nginx |
| Reverse Proxy, Load Balancer, Microservices | ✅ Nginx |
| Legacy-Systeme oder .htaccess-basierte Plattformen | ✅ Apache |
| Kombination beider Systeme (Nginx als Proxy vor Apache) | 🧠 Beste Lösung vieler Admins |
6. Praxisnahe Benchmark-Beispiele
Ein einfacher Test mit ab (ApacheBench) bei 1000 gleichzeitigen Requests:
Test 1: Statische Datei (index.html, 2 KB)
- Apache: 8.500 Requests/s
- Nginx: 21.000 Requests/s
Test 2: Dynamische PHP-Seite über PHP-FPM
- Apache (mod_php): 4.800 Requests/s
- Nginx (FastCGI): 5.300 Requests/s
Test 3: HTTPS aktiv
- Apache: 6.200 Requests/s
- Nginx: 8.700 Requests/s
Ergebnis: Nginx ist effizienter, Apache bleibt kompatibler.
Beide Webserver sind exzellent – die Wahl hängt vom Einsatzzweck ab:
- Apache: Ideal für klassische Webprojekte, CMS, .htaccess-basierte Umgebungen, einfache Administration.
- Nginx: Perfekt für Hochlastsysteme, Microservices, Reverse Proxies, moderne Architekturen.
- Hybrid-Setup: Nginx als Reverse Proxy vor Apache kombiniert Performance und Flexibilität.
Kurz gesagt: Nginx ist der Sprinter – Apache der Marathonläufer. Wer beides kombiniert, bekommt das Beste aus zwei Welten.