Definition
NGINX (ausgesprochen "engine-x") ist ein leistungsstarker Open-Source-Webserver und Reverse Proxy, der einen großen Teil des modernen Webs antreibt. Er liefert statische Dateien direkt aus, leitet Traffic an Anwendungs-Backends wie PHP-FPM, Node.js und Python-WSGI/ASGI-Server weiter, terminiert SSL/TLS, führt Load-Balancing über mehrere Upstream-Server durch und cached HTTP-Antworten, um die Backend-Last zu reduzieren. NGINX ist der Standard-Webserver auf den meisten VPS und dedizierten Linux-Hosts und hat Apache als Standard für stark frequentierte Sites überholt, was auf seine asynchrone, ereignisgesteuerte Architektur zurückgeht: Eine kleine, feste Anzahl von Worker-Prozessen verarbeitet jeweils Tausende von Verbindungen mittels Non-Blocking-I/O, anstatt wie im traditionellen Apache-Modell je Verbindung einen Prozess oder Thread zu starten, was unter Last deutlich mehr Speicher verbraucht. Das ist vor allem jenseits einiger hundert gleichzeitiger Nutzer relevant; bei einer kleinen Unternehmenspräsenz ist die Wahl kaum spürbar. Die meisten Managed-WordPress-Hosts setzen unter der Haube auf NGINX, häufig in Kombination mit FastCGI-Cache, allerdings lässt sich .htaccess-basierte Konfiguration nicht übernehmen.
So funktioniert es
NGINX wird über eine hierarchische Textdatei (nginx.conf) konfiguriert, die Server, Locations, Upstreams und Caches definiert. Es kann ein reiner Webserver, ein reiner Reverse Proxy oder beides sein. NGINX Plus ist die kostenpflichtige kommerzielle Version mit Zusatzfunktionen; die Open-Source-Variante von NGINX ist das, was die meisten Websites tatsächlich einsetzen.
Warum es wichtig ist
Für statische Inhalte und Reverse-Proxying ist NGINX schneller und ressourcenschonender als Apache. Bei hochfrequentierten Websites ist der Unterschied relevant: NGINX kann auf moderater Hardware Zehntausende gleichzeitiger Verbindungen verarbeiten. Die meisten Produktions-Stacks nutzen heute NGINX vor einem Anwendungsserver, während Apache der Legacy-Kompatibilität vorbehalten bleibt.