Nginx Vs Apache Vergleich
Nginx vs Apache: Welcher Webserver ist besser?
Apache und Nginx sind die beliebtesten Webserver weltweit. Aber welcher ist der richtige für Ihr Projekt? In diesem Vergleich zeigen wir die Unterschiede, Stärken und Schwächen beider Server.
Kurzer Überblick
| Eigenschaft | Nginx | Apache |
|---|---|---|
| Erschienen | 2004 | 1995 |
| Architektur | Event-basiert | Prozess-basiert |
| Marktanteil | ~34% | ~31% |
| Ideal für | Statische Inhalte, hohe Last | Dynamische Inhalte, .htaccess |
Performance
Nginx gewinnt bei:
- ✅ Statische Dateien (HTML, CSS, JS, Bilder)
- ✅ Viele gleichzeitige Verbindungen
- ✅ Weniger RAM-Verbrauch
- ✅ Reverse Proxy & Load Balancing
Apache gewinnt bei:
- ✅ Dynamische Inhalte (mit mod_php)
- ✅ .htaccess Unterstützung
- ✅ Mehr Module verfügbar
- ✅ Einfachere Konfiguration für Einsteiger
Benchmark-Vergleich
| Test | Nginx | Apache |
|---|---|---|
| Statische Seite (1000 req/s) | ~50ms | ~120ms |
| RAM bei 10.000 Verbindungen | ~2.5 MB | ~1000 MB |
| PHP-Seite (mit FPM/mod_php) | ~gleichwertig | ~gleichwertig |
Architektur
Apache: Prozess-basiert
Anfrage 1 → Prozess 1 Anfrage 2 → Prozess 2 Anfrage 3 → Prozess 3 ...
Jede Anfrage bekommt einen eigenen Prozess oder Thread. Bei vielen Anfragen steigt der RAM-Verbrauch stark.
Nginx: Event-basiert
┌→ Anfrage 1
Worker-Prozess 1 ───┼→ Anfrage 2
└→ Anfrage 3
┌→ Anfrage 4
Worker-Prozess 2 ───┼→ Anfrage 5
└→ Anfrage 6
Wenige Worker-Prozesse verarbeiten viele Anfragen gleichzeitig. Sehr effizient bei hoher Last.
Konfiguration
Nginx Beispiel
server {
listen 80;
server_name example.de;
root /var/www/html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Apache Beispiel
<VirtualHost *:80>
ServerName example.de
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
.htaccess: Der große Unterschied
| Feature | Nginx | Apache |
|---|---|---|
| .htaccess Support | ❌ Nein | ✅ Ja |
| Konfiguration ändern | Server-Config + Reload | Per .htaccess (kein Reload) |
Wann welchen Server?
Nginx empfohlen für:
- Hoher Traffic / viele Besucher
- Statische Websites
- Reverse Proxy vor anderen Servern
- Load Balancing
- API-Server
- Microservices
Apache empfohlen für:
- Shared Hosting
- WordPress / CMS mit .htaccess
- Wenn viele Module benötigt werden
- Einfache Konfiguration wichtig
- Legacy-Anwendungen
Kombination: Das Beste aus beiden
Viele nutzen Nginx als Reverse Proxy vor Apache:
┌─────────┐ ┌─────────┐
Besucher ───→│ Nginx │ ───→ │ Apache │
│(Proxy) │ │ (PHP) │
└─────────┘ └─────────┘
│
↓
Statische Dateien
direkt ausliefern
Vorteile:
- Nginx liefert statische Dateien schnell aus
- Apache verarbeitet PHP mit .htaccess
- Nginx als Schutzschicht (DDoS, Rate Limiting)
Fazit
| Kriterium | Gewinner |
|---|---|
| Performance (statisch) | 🏆 Nginx |
| RAM-Effizienz | 🏆 Nginx |
| Einfachheit | 🏆 Apache |
| .htaccess | 🏆 Apache |
| Reverse Proxy | 🏆 Nginx |
| Module / Flexibilität | 🏆 Apache |