Definition: Webserver mit Load Balancer und API Gateway Was ist NGINX?
Die von Igor Sysoev entwickelte Software NGINX beinhaltet einen Webserver, E-Mail-Proxy und Reverse Proxy. Sie ist unter BSD-Lizenz frei verfügbar und eignet sich dank der ressourcenschonenden Arbeitsweise besonders gut für Webseiten mit hohem Besucher- und Verkehrsaufkommen. Unter anderem setzen Netflix und WordPress NGINX ein.
Anbieter zum Thema

NGINX (ausgeprochen „engine x“) ist ein unter BSD-Lizenz stehender Webserver und Reverse Proxy. Die Software NGINX ist 2004 erschienen und wurde von Igor Sysoev entwickelt. Sie beinhaltet einen Webserver, E-Mail-Proxy und Reverse Proxy und steht unter BSD-Lizenz. Darüberhinaus ist seit 2011 die kostenpflichtige Premium-Version NGINX Plus verfügbar, die offiziellen Support beinhaltet und erweiterte Funktionen bietet. Ursprünglich war NGINX für die russische Suchmaschine Rambler konzipiert, für die sie noch heute eingesetzt wird.
Wesentliche Merkmale von NGINX sind der schonende Umgang mit den Serverressourcen und die hohe Performance. Dies macht NGINX prädestiniert für den Einsatz für Webseiten mit hohem User- und Trafficaufkommen. Circa zwei Drittel der 10.000 trafficreichsten Webseiten nutzen NGINX. Der Marktanteil des NGINX-Webservers liegt weltweit mittlerweile im zweistelligen Prozentbereich. Bei Domains mit der Endung .ru beträgt der Marktanteil sogar über 60 Prozent. Webseiten, die den Webserver verwenden, sind beispielsweise der Streamingdienst Netflix, WordPress, t3n.de, Golem.de, SourceForge, GitHub, Doodle, SoundCloud und viele mehr. NGINX konkurriert mit anderen Webservern wie dem Apache Webserver, dem Google Web Server und dem Webserver von Microsoft mit dem Namen Internet Information Services (IIS). Die Software arbeitet auf Systemen mit Linux- oder Windows-Betriebssystem. Die aktuellste Version (Stand Mai 2019) ist NGINX 1.17.0.
Die wesentlichen Merkmale von NGINX
NGINX besitzt einen modularen Aufbau und übernimmt verschiedene Aufgaben. So lassen sich mit der Software nicht nur Webserver realisieren. NGINX kann auch als Reverse Proxy oder als Loadbalancer fungieren. Mit dem NAXSI-Modul wird NGINX sogar zu einer leistungsfähigen Web Application Firewall. Die grundsätzliche Arbeitsweise von NGINX ist ereignisgesteuert und asynchron. Dies hat den Vorteil, dass nicht für jede einzelne Anfrage ein neuer Prozess erzeugt werden muss. Die Anzahl der Anfragen hat kaum Einfluss auf die Leistung der Software. Mehrere Tausend Anfragen lassen sich mit wenig Speicherverbrauch und geringer CPU-Belastung gleichzeitig bearbeiten.
NGINX und die Bearbeitung dynamischer Inhalte wie PHP-Anfragen
Im Gegensatz zum Apache Webserver kann der NGINX-Server dynamische Inhalte nicht selbst verarbeiten. Der Server nimmt dynamische Anfragen wie PHP-Anfragen entgegen und leitet sie an einen separaten Prozess weiter. Ein PHP-Interpreter bearbeitet die Anfrage und liefert das Ergebnis an NGINX zurück. Für die Bearbeitung der PHP-Anfragen lässt sich beispielsweise der FastCGI Process Manager (PHP-FPM) nutzen. Zunächst bedeutet die Auslagerung der Bearbeitung dynamischer Inhalte erhöhten Konfigurationsaufwand. Doch letztendlich reduziert dieses Konzept die Belastung des NGINX-Servers und macht das Gesamtsystem wesentlich performanter. Direkt nach der Weiterleitung der Anfrage steht der NGINX-Webserver wieder mit voller Leistungsfähigkeit zur Verfügung.
NGINX und die gängigen Content Management Systeme und Onlineshop-Systeme
Nahezu alle gängigen Content Management Systeme (CMS) und Onlineshop-Systeme arbeiten mit dynamischen PHP-Inhalten. Zwar verarbeitet NGINX, wie im vorigen Kapitel erläutert, die PHP-Anfragen etwas anders als Apache, doch ist die Software mit allen PHP-Funktionen voll kompatibel. Grundsätzlich lassen sich alle wichtigen CMS wie WordPress, Joomla, TYPO3 und Drupal sowie alle gängigen Onlineshop-Systeme wie Magento, Shopware oder PrestaShop unter NGINX problemlos betreiben. Eine Besonderheit stellen .htaccess-Dateien dar. NGINX kennt keine .htaccess-Dateien und konfiguriert Regeln wie Weiterleitungen oder Rewrite Rules direkt in der NGINX-Konfiguration. Unter Umständen ist bei den Systemen eine Anpassung der Konfiguration vorzunehmen. Webhoster bieten für die NGINX-Konfiguration oft Hilfsmittel wie einen .htaccess-Konverter oder spezielle Administrationssoftware. Zudem existieren für die gängigen Content Management Systeme und Onlineshop-Systeme vorgefertigte NGINX-Konfigurationen, die sich mit wenigen Mausklicks übernehmen lassen.
Abgrenzung von NGINX und Apache
NGINX besitzt eine grundlegend andere Architektur als Apache. Während bei Apache beispielsweise für die Bearbeitung dynamischer Inhalte lediglich ein Modul zu aktivieren ist, benötigt ein NGINX-Server einen separaten Hilfsprozess. Auch alle eingehenden Verbindungen werden von Apache anders bearbeitet. Für jede eingehende Verbindung startet Apache einen Prozess oder Thread. Sind viele Verbindungen vorhanden, ist das System durch die vielen separaten Prozesse stark belastet und die Leistung des Webservers sinkt. Bei NGINX gibt es nur wenige Prozesse, von denen jeder viele tausend Verbindungen halten und bearbeiten kann. Ein weiterer Unterschied zwischen Apache und NGINX ist, wie im vorigen Kapitel angesprochen, die bei NGINX nicht vorhandene .htaccess-Datei.
Die wichtigsten Vorteile von NGINX
Die wichtigsten Vorteile von NGINX sind kurz zusammengefasst folgende:
- schlanke Programmierung
- geringer Speicherbedarf
- geringe CPU-Belastung
- ereignisbasierte Arbeitsweise mit performanter Bearbeitung vieler gleichzeitiger Anfragen
- kurze Ladezeiten der Seiten auch bei hoch belasteten Webservern mit viel Traffic und Verbindungen
- durch die kürzeren Ladezeiten der Webseiten verbessert sich das Suchmaschinenranking und Konversionsraten erhöhen sich
- Performanceverbesserung dank Auslagerung der Bearbeitung dynamischer Inhalte zu einem Hilfsprozess
- optimales Zusammenwirken mit schneller SSD-Speichertechnik
- geeignet für datenbanklastige Anwendungen
- viele Module für Zusatzaufgaben verfügbar
- kommerzielle NGINX Plus-Variante mit Supportleistungen und erweiterter Funktionalität verfügbar
- Unterstützung aller gängigen Content Management Systeme und Onlineshop-Systeme
Die wichtigsten Nachteile von NGINX
Neben den vielen Vorteilen kann die Nutzung on NGINX auch einige Nachteile mit sich bringen. Folgende Nachteile lassen sich aufführen:
- keine Unterstützung für die Vergabe von Zugriffsrechten oder das Anlegen von Umleitungen und Rewrites per .htaccess-Datei
- zusätzliche Installation eines Softwarepakets für die Verarbeitung dynamischer Inhalte notwendig
- Änderungen in der globalen Konfiguration von NGINX erfordern ein Neuladen des Servers und können bei Fehlern die komplette Serverinstanz betreffen
- allgemein etwas höherer manueller Konfigurationsaufwand
NGINX Plus - die kommerzielle Variante der NGINX-Software
NGINX existiert nicht nur in einer frei verfügbaren Open-Source-Version, sondern ist auch als kostenpflichtige Premium-Version einsetzbar. Diese nennt sich NGINX Plus und wird vom Unternehmen NGINX Inc. betreut. Seit 2019 gehört NGINX Inc. zum Unternehmen F5 Networks. Die kommerzielle NGINX-Variante bietet Support, einen gemanagten Release-Prozess durch NGINX Inc. und zahlreiche erweiterte Funktionen. Zum erweiterten Funktionsumfang zählen beispielsweise:
- Monitoring-Funktionen wie das Live Activity Monitoring
- Management-Funktionen
- dynamische Rekonfiguration ohne Reload der Serverprozesse
- DNS Service-Discovery Integration
- Cache-purging API
- MP4 Bandbreitenkontrolle
Mit dem Zukauf von NGINX durch F5 sieht sich der Web Application Security-Anbieter gut gerüstet für NetOps- und DevOps-Szenarien und beschreibt das auf der Firmenwebsite folgendermaßen: „Anwendungsdienste vom Code bis zum Kunden: F5 und NGINX überbrücken die Kluft zwischen Entwicklung und Betrieb mit einem bewährten Multi-Cloud-Anwendungsportfolio, das es ermöglicht, sich auf die Entwicklung und Bereitstellung skalierbarer, leistungsstarker und sicherer Anwendungen zu konzentrieren.“

Zum Special: Definitionen rund um Cloud Computing
(ID:45986069)