Zwei Architekturen, ein Ziel
Apache und Nginx verfolgen grundlegend unterschiedliche Architekturkonzepte. Apache nutzt ein prozessbasiertes Modell (eine Verbindung = ein Thread/Prozess), Nginx ein event-basiertes, asynchrones Modell. Dieser Unterschied hat massive Auswirkungen auf Performance und Skalierbarkeit.
Apache: Der flexible Platzhirsch
Apache HTTP Server existiert seit 1995 und ist durch sein Modul-System extrem flexibel. Viele PHP-Anwendungen (WordPress, Joomla, etc.) wurden auf Apache zugeschnitten.
Stärken:
- .htaccess: Verzeichnis-spezifische Konfiguration – perfekt für Shared Hosting
- Modul-System: mod_rewrite, mod_ssl, mod_php – flexibel erweiterbar
- PHP-Integration: mod_php läuft direkt im Apache-Prozess
- Dokumentation: Jahrzehnte an Ressourcen und Tutorials
- WordPress-Kompatibilität: Viele WordPress-Plugins setzen Apache voraus
Schwächen:
- Bei vielen gleichzeitigen Verbindungen deutlich langsamer als Nginx
- Höherer Speicherverbrauch pro Verbindung
- .htaccess verlangsamt Anfragen (wird bei jeder Request geladen)
Nginx: Performance als Leitprinzip
Nginx wurde 2004 explizit entwickelt, um das C10k-Problem zu lösen (10.000 gleichzeitige Verbindungen). Die event-basierte Architektur ist darauf optimiert, viele Verbindungen mit wenig Ressourcen zu verwalten.
Stärken:
- Performance: Bei statischen Inhalten und vielen Verbindungen deutlich schneller
- Effizienz: Geringer Speicherverbrauch auch bei hoher Last
- Reverse Proxy: Ausgezeichnet als Proxy vor App-Servern (Node.js, Gunicorn, etc.)
- Load Balancing: Eingebaut, kein Modul nötig
- Rate Limiting: Einfach konfigurierbar
Schwächen:
- Keine .htaccess-Unterstützung (alles in der Hauptkonfig)
- PHP braucht PHP-FPM als separaten Dienst
- Einstieg etwas steiler bei komplexen Konfigurationen
Performance-Vergleich
| Szenario | Gewinner |
|---|---|
| Statische Dateien (HTML, CSS, JS) | Nginx |
| Viele gleichzeitige Verbindungen | Nginx |
| PHP ohne FPM | Apache |
| Shared Hosting | Apache |
| Reverse Proxy | Nginx |
| Reverse Proxy mit TLS-Termination | Nginx |
Fazit
Für moderne Setups und neue Projekte empfehle ich Nginx. Die Performance-Vorteile sind bei heutigen Web-Anforderungen spürbar, und als Reverse Proxy vor PHP-FPM, Node.js oder Python-Apps ist Nginx die erste Wahl. Apache bleibt relevant für Legacy-Setups, WordPress-Shared-Hosting und Anwendungen, die .htaccess zwingend benötigen. In meinem Stack läuft Nginx als Reverse Proxy, während alle PHP-Anwendungen über PHP-FPM angebunden sind.