Nginx Grundlagen
Version vom 29. Mai 2026, 07:01 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Einleitung == === Was ist Nginx? === * Webserver, Reverse Proxy und Load Balancer in einem * Erstveröffentlichung 2004 von Igor Sysoev (russischer Entwic…“)
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 |