open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

Apache vs. Nginx – Welcher Webserver ist besser?

Autor
Apache vs. Nginx – Welcher Webserver ist besser?

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.