Header Background
 
 
 

NGINX ist eine Open-Source-Software, die hauptsächlich als Webserver bekannt ist, aber auch als Reverse-Proxy-Server, Load-Balancer und HTTP-Cache fungiert. Seit seiner Einführung im Jahr 2004 hat sich NGINX aufgrund seiner Leistungsfähigkeit, Flexibilität und Zuverlässigkeit zu einem der am häufigsten verwendeten Webserver weltweit entwickelt.

Architektur und Design

NGINX nutzt eine ereignisgesteuerte, nicht-blockierende Architektur, um eine hohe Anzahl gleichzeitiger Verbindungen effizient zu handhaben. Im Gegensatz zu traditionellen Webservern, die für jede Verbindung einen separaten Thread oder Prozess verwenden, arbeitet NGINX mit einem Master-Prozess und mehreren Worker-Prozessen.

Master- und Worker-Prozesse

  • Master-Prozess: Verwaltet die Konfiguration, startet und überwacht die Worker-Prozesse.
  • Worker-Prozesse: Handhaben die eigentlichen Verbindungen. Jeder Worker-Prozess kann tausende von Verbindungen gleichzeitig bearbeiten, dank eines nicht-blockierenden I/O-Modells.

Ereignisgesteuertes Modell
Im ereignisgesteuerten Modell registriert ein Worker-Prozess Ereignisse (z. B. eingehende Verbindungen, Lesebereitschaft von Dateien) und bearbeitet andere Aufgaben, während er auf die Ereignisse wartet. Dies wird durch Betriebssystemfunktionen wie epoll (Linux) ermöglicht.

Module und Erweiterbarkeit

NGINX ist modular aufgebaut und ermöglicht das Hinzufügen von Funktionen durch verschiedene Module:

  • HTTP-Core-Modul: Grundlegende HTTP-Funktionen.
  • HTTP-Proxy-Modul: Weiterleitung von Anfragen an Backend-Server.
  • HTTP-SSL-Modul: Unterstützung für SSL/TLS.
  • Stream-Modul: Proxying und Load Balancing von TCP- und UDP-Datenströmen.

Seit Version 1.9.11 unterstützt NGINX dynamische Module, die zur Laufzeit geladen und entladen werden können.

Load Balancing und Reverse Proxy

Load Balancing
NGINX verteilt eingehende Anfragen auf mehrere Backend-Server, was die Skalierbarkeit und Verfügbarkeit von Webanwendungen erhöht. Unterstützte Algorithmen sind:

  • Round-Robin: Zyklische Verteilung.
  • Least Connections: Verteilung basierend auf der Anzahl aktiver Verbindungen.
  • IP-Hash: Sitzungsbeständige Verteilung basierend auf der Client-IP.

Reverse Proxy
Als Reverse Proxy nimmt NGINX Anfragen von Clients entgegen und leitet sie an Backend-Server weiter. Vorteile sind:

  • Sicherheit: Schutz der Backend-Server vor direktem Zugriff.
  • Lastverteilung: Gleichmäßige Verteilung der Anfragen.
  • Caching: Zwischenspeichern häufiger Inhalte.
  • SSL-Terminierung: Entschlüsselung von SSL/TLS-Verbindungen.

HTTP-Caching
NGINX kann als HTTP-Cache genutzt werden, um die Leistung zu verbessern, indem häufig angeforderte Inhalte zwischengespeichert werden. Dies entlastet die Backend-Server und verkürzt die Antwortzeiten für Clients.

Caching-Mechanismen

  • Proxy-Cache: Zwischenspeichern von Backend-Inhalten.
  • FastCGI-Cache: Zwischenspeichern von FastCGI-Inhalten.
  • Microcaching: Kurzes Zwischenspeichern dynamischer Inhalt

Anwendungsbeispiele

Webserver
Als Webserver dient NGINX dazu, statische Inhalte wie HTML-Dateien, Bilder und Videos zu liefern. Durch seine effiziente Ressourcennutzung und seine Fähigkeit, tausende von Verbindungen gleichzeitig zu handhaben, ist NGINX besonders für stark frequentierte Websites geeignet.

Reverse Proxy
In einer Reverse-Proxy-Konfiguration leitet NGINX Anfragen von Clients an Backend-Server weiter. Dies verbessert die Sicherheit, da die Backend-Server vor direktem Zugriff geschützt sind, und ermöglicht Lastverteilung, Caching und SSL-Terminierung.

Load Balancer
NGINX verteilt eingehende Anfragen gleichmäßig auf eine Gruppe von Backend-Servern. Es unterstützt verschiedene Load-Balancing-Algorithmen wie Round-Robin, Least Connections und IP-Hash.

HTTP-Cache
NGINX kann als Cache-Server fungieren, um häufig angeforderte Inhalte zwischenzuspeichern und so die Last auf den Backend-Servern zu reduzieren und die Antwortzeiten zu verkürzen.

Vorteile von NGINX

  • Hohe Leistung: Dank seiner ereignisgesteuerten Architektur kann NGINX eine große Anzahl von gleichzeitigen Verbindungen mit minimalem Ressourcenverbrauch handhaben.
  • Skalierbarkeit: NGINX lässt sich leicht horizontal skalieren, indem einfach weitere Server hinzugefügt werden.
  • Flexibilität: Durch seine modulare Architektur und umfangreiche Konfigurationsmöglichkeiten kann NGINX an eine Vielzahl von Anwendungsfällen angepasst werden.
  • Stabilität und Zuverlässigkeit: NGINX ist bekannt für seine Stabilität und kann unter hoher Last zuverlässig arbeiten.

Nachteile von NGINX

  • Komplexität der Konfiguration: Die Flexibilität und Leistungsfähigkeit von NGINX kommen mit einer komplexen Konfigurationssyntax, die eine steile Lernkurve haben kann.
  • Eingeschränkte Unterstützung für dynamische Inhalte: Im Vergleich zu Webservern wie Apache kann NGINX bei der direkten Ausführung dynamischer Inhalte (wie PHP) komplizierter sein und erfordert oft zusätzliche Software wie PHP-FPM.
  • Community-Support: Obwohl NGINX eine große Benutzerbasis hat, kann der Community-Support in einigen Bereichen im Vergleich zu kommerziellen Alternativen weniger umfassend sein.

Fazit

NGINX ist eine leistungsstarke und flexible Softwarelösung, die weit über die reine Bereitstellung von Webinhalten hinausgeht. Seine ereignisgesteuerte Architektur ermöglicht es ihm, eine große Anzahl von Verbindungen effizient zu handhaben, was es zu einer idealen Wahl für stark frequentierte Websites und Anwendungen macht. Trotz der möglichen Komplexität bei der Konfiguration und der eingeschränkten Unterstützung für einige dynamische Inhalte bietet NGINX durch seine Skalierbarkeit, Stabilität und Vielseitigkeit zahlreiche Vorteile, die es zu einem unverzichtbaren Werkzeug in der modernen IT-Infrastruktur machen.

Hier finden Sie unser Angebot zum Thema NGINX Schulung.

Autor: Florian Deinhard,
Juli 2024

 
 
 

Diese Seite weiterempfehlen:

0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel
Warnung Icon Sie haben in Ihrem Browser Javascript deaktiviert! Bitte aktivieren Sie Javascript um eine korrekte Darstellung und Funktionsweise von IT-Schulungen zu gewährleisten. Warnung Icon