Apache und Nginx dominieren den Webserver-Markt. Doch welcher ist besser? Die Antwort hängt von Ihrem Anwendungsfall ab. In diesem Artikel vergleichen wir beide Webserver.
Apache HTTP Server
Apache ist der Klassiker unter den Webservern und seit 1995 verfügbar. Er war jahrelang der meistgenutzte Webserver weltweit.
Vorteile von Apache
- Flexibilität: Modulares System, fast alles ist anpassbar
- .htaccess-Dateien: Konfiguration pro Verzeichnis möglich
- Dokumentation: Riesige Community, viele Tutorials
- Kompatibilität: Funktioniert mit praktisch allem
- mod_php: PHP direkt im Server-Prozess (einfachste Einrichtung)
Nachteile von Apache
- Ressourcenverbrauch: Höherer RAM-Bedarf bei vielen Verbindungen
- Performance: Bei statischen Dateien langsamer als Nginx
- Konfiguration: Kann unübersichtlich werden
Apache installieren (Ubuntu/Debian)
apt update
apt install apache2
systemctl enable apache2
systemctl start apache2Nginx
Nginx (ausgesprochen "Engine-X") wurde 2004 entwickelt, um die Schwächen von Apache bei hoher Last zu adressieren.
Vorteile von Nginx
- Performance: Exzellent bei statischen Dateien und vielen Verbindungen
- Ressourceneffizienz: Geringer RAM-Verbrauch
- Reverse Proxy: Ideal als Load Balancer und Proxy
- Moderne Architektur: Event-basiert statt Thread-basiert
- Konfiguration: Übersichtliche, konsistente Syntax
Nachteile von Nginx
- Keine .htaccess: Alle Konfigurationen zentral
- PHP-Integration: Benötigt PHP-FPM (zusätzlicher Dienst)
- Weniger Module: Kleineres Ökosystem als Apache
Nginx installieren (Ubuntu/Debian)
apt update
apt install nginx
systemctl enable nginx
systemctl start nginxDirekter Vergleich
| Kriterium | Apache | Nginx | |-----------|--------|-------| | Statische Dateien | Gut | Exzellent | | Dynamische Inhalte | Gut (mod_php) | Gut (PHP-FPM) | | Viele Verbindungen | Mäßig | Exzellent | | RAM-Verbrauch | Höher | Niedriger | | Konfiguration | Flexibel (.htaccess) | Zentral | | Reverse Proxy | Möglich | Exzellent | | Lernkurve | Flacher | Steiler | | Marktanteil 2024 | ~30% | ~35% |
Architektur-Unterschiede
Apache: Prozess-/Thread-basiert
Apache erstellt für jede Verbindung einen eigenen Prozess oder Thread. Das ist flexibel, verbraucht aber bei vielen gleichzeitigen Verbindungen viel RAM.
Verbindung 1 → Prozess 1
Verbindung 2 → Prozess 2
Verbindung 3 → Prozess 3
...Nginx: Event-basiert
Nginx verwendet einen Event-Loop, der viele Verbindungen in wenigen Worker-Prozessen verarbeitet. Effizienter bei hoher Last.
Worker 1 → Verbindung 1, 2, 3, 4, 5...
Worker 2 → Verbindung 6, 7, 8, 9, 10...Wann Apache wählen?
- Shared Hosting: .htaccess ermöglicht Konfiguration ohne Root-Zugriff
- WordPress mit vielen Plugins: Manche Plugins erwarten Apache
- Legacy-Anwendungen: Ältere PHP-Apps oft auf Apache ausgelegt
- Schneller Einstieg: mod_php ist am einfachsten einzurichten
Wann Nginx wählen?
- Hoher Traffic: Besser skalierbar bei vielen Besuchern
- Statische Websites: Deutlich schneller
- Reverse Proxy: Ideal für Microservices, Docker, Load Balancing
- Ressourcen sparen: Weniger RAM-Verbrauch auf kleinen Servern
- Moderne Stacks: Node.js, Python, Go hinter Nginx
Die Kombination: Nginx + Apache
Eine beliebte Lösung: Nginx als Frontend (Reverse Proxy), Apache als Backend.
Browser → Nginx → Apache (PHP)
↘ Statische Dateien direkt von NginxNginx liefert statische Dateien direkt aus und leitet nur dynamische Anfragen an Apache weiter. Das Beste aus beiden Welten.
Beispiel-Konfiguration (Nginx als Proxy)
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* \.(css|js|jpg|png|gif|ico)$ {
root /var/www/html;
expires 30d;
}
}Performance-Vergleich
Bei einem einfachen Benchmark mit statischen Dateien:
| Metrik | Apache | Nginx | |--------|--------|-------| | Requests/Sekunde | ~8.000 | ~15.000 | | RAM bei 1000 Verbindungen | ~200 MB | ~50 MB | | Latenz | ~15 ms | ~8 ms |
Werte sind beispielhaft und variieren je nach Konfiguration und Hardware.
Fazit
Für Einsteiger: Apache ist einfacher einzurichten, besonders mit PHP.
Für Performance: Nginx ist die bessere Wahl bei hohem Traffic.
Unsere Empfehlung: Für neue Projekte empfehlen wir Nginx mit PHP-FPM. Die Einrichtung ist nur minimal komplexer, aber die Performance-Vorteile sind spürbar. Wer von Apache kommt, kann langsam migrieren oder beide kombinieren.