NGINX, Inc. ist stolz, die Verfügbarkeit von NGINX Plus Release 7 (R7) bekannt zu geben, der neuesten Version unserer Anwendungsbereitstellungsplattform. Das Update bietet eine vollständig unterstützte Implementierung des neuen HTTP/2-Webstandards, die erste ihrer Art für einen führenden Webserver. NGINX Plus kann als Front-End-HTTP/2-Gateway und Beschleuniger für neue und bestehende Webdienste eingesetzt werden.
[Editor – Dieser Beitrag wurde aktualisiert, um auf die NGINX Plus API zu verweisen, die das in der Originalversion des Beitrags erwähnte separate Statusmodul ersetzt und veraltet.]
Das neueste Update bringt außerdem dramatische Verbesserungen und zusätzliche Funktionen, um sicherzustellen, dass Unternehmen ihre Anwendungen mit der Leistung, Sicherheit und Zuverlässigkeit bereitstellen können, die für Unternehmensanwendungen erforderlich ist. Hierzu gehören wesentliche Verbesserungen, die die Überwachung, Verwaltung und Fehlerbehebung von Anwendungen vereinfachen, sowie zusätzliche Sicherheits- und leistungsoptimierende Funktionen.
Herausgeber – Weitere Einzelheiten zu den wichtigsten neuen Funktionen in NGINX Plus R7 finden Sie in den folgenden Blogbeiträgen:
Sehen Sie sich auch unser On-Demand-Webinar „ Was ist neu in NGINX Plus R7?“ an.
Zu den Hauptfunktionen dieser Version gehören:
Notiz : Basierend auf Benutzertests des Alpha-Level-Patches und mit der frühen Unterstützung der Unternehmens-Co-Sponsoren Automattic und Dropbox wird die endgültige Open-Source-Version von HTTP/2 nach der Veröffentlichung von R7 verfügbar sein.
SO_REUSEPORT
und erfordert derzeit Linux 3.9+ oder DragonFly BSD.„Wir haben im vergangenen Jahr Hunderten von Neukunden dabei geholfen, ihre Anwendungen mit NGINX Plus bereitzustellen, und mit unserer neuesten Version möchten wir ihnen noch mehr Tools an die Hand geben, um ihren Benutzern das bestmögliche Erlebnis zu bieten“, erklärt Gus Robertson, CEO von NGINX, Inc. „Wir sind das Grundgerüst der Infrastruktur unserer Kunden und daher in der einzigartigen Lage, ihnen eine beispiellose Transparenz und Kontrolle über die von ihnen eingesetzten Anwendungen zu bieten. Wir nehmen unsere entscheidende Rolle im Geschäft unserer Kunden ernst und die neuen Funktionen in NGINX Plus R7 spiegeln dies wider.“
Die Akzeptanz von NGINX hat in den letzten Monaten erheblich zugenommen. NGINX ist der Webserver Nr. 1 unter den 100.000 Top-Websites ; fast die Hälfte der weltweit am häufigsten genutzten Websites verwendet NGINX, um ihre Anwendungen an Milliarden von Benutzern bereitzustellen. NGINX, Inc. investiert weiterhin stark in unsere Open Source- und kommerziell unterstützten Tools, um die fehlerfreie Bereitstellung von Anwendungen für jeden zu vereinfachen – von den kleinsten, leichtesten Apps bis hin zu den größten Plattformen der Welt.
NGINX Plus R7 Funktionen im Detail
Dieser Abschnitt bietet einen detaillierten Überblick über alle neuen Features und Funktionen in NGINX Plus R7 .
NGINX Plus R7 bietet Unterstützung für HTTP/2, die neueste Version des HTTP-Protokolls, über das neue Paket nginx-plus-http2 . HTTP/2 bringt mehr Leistung und Sicherheit in moderne Webanwendungen. Die NGINX Plus-Unterstützung für HTTP/2 funktioniert nahtlos mit Ihren vorhandenen Sites und Apps, ohne dass Änderungen an ihnen erforderlich sind und nur sehr minimale Änderungen an der NGINX Plus-Konfiguration erforderlich sind. NGINX Plus R7 ist vollständig abwärtskompatibel und kann sowohl HTTP/1.x- als auch HTTP/2-Verkehr parallel bereitstellen – für das optimale Erlebnis, unabhängig davon, welchen Browser Ihre Benutzer wählen.
Um den Übergang zu HTTP/2 zu erleichtern, fungiert NGINX Plus als „HTTP/2-Gateway“. Auf der Front-End-Seite kommuniziert NGINX Plus über HTTP/2 mit Client-Webbrowsern, die dies unterstützen, und auf der Back-End-Seite kommuniziert es wie zuvor über HTTP/1.x (oder FastCGI, SCGI, uWSGI usw.). Dies bedeutet, dass Server und Anwendungen, die von NGINX Plus geproxied werden, von der Umstellung auf HTTP/2 nicht betroffen sind und nicht einmal wissen müssen, welche HTTP-Version ihre Clients verwenden.
Um HTTPS und HTTP/2 nebeneinander zu unterstützen, unterstützt NGINX Plus sowohl die Erweiterungen Next Protocol Negotiation (NPN) als auch Application‑Layer Protocol Negotiation (ALPN) in TLS. Diese Erweiterungen werden verwendet, um eine HTTPS-Verbindung nahtlos auf HTTP/2 zu aktualisieren, wenn sowohl Client als auch Server HTTP/2 unterstützen.
Die einzige erforderliche Konfigurationsänderung besteht darin, den Parameter http2
zu den vorhandenen Abhördirektiven
hinzuzufügen. Bitte beachten Sie, dass HTTP/2 nur unterstützt wird, wenn auch der SSL-
Parameter enthalten ist:
Server { abhören 443 ssl http2 Standardserver; }
Um HTTP/2-Unterstützung zu aktivieren, installieren Sie das Paket nginx-plus-http2 aus dem NGINX Plus-Repository. Dieses Paket unterstützt SPDY/3.1 nicht. Die Standardpakete nginx-plus und nginx-plus-extras unterstützen SPDY/3.1 statt HTTP/2 und werden aufgrund der breiteren Browserunterstützung und Codereife derzeit für Produktionssites empfohlen. Beachten Sie, dass wir derzeit keine HTTP/2-fähige Version des nginx-plus-extras- Pakets erstellen.
Weitere Informationen zu HTTP/2:
NGINX Plus R7 umfasst eine Reihe von Leistungsverbesserungen, die dazu beitragen können, die Leistung Ihrer Anwendungen noch weiter zu steigern. Es bietet Unterstützung für die Thread-Pool-Optimierung , die potenziell blockierende Festplattenvorgänge auslagert und die Leistung von Workloads (wie etwa der Zwischenspeicherung von Inhalten) verbessert, die einen hohen Festplatten-E/A-Aufwand erfordern. NGINX Plus R7 umfasst außerdem die Socket-Sharding-Optimierung (Linux 3.9+ oder Dragonfly BSD erforderlich), die die Effizienz auf großen Multicore-Servern verbessert, auf denen eine große Anzahl von Nginx-Prozessen den Datenverkehr verarbeitet. Sie wurden in der Praxis in NGINX Open Source-Bereitstellungen getestet und werden jetzt als Teil von NGINX Plus vollständig unterstützt.
Die Verwendung von Thread-Pools in NGINX Plus kann Ihnen eine 9-mal bessere Leistung bieten. Es ist bekannt, dass NGINX einen asynchronen, ereignisgesteuerten Ansatz zur Handhabung von Verbindungen verwendet. Allerdings besteht beim asynchronen, ereignisgesteuerten Ansatz noch immer ein Problem: Blockierungen. Unter Linux kommt es zu Blockierungen bei Festplattenvorgängen, sodass bei Vorgängen mit hohem Festplatten-E/A-Aufwand NGINX viel Zeit mit Blockierungen verbringen kann, anstatt produktiv zu arbeiten.
Dieses Problem lässt sich durch die Zuweisung eines Thread-Pools für die Datenträger-E/A verringern. Anstatt selbst auf die Festplatte zuzugreifen, übergibt der NGINX-Arbeitsprozess den E/A-Vorgang an einen verfügbaren Thread im Pool und fährt dann mit der normalen Datenverkehrsverarbeitung fort. Wenn der Festplattenvorgang abgeschlossen ist, wird der NGINX-Arbeitsprozess benachrichtigt und kann mit den verbleibenden Arbeiten fortfahren, um die Anforderung zu erfüllen.
Um Thread-Pools zu aktivieren, fügen Sie einfach die Direktive „aio
threads“
zu einem Standortblock
hinzu:
Standort / { root /storage; aio threads ; }
Einen ausführlichen Überblick über Thread-Pools in NGINX finden Sie in diesem Blog-Beitrag .
Socket-Sharding wurde erstmals in NGINX 1.9.1 eingeführt. Diese Funktion nutzt die Socket-Option SO_REUSEPORT
, die in Version 3.9 des Linux-Kernels eingeführt wurde. Wenn die Option aktiviert ist, verteilt der Linux-Kernel selbst neue Verbindungen im Round-Robin-Verfahren gleichmäßig auf die NGINX-Arbeitsprozesse. Die Arbeitsprozesse übernehmen dann die Aufgaben der Anforderungsbegrenzung, der Zwischenspeicherung, des Lastenausgleichs und alles andere, was Sie konfiguriert haben.
Ohne SO_REUSEPORT
werden allen verfügbaren Arbeitsprozessen neue Verbindungen zur Verfügung gestellt. Wer zuerst eine Verbindung aus der Warteschlange nimmt, bekommt sie. Da es keinen Algorithmus zur gleichmäßigen Verteilung der Last gibt, kann es leicht zu einem Ungleichgewicht kommen, sodass einige Arbeitsprozesse den Großteil der Last übernehmen, während andere nicht ausreichend ausgelastet sind. Es ist außerdem ineffizient, wenn Prozesse um Pakete kämpfen, da dies zu Sperrkonflikten führen kann.
Socket-Sharding kann die Leistung um das bis zu Dreifache steigern, indem es eine gleichmäßige Arbeitsverteilung auf die NGINX-Arbeitsprozesse gewährleistet. Um diese Funktion zu aktivieren, fügen Sie den vorhandenen Abhördirektiven
den neuen Parameter „reuseport“
hinzu.
server { listen 12345 reuseport ; # ... }
Weitere Informationen zu dieser Funktion finden Sie in diesem Blogbeitrag .
Notiz : Diese Funktion erfordert die Linux-Kernelversion 3.9 oder höher. Ubuntu 13.10 und höher sowie Red Hat Enterprise Linux 7 und höher enthalten die erforderliche Funktionalität.
NGINX Plus R7 fügt noch mehr Funktionen hinzu, um die Sicherheit Ihrer Anwendungen zu verbessern. Dieser Abschnitt bietet einen Überblick über diese Funktionen.
Neue Funktionen für TCP-Proxy und Lastenausgleich verbessern die Zugriffskontrolle (Begrenzung durch IP-Adresse), die Verbindungsbeschränkung (Begrenzung der Anzahl gleichzeitiger Verbindungen pro Client oder Dienst) und die Bandbreitennutzung (Begrenzung der Upstream- oder Downstream-Bandbreite pro Verbindung). Diese Funktionen sind bereits für den HTTP-Lastausgleich verfügbar und werden mit großem Erfolg für die API-Messung und den DDoS-Schutz eingesetzt.
Weitere Einzelheiten finden Sie im zugehörigen Blogbeitrag TCP Load Balancing in NGINX Plus R7<.htmlspan> .
Aufgrund großer Nachfrage kann NGINX Plus R7 Anwendungen proxyieren und die Last ausgleichen, die Microsoft NT LAN Manager ( NTLM ) zur Authentifizierung verwenden. NTLM ist ein Authentifizierungsprotokoll, das von vielen Microsoft-Produkten, insbesondere bei Legacy-Anwendungen, verwendet wird.
Unsere Unterstützung für NTLM erfüllt die Sicherheitsanforderung, dass Verbindungen zu Backend-Servern aufrechterhalten, aber nicht multiplexiert werden, sodass jeder NTLM-authentifizierte Client über eine eindeutige dedizierte Verbindung zum Backend-Server verfügt.
Um die NTLM-Unterstützung zu aktivieren, fügen Sie die Direktive „ntlm“
in der Konfiguration der HTTP-Upstream-Gruppen hinzu:
Upstream-Backend { Server 192.168.1.10; Server 192.168.1.11; ntlm ; }
Sie können NGINX jetzt problemlos als Proxy, Lastenausgleich und HTTP/2-Beschleuniger vor Microsoft-Anwendungen einsetzen und so die größtmögliche Bandbreite an Client-Geräten unterstützen.
NGINX Plus bietet detaillierte Überwachung und Statistiken, um die Beobachtung, Optimierung und Fehlerbehebung von Anwendungen und Infrastruktur zu vereinfachen. Aufbauend auf dieser Fähigkeit ist NGINX Plus R7 mit neuen Zählern und Statistiken ausgestattet. Mithilfe dieser Leistungsindikatoren können Sie Ihre NGINX Plus-Bereitstellungen optimieren und fundierte Entscheidungen darüber treffen, wann Sie zur Bewältigung einer höheren Last möglicherweise eine Skalierung nach oben oder unten durchführen müssen. Die neuen Statistiken und Zähler sind:
499
Fehler – Zähler pro Server, der verfolgt499
Fehler, die auftreten, wenn der Client die Verbindung schließt, bevor der Backend-Server die Verarbeitung seiner Anforderung abgeschlossen hat. Ein paar499
Fehler sind akzeptabel (Benutzer schließen ihren Webbrowser häufig mitten in einer Sitzung), aber eine große Anzahl kann darauf hinweisen, dass der Server überlastet ist und die Verarbeitung der Anfragen lange dauert.Wie alle anderen Zähler aktivieren Sie die neuen Zähler, indem Sie die API
-Direktive in die Konfiguration aufnehmen.
Das NGINX Plus-Dashboard wurde in R7 erheblich verbessert und zeigt wichtige Systeminformationen in einem übersichtlichen Format an, selbst bei großen und komplexen Konfigurationen:
Weitere Informationen finden Sie im zugehörigen Blogbeitrag „ Das neue NGINX Plus-Dashboard<.htmla>“.
NGINX Plus R7 verfügt über eine Reihe zusätzlicher Verbesserungen, die in keine der oben genannten Kategorien fallen:
„Start“
, „End“
und „Offset“
bei HLS -.m3u8- URIs. Auf diese Weise können Inhaltsherausgeber problemlos Links zu Fragmenten eines Videostreams veröffentlichen.Inhaltsänderung – Bisher konnte NGINX Plus nur eine einfache Inhaltsänderung am Inhalt einer Antwort vornehmen und eine Zeichenfolge durch eine andere ersetzen. Die Direktive „sub_filter“
wurde erweitert, um Variablen und Ersetzungsketten zu unterstützen und so komplexere Änderungen zu ermöglichen.
Mit den erweiterten Möglichkeiten zur Inhaltsänderung können Sie Webinhalte problemlos anpassen, zum Beispiel indem Sie in Hyperlinks im Nachrichteninhalt die Methode ( https:// statt http:// ), die Domäne oder andere Pfadelemente ändern. Sie können damit auch Inhalte in HTML-Seiten einfügen, beispielsweise Standardtexte oder JavaScript-Snippets, ohne den ursprünglichen HTML-Inhalt ändern zu müssen.
$upstream_connect_time
– Eine neue NGINX-Variable , die die zum Verbinden mit einem Backend-Server benötigte Zeit verfolgt und so die Identifizierung langsamer Server erleichtert.„-T
“ im Befehl „nginx“
gibt die analysierte NGINX-Konfiguration in einem klaren und standardisierten Format auf stdout aus. Dies ist für Archivierungszwecke oder beim Einreichen eines Support-Tickets nützlich.proxy_bind
, proxy_protocol
und tcp_nodelay
sowie der Backlog-
Parameter der Listen
-Anweisung werden jetzt sowohl für TCP-Verkehr ( Stream- Modul) als auch für HTTP-Verkehr unterstützt. Weitere Einzelheiten finden Sie unter TCP-Lastausgleich in NGINX Plus R7<.htmlspan> .Wenn Sie Phusion Passenger Open Source mit NGINX Plus verwenden (die Direktive passenger_root
ist in Ihrer Konfiguration enthalten), müssen Sie Ihre Passenger-Laufzeitumgebung gleichzeitig mit dem Upgrade auf das NGINX Plus R7 -Paket nginx-plus-extras auf Version 5.0.15 aktualisieren. Führen Sie diese Schritte aus (die Befehle sind für Ubuntu geeignet):
Stoppen Sie NGINX Plus:
# Dienst nginx stoppen
Aktualisieren Sie Ihre Phusion Passenger-Laufzeitumgebung auf 5.0.15:
# apt-get install passenger
Aktualisieren Sie das NGINX Plus Extras-Paket auf R7:
# apt-get installiere nginx-plus-extras
Nehmen Sie die erforderlichen Aktualisierungen an den NGINX Plus-Konfigurationsanweisungen vor, wie in den Upgrade-Hinweisen zu Phusion Passenger beschrieben.
Starten Sie NGINX Plus:
# Dienst nginx starten
Vollständige Installations- und Upgrade-Anweisungen sind im NGINX Plus- Kundenportal verfügbar.
Wenn Sie NGINX Plus verwenden, empfehlen wir Ihnen dringend, so bald wie möglich auf Release 7 zu aktualisieren. Sie erhalten eine Reihe von Fehlerbehebungen und Verbesserungen und können Ihnen so leichter helfen, wenn Sie ein Support-Ticket erstellen müssen. Installations- und Upgrade-Anweisungen finden Sie im Kundenportal .
Wenn Sie NGINX Plus noch nicht ausprobiert haben, empfehlen wir Ihnen, es zur Webbeschleunigung, zum Lastenausgleich und zur Anwendungsbereitstellung oder als vollständig unterstützten Webserver mit erweiterten Überwachungs- und Verwaltungs- APIs auszuprobieren. Sie können noch heute kostenlos mit einer 30-tägigen Testversion beginnen und sich selbst davon überzeugen, wie NGINX Plus Ihnen bei der Skalierung und Bereitstellung Ihrer Anwendungen helfen kann.
spdy
aus allen Listen
-Direktiven in Ihrer Konfiguration entfernen (ersetzen Sie ihn durch die Parameter http2
und ssl,
um die Unterstützung für HTTP/2 zu aktivieren). Mit dem Paket nginx-plus-http2 kann NGINX Plus nicht gestartet werden, wenn eine der Listen
-Direktiven den Parameter spdy
hat.„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."