Nginx

Aus besserwiki.de
Nginx
Nginx logo.svg
Ursprüngliche(r) Autor(en)Igor Sysoev
Entwickler(n)Nginx, Inc.
Erste Veröffentlichung4 Oktober 2004; vor 18 Jahren
Geschrieben inC
BetriebssystemeBSD-Varianten, HP-UX, IBM AIX, Linux, macOS, Solaris, Microsoft Windows und andere *Nix-Varianten
TypWebserver, Reverse-/Mail-Proxy-Server
LizenzBSD-2-Klausel

Nginx (ausgesprochen "engine x" /ˌɛnɪnˈɛks/ EN-jin-EKS), stilisiert als NGIИX, ist ein Webserver, der auch als Reverse-Proxy, Load Balancer, Mail-Proxy und HTTP-Cache verwendet werden kann. Die Software wurde von Igor Sysoev entwickelt und im Jahr 2004 veröffentlicht. Nginx ist eine freie und quelloffene Software, die unter den Bedingungen der BSD-Lizenz mit zwei Klauseln veröffentlicht wird. Ein großer Teil der Webserver verwendet Nginx, oft als Load Balancer.

Im Jahr 2011 wurde ein gleichnamiges Unternehmen gegründet, das Support und die kostenpflichtige Software Nginx Plus anbietet. Im März 2019 wurde das Unternehmen von F5 Networks für 670 Millionen Dollar übernommen.

nginx
nginx Logo
Basisdaten
Entwickler Igor Sysoev
Kategorie Webserver
deutschsprachig nein
nginx.org

Popularität

Im Juni 2022 lag Nginx bei der Webserver-Auszählung aller Websites von W3Tech mit 33,6 % an erster Stelle. Apache lag mit 31,4 % an zweiter und Cloudflare Server mit 21,6 % an dritter Stelle. Im März 2022 schätzte Netcraft, dass Nginx 22,01 % der Millionen meistbesuchten Websites bediente, Apache lag mit 23,04 % knapp davor. Cloudflare mit 19,53 % und Microsoft Internet Information Services mit 5,78 % vervollständigen die Top Vier der Server für die meistbesuchten Websites. Einige der anderen Statistiken von Netcraft zeigen, dass Nginx vor Apache liegt.

Eine 2018 durchgeführte Umfrage zur Docker-Nutzung ergab, dass Nginx die am häufigsten eingesetzte Technologie in Docker-Containern ist. In der OpenBSD-Version 5.2 (November 2012) wurde Nginx Teil des OpenBSD-Basissystems und bot eine Alternative zum systemeigenen Fork von Apache 1.3, den es ersetzen sollte, wurde aber später in Version 5.6 (November 2014) zugunsten des OpenBSD-eigenen httpd(8) entfernt.

Eigenschaften

Nginx ist einfach zu konfigurieren, um statische Webinhalte bereitzustellen oder als Proxy-Server zu fungieren.

Nginx kann so eingesetzt werden, dass es auch dynamische Inhalte im Netzwerk mit Hilfe von FastCGI, SCGI-Handlern für Skripte, WSGI-Applikationsservern oder Phusion-Passenger-Modulen bereitstellt, und es kann als Software-Loadbalancer dienen.

Nginx verwendet einen asynchronen, ereignisgesteuerten Ansatz anstelle von Threads, um Anfragen zu bearbeiten. Die modulare, ereignisgesteuerte Architektur von Nginx kann eine vorhersehbare Leistung bei hoher Last bieten.

HTTP-Proxy- und Webserver-Funktionen

  • Fähigkeit, mehr als 10.000 gleichzeitige Verbindungen mit geringem Speicherbedarf zu verarbeiten (~2,5 MB pro 10k inaktiver HTTP Keep-alive-Verbindungen)
  • Handhabung von statischen Dateien, Indexdateien und automatischer Indizierung
  • Reverse Proxy mit Caching
  • Lastausgleich mit In-Band-Zustandsprüfungen
  • TLS/SSL mit SNI- und OCSP-Stapling-Unterstützung, über OpenSSL
  • FastCGI, SCGI, uWSGI Unterstützung mit Caching
  • gRPC-Unterstützung seit März 2018, Version 1.13.10.
  • Namen- und IP-Adressen-basierte virtuelle Server
  • IPv6-kompatibel
  • WebSockets seit 1.3.13, einschließlich der Funktion als Reverse Proxy und Load Balancing von WebSocket-Anwendungen.
  • HTTP/1.1 Upgrade (101 Switching Protocols), Unterstützung des HTTP/2 Protokolls
  • URL-Rewriting und -Umleitung

Mail-Proxy-Funktionen

  • TLS/SSL-Unterstützung
  • STARTTLS-Unterstützung
  • SMTP-, POP3- und IMAP-Proxy
  • Erfordert Authentifizierung über einen externen HTTP-Server oder durch ein Authentifizierungsskript

Zu den weiteren Funktionen gehören die Aktualisierung der ausführbaren Datei und der Konfiguration ohne Verlust von Client-Verbindungen sowie eine modulbasierte Architektur mit Unterstützung von Kern- und Drittanbieter-Modulen.

Das kostenpflichtige Plus-Produkt enthält zusätzliche Funktionen wie erweiterte Lastverteilung und Zugriff auf eine erweiterte Reihe von Metriken zur Leistungsüberwachung.

Nginx vs. Nginx Plus

Es gibt zwei Versionen von Nginx: Nginx Open Source und Nginx Plus.

Nginx Open Source ist eine freie und quelloffene Software.

Nginx Plus wird im Rahmen eines Abonnementmodells verkauft. Es bietet zusätzliche Funktionen zu Nginx Open Source, wie z. B. aktive Gesundheitsprüfungen, Sitzungspersistenz auf der Grundlage von Cookies, DNS-Service-Discovery-Integration, Cache-Purging-API, AppDynamic, Datalog, Dynatrace New Relic-Plug-ins, Active-Active HA mit Config-Sync, Key-Value Store, On-the-fly-Updates ohne Ausfallzeiten für Upstream-Konfigurationen und Key-Value-Stores unter Verwendung der Nginx Plus API und des dynamischen Moduls der Web Application Firewall (WAF).

Nginx im Vergleich zu Apache

Nginx wurde mit dem ausdrücklichen Ziel geschrieben, den Apache-Webserver zu übertreffen. Bei der Bereitstellung statischer Dateien verbraucht Nginx viel weniger Speicher als Apache und kann etwa viermal so viele Anfragen pro Sekunde verarbeiten. Diese Leistungssteigerung geht jedoch auf Kosten einer geringeren Flexibilität, wie z. B. der Möglichkeit, systemweite Zugriffseinstellungen auf Dateibasis außer Kraft zu setzen (Apache erreicht dies mit einer .htaccess-Datei, während Nginx keine solche Funktion eingebaut hat).

Früher erforderte das Hinzufügen von Modulen von Drittanbietern zu Nginx eine Neukompilierung der Anwendung aus dem Quellcode, wobei die Module statisch gelinkt wurden. Dies wurde in Version 1.9.11 im Februar 2016 mit dem Hinzufügen des dynamischen Modulladens teilweise überwunden. Allerdings müssen die Module immer noch zur gleichen Zeit wie Nginx kompiliert werden, und nicht alle Module sind mit diesem System kompatibel; einige erfordern den älteren statischen Linking-Prozess.

Nginx gilt im Allgemeinen als weniger stabil auf Windows Server als auf Linux, während Apache für beide gleich gut unterstützt wird.

Nginx-Einheit

Nginx Unit ist ein Open-Source-Webanwendungsserver, der 2017 von NGINX, Inc. veröffentlicht wurde, um mehrsprachige Microservices-basierte Anwendungen zu unterstützen. Die erste Version unterstützte Anwendungen, die in Go, PHP und Python geschrieben wurden. Mit Version 1.11.0 wurde die Unterstützung auf Java-, Node.js-, Perl- und Ruby-Anwendungen ausgeweitet; weitere Funktionen sind dynamische Konfiguration, Anfrage-Routing und Lastausgleich.

Geschichte

Nginx, Inc.
TypPrivat
IndustrieTechnologie
Gegründet2011
Hauptsitz
San Francisco, Kalifornien, U.S.A.
Wichtige Personen
Gus Robertson (CEO), Igor Sysoev (CTO)
ProdukteNginx Webserver, nginx amplify saas, nginx controller, nginx unix und nginx web application firewall
Websitenginx.de

Igor Sysoev begann die Entwicklung von Nginx im Jahr 2002. Ursprünglich wurde Nginx entwickelt, um das C10k-Problem zu lösen und die Anforderungen mehrerer Websites zu erfüllen, darunter die Suchmaschine und das Portal Rambler, für die es bis September 2008 500 Millionen Anfragen pro Tag bediente.

Nginx Inc. wurde im Juli 2011 von Sysoev und Maxim Konovalov gegründet, um kommerzielle Produkte und Support für die Software anzubieten.

Der Hauptsitz des Unternehmens befindet sich in San Francisco, Kalifornien, während es rechtlich auf den Britischen Jungferninseln eingetragen ist.

Im Oktober 2011 erhielt Nginx, Inc. 3 Millionen US-Dollar von BV Capital, Runa Capital und MSD Capital, dem Venture-Fonds von Michael Dell.

Das Unternehmen kündigte kommerzielle Supportoptionen für Unternehmen an, die Nginx in der Produktion einsetzen. Nginx bietet seit Februar 2012 kommerziellen Support und seit August 2013 ein kostenpflichtiges Nginx Plus-Abonnement an, das sich auf Installation, Konfiguration, Leistungsverbesserung usw. konzentriert. Der Support umfasst proaktive Benachrichtigungen über wichtige Änderungen, Sicherheitspatches, Updates und Patches. Nginx, Inc. bietet auch Beratungsdienste an, um Kunden bei der benutzerdefinierten Konfiguration oder dem Hinzufügen zusätzlicher Funktionen zu unterstützen.

Im Oktober 2013 hat Nginx, Inc. eine Investitionsrunde der Serie B in Höhe von 10 Millionen US-Dollar unter der Leitung von New Enterprise Associates abgeschlossen. Zu dieser Runde gehörten frühere Investoren sowie Aaron Levie, CEO und Gründer von Box.com. Im Dezember 2014 nahm Nginx eine Serie-B-Runde in Höhe von 20 Millionen US-Dollar unter der Leitung von New Enterprise Associates auf, an der sich auch e.ventures (ehemals BV Capital), Runa Capital, Index Ventures und der CEO von Nginx, Gus Robertson, beteiligten.

Im September 2017 kündigte Nginx ein API-Management-Tool, NGINX Controller, an, das auf dem API-Gateway NGINX Plus aufbaut. Im Oktober 2017 kündigte Nginx, Inc. die allgemeine Verfügbarkeit von Nginx Amplify SaaS an, das Überwachungs- und Analysefunktionen für Nginx bietet.

Im Juni 2018 sammelte Nginx, Inc. in einer von Goldman Sachs angeführten Finanzierungsrunde der Serie C 43 Millionen US-Dollar ein, um "die Anwendungsmodernisierung und digitale Transformation für Unternehmen zu beschleunigen".

Am 11. März 2019 übernahm F5 Networks Nginx, Inc. für 670 Millionen US-Dollar.

Am 12. Dezember 2019 wurde berichtet, dass die Moskauer Büros von Nginx Inc. von der Polizei durchsucht und Sysoev und Konovalov festgenommen worden waren. Die Razzia erfolgte aufgrund eines Durchsuchungsbefehls im Zusammenhang mit einer Urheberrechtsklage von Rambler gegen Nginx, das behauptet, alle Rechte an dem Code zu besitzen, da er geschrieben wurde, als Sysoev Angestellter des Unternehmens war. Am 16. Dezember 2019 berief der staatliche russische Kreditgeber Sberbank, dem 46,5 Prozent von Rambler gehören, eine außerordentliche Sitzung des Vorstands von Rambler ein und forderte das Managementteam von Rambler auf, die russischen Strafverfolgungsbehörden aufzufordern, die Verfolgung des Strafverfahrens einzustellen und Gespräche mit Nginx und F5 aufzunehmen.

Am 18. Januar 2022 wurde bekannt gegeben, dass Igor Sysoev Nginx und F5 verlässt.

Funktionsumfang

nginx ist modular aufgebaut und unterstützt durch die verschiedenen Module Techniken wie Lastverteilung und Reverse Proxying, namens- und IP-basierte Virtual Hosts, FastCGI, direkten Zugriff auf den Memcached Cache, SSL, Flash-Video-Streaming, das WebSocket-Protokoll und vieles mehr. Mit dem Naxsi-Modul kann nginx auch als Web Application Firewall fungieren.