Nginx Grundlagen
Zur Navigation springen
Zur Suche springen
Einleitung
Was ist Nginx?
- Webserver, Reverse Proxy und Load Balancer in einem
- Erstveröffentlichung 2004 von Igor Sysoev (russischer Entwickler)
- Ziel: das sogenannte C10k-Problem lösen – 10.000 gleichzeitige Verbindungen mit einem Server bedienen
- Heute einer der meistgenutzten Webserver weltweit
Architekturprinzip
- Klassisches Modell (Apache): ein Prozess oder Thread pro Verbindung
- Nginx-Modell: ereignisgesteuert, nicht-blockierend
- Ein Worker-Prozess verwaltet tausende Verbindungen gleichzeitig
- Speicher- und CPU-Bedarf wächst nicht proportional zur Verbindungszahl
Typische Einsatzbereiche
- Webserver
- Liefert statische Inhalte direkt aus dem Dateisystem; dynamische Inhalte werden per FastCGI/uWSGI an Backend-Prozesse weitergereicht (z. B. PHP-FPM)
- Reverse Proxy
- Nimmt Anfragen entgegen und leitet sie an Backend-Dienste weiter; TLS-Terminierung, Caching und Header-Manipulation zentral an einer Stelle
- Load Balancer
- Verteilt Anfragen auf mehrere Backend-Instanzen (Round-Robin, Least-Connections, IP-Hash)
Prozessmodell
- Ein Master-Prozess: liest Konfiguration, bindet Ports, verwaltet Worker
- Mehrere Worker-Prozesse: erledigen die eigentliche Arbeit
- Worker-Anzahl typischerweise gleich CPU-Kerne
- I/O-Modell:
epollunter Linux,kqueueunter BSD
Nginx vs. Apache – Kurzüberblick
| Kriterium | Nginx | Apache |
|---|---|---|
| Verbindungsmodell | ereignisgesteuert | prozess-/threadbasiert |
| Statische Inhalte | sehr effizient | solide |
| Dynamische Inhalte | via FastCGI/Proxy | nativ (mod_php etc.) |
| Konfiguration | zentral, hierarchisch | verteilt (.htaccess möglich) |
| Typischer Einsatz | Proxy, CDN-Edge, hoher Traffic | Shared Hosting, Legacy-Setups |