NGINX, Inc. ist stolz, die Verfügbarkeit von NGINX Plus Release 9 (R9) bekannt zu geben, der neuesten Version unserer Anwendungsbereitstellungsplattform. Dieses Update bietet zwei wichtige neue Funktionen: die Möglichkeit, umfangreiche Erweiterungen dynamisch in NGINX Plus zu laden , ohne dass benutzerdefinierte Binärdateien erforderlich sind, und kommerziell unterstütztes UDP-Lastausgleichssystem neben unseren vorhandenen TCP- und HTTP-Lastausgleichsfunktionen.
Zusätzlich zu den spannenden neuen Funktionen in NGINX Plus R9 führen wir neue Preis- und Supportoptionen ein. NGINX Plus ist jetzt über ein „All you can eat“-Preismodell erhältlich, das Ihnen zu einem Festpreis unbegrenzte Nutzung überall in Ihrer Anwendung oder Ihrem Unternehmen ermöglicht. NGINX Plus kann jetzt auch mit drei verschiedenen Support-Levels erworben werden: Grundlegender 9×5-Support für Nicht-Produktionsanwendungen, professioneller 24×7-Support per Telefon oder E-Mail und Enterprise-24×7-Support mit garantierter Antwort innerhalb von 30 Minuten.
Editor – Weitere Einzelheiten zu den wichtigsten neuen Funktionen in NGINX Plus R9 finden Sie in diesen zugehörigen Ressourcen.
Die wichtigsten neuen Funktionen in NGINX Plus R9 sind:
Dynamische Module – NGINX Plus kann jetzt zur Laufzeit mit dynamisch ladbaren Modulen erweitert werden. Das bedeutet, dass Sie nur die gewünschten Erweiterungen auswählen und diese direkt aus dem NGINX Plus-Repository installieren können, auf das über Standardbefehle von apt
und yum
zugegriffen werden kann. Mit der Zeit werden wir eine ständig wachsende Anzahl getesteter und vollständig zertifizierter Erweiterungen für unsere Software verteilen.
Die beliebtesten von NGINX erstellten und von Drittanbietern bereitgestellten Module, beispielsweise die Unterstützung für die Programmiersprache Lua, wurden bereits in das neue dynamisch ladbare Format konvertiert. Wir haben außerdem Anweisungen für Besitzer von Drittanbietermodulen veröffentlicht, wie sie ihre Module in das neue Format konvertieren können. Dies ist erforderlich, bevor die Module zu unserem Repository hinzugefügt werden können.
UDP-Lastausgleich – Durch die Ergänzung des UDP-Lastausgleichs zu den vorhandenen TCP- und HTTP-Lastausgleichsfunktionen kann NGINX Plus jetzt den Lastausgleich für nahezu jede Anwendung durchführen. Wir haben letzten Monat UDP-Lastausgleich in NGINX Open Source hinzugefügt und erweitern mit dieser Version die Unterstützung für NGINX Plus um zusätzliche erweiterte Funktionen. NGINX Plus überwacht UDP-Dienste mit aktiven Integritätsprüfungen, bietet kritische Transparenz mit einer Fülle von Statistiken und ermöglicht Ihnen , Server dynamisch hinzuzufügen und zu entfernen .
UDP wird häufig für einfache Protokolle verwendet, die nicht transaktionaler Natur sind, wie etwa DNS (Auflösen von Domänennamen in Adressen), Syslog (einfache Protokollierung) und RADIUS (ein Authentifizierungsprotokoll). Aufgrund seines geringen Bandbreitenbedarfs entwickelt sich UDP auch zu einem der bevorzugten Protokolle für IoT-Anwendungen. NGINX Plus kann diese vorhandenen und neuen Anwendungen problemlos bereitstellen und einen Lastausgleich durchführen.
Service Discovery mithilfe von DNS- SRV-
Einträgen – Auf Microservices basierende Anwendungen sind dynamisch – Services können bei Bedarf hoch-, herunterskaliert und verschoben werden. Eine gute Möglichkeit, den Überblick über den aktuellen Status Ihrer Dienste zu behalten, ist die Verwendung der Diensterkennung . Viele Service-Discovery-Plattformen wie Consul und etcd (SkyDNS) bieten eine DNS-Schnittstelle für Clients (wie NGINX Plus), um Informationen zu erkannten Diensten anzufordern.
Die von Diensten verwendete Portnummer wird häufig dynamisch zugewiesen. Daher verwenden Service-Discovery-Plattformen DNS -SRV-
Einträge , die Informationen zu Portnummern enthalten. NGINX Plus unterstützt jetzt DNS- SRV-
Einträge und kann DNS-Anfragen verwenden, um das Dienstregister nach den Standorten Ihrer Dienste abzufragen, einschließlich dynamisch zugewiesener Portinformationen.
Preise für NGINX Plus-Apps – Um bei hohem Wachstum, Saisonalität oder elastischem Datenverkehr maximale Leistung und Verfügbarkeit zu gewährleisten, benötigen viele Anwendungen eine dynamische Infrastruktur. Diese Apps nutzen typischerweise auch Microservices oder verteilte Architekturen und verwenden Container oder virtuelle Maschinen zur Laufzeit. Die Bezahlung pro Instanz oder Maschinenstunde für Software bietet nicht die Flexibilität oder Kosteneffizienz, die diese modernen Apps erfordern. Für diese Anwendungsfälle führen wir die NGINX Plus-App-Preise ein.
Die NGINX Plus-App-Preise ermöglichen eine unbegrenzte, uneingeschränkte Nutzung der erweiterten Funktionen und kommerziell unterstützten Binärdateien von NGINX Plus zu einem Pauschalpreis pro Anwendung und Jahr. Unabhängig von der Anzahl der VMs, Container, Knoten, gleichzeitigen Verbindungen oder Benutzer zahlen Sie das ganze Jahr über einen niedrigen Tarif. Stellen Sie NGINX Plus bereit, wann, wo und wie Sie es brauchen, innerhalb Ihrer Anwendungsinfrastruktur und in Entwicklungs-, Test-, Staging-, Notfallwiederherstellungs- und Produktionsumgebungen – Sie müssen sich keine Sorgen über unvorhersehbare, verbrauchsabhängige Rechnungen machen und nicht auf Lizenzschlüssel warten, wenn Sie die Kapazität plötzlich erhöhen müssen.
Dieser Abschnitt bietet einen detaillierten Überblick über alle neuen Features und Funktionen in NGINX Plus R9.
NGINX und NGINX Plus haben beide eine modulare Architektur. Ihre Kernfunktionalität kann durch Module erweitert werden, die sowohl von externen Entwicklern als auch vom NGINX-Kernentwicklungsteam geschrieben werden. Diese Module fügen wichtige Funktionen hinzu, wie etwa das Einbetten von Lua-Skripten und die Geolokalisierung von Benutzern anhand der IP-Adresse. Es sind über 100 Module von Drittanbietern und über 60 offizielle NGINX-Module verfügbar. 56 davon sind im Basispaket nginx‑plus enthalten und weitere 10 im Paket nginx‑plus‑extras (die vollständige Liste ist unter „Technische Daten zu NGINX Plus“ verfügbar).
Mit dieser Version können die zusätzlichen Module im Paket nginx‑plus‑extras (sowohl von Drittanbietern als auch offizielles NGINX) auch dynamisch in das Basispaket von NGINX Plus, nginx‑plus, geladen werden. Dadurch können Sie nur die Zusatzmodule laden, die Sie tatsächlich benötigen.
Diese Module sind im NGINX Plus-Repository verfügbar und wir planen, in den kommenden Monaten weitere Module zum Repository hinzuzufügen. Wir empfehlen allen, die derzeit das Paket nginx‑plus‑extras verwenden, zum Kernpaket nginx‑plus zu migrieren, da wir das Paket nginx‑plus‑extras in einer späteren Version veraltet machen.
Wir testen jedes dynamische Modul, indem wir es in den NGINX Plus-Kern laden, bevor wir unsere umfassenden Release-Tests ausführen. So können wir sicher sein, dass das Modul (wenn es nicht konfiguriert ist) den ordnungsgemäßen Betrieb von NGINX Plus nicht beeinträchtigt. Wir verfolgen Modulaktualisierungen und geben bei jeder Veröffentlichung neue Builds heraus, auch wenn zwischen den Veröffentlichungen ein kritisches Sicherheitsproblem gemeldet wird.
Durch dynamische Module können wir eine einzelne NGINX Plus-Binärdatei mit der Funktionalität verteilen, die jeder verwendet. Administratoren können dann die zusätzlichen Module auswählen, die sie verwenden möchten.
Führen Sie die folgenden Schritte aus, um Module zu installieren und dynamisch zu laden. Sie gehen davon aus, dass Sie Ihr Paketverwaltungstool so konfiguriert haben, dass es Dateien von NGINX, Inc. und nicht von der Distribution des Betriebssystemanbieters abruft.
Verwenden Sie das Standardpaketverwaltungstool Ihres Betriebssystems (z. B. apt
oder yum
), um das Basisimage von nginx‑plus und die Module zu installieren, die Sie dynamisch laden möchten (wiederholen Sie den Installationsbefehl für jedes Modul). Die folgenden Befehle sind für Debian‑basierte Systeme geeignet.
# apt-get update # apt-get install nginx-plus # apt-get install Modulname
Die Namen, die Sie in dieser Version als Ersatz für den Modulnamen
verwenden können, sind:
nginx-plus-modul-geoip
nginx-plus-modul-header-mehr
nginx-plus-modul-bild-filter
Nginx-Plus-Modul-Lua
Nginx-Plus-Modul-Passagier
nginx-plus-modul-perl
nginx-plus-modul-rtmp
nginx-plus-modul-set-verschiedenes
nginx-plus-modul-xslt
Das Verzeichnis /etc/nginx/modules wird automatisch mit symbolischen Links zu den Installationsorten der .so- Dateien für die ausgewählten Module erstellt.
Hinweise:
Wenn Sie das Paket nginx‑plus‑extras für eine frühere Version von NGINX Plus verwenden, müssen Sie es entfernen, bevor Sie das R9-Paket nginx‑plus installieren. Für Debian‑basierte Systeme lautet der entsprechende Befehlssatz:
# apt-get update # apt-get remove nginx-plus-extras # apt-get install nginx-plus # apt-get install Modulname
Einige Module sind aufgrund von Betriebssystemeinschränkungen für bestimmte Betriebssystemversionen nicht verfügbar. Einzelheiten sowie Beschreibungen der Module finden Sie in den technischen Daten von NGINX Plus .
Fügen Sie im Hauptkontext (oberste Ebene) in /etc/nginx/nginx.conf eine load_module-
Direktive für jedes dynamisch ladbare Modul hinzu:
load_module module/ modulname .so;
Überprüfen Sie die neue Konfiguration auf syntaktische Gültigkeit und laden Sie NGINX Plus neu.
# nginx -t und nginx -s neu laden
Die in nginx.conf aufgelisteten Module werden dynamisch in NGINX Plus geladen.
Letzten Monat haben wir die UDP-Lastverteilung in NGINX Open Source veröffentlicht, und NGINX Plus R9 erweitert diese Funktion um Integritätsprüfungen, erweiterte Statusüberwachung und Neukonfiguration im laufenden Betrieb.
Wie beim TCP-Lastausgleich erfolgt die Konfiguration für den UDP-Lastausgleich im Streamkontext
. Und wie beim HTTP- und TCP-Lastausgleich wird beim UDP-Lastausgleich eine Upstream-Gruppe verwendet, um die Menge der Ursprungsserver zu definieren, die den UDP-basierten Dienst bereitstellen, und den Algorithmus, der beim Lastausgleich des Datenverkehrs zwischen den Servern verwendet werden soll.
Die Konfiguration definiert außerdem einen virtuellen Server für jeden UDP-Port mit einer Proxy_pass-
Direktive, die die Upstream-Gruppe benennt, die den zugehörigen Dienst bereitstellt:
Stream { Upstream dns_upstreams { geringste_Zeit; Server DNS-Server-1-IP : 53; Server DNS-Server-2-IP : 53; } Server { abhören 53 UDP ; abhören 53; #tcp Proxy_Pass DNS_Upstreams; Proxy_Timeout 1 s; Proxy_Antworten 1; Fehlerprotokoll Protokolle/DNS.log; } }
Dieses Konfigurationsbeispiel dient zum Lastenausgleich von DNS-Diensten. Im Upstream-
Block konfigurieren wir den Least-Time-Algorithmus, sodass NGINX Plus jede Anfrage an den Server sendet, der aktuell die wenigsten „Verbindungen“ hat und am schnellsten reagiert. Im Serverblock hören wir sowohl auf UDP- als auch auf TCP-Verkehr, da DNS über beide Protokolle laufen kann. Die Direktive „proxy_responses“
steuert, wie viele Antworten NGINX Plus vom Upstream-Server erhält, bevor die mit der UDP-„Verbindung“ verbundenen Ressourcen freigegeben werden. Da DNS ein einfaches Anforderungs-Antwort-Protokoll ist, ist normalerweise eine Antwort ausreichend.
NGINX Open Source umfasst grundlegende Integritätsprüfungen für UDP. Wenn ein Upstream-UDP-Server nicht innerhalb einer festgelegten Zeitüberschreitung auf eine Anfrage antwortet oder einen ICMP-Fehler zurückgibt, unterbrechen NGINX und NGINX Plus für eine festgelegte Zeitspanne die Übermittlung von Datenverkehr an diesen Server.
NGINX Plus R9 fügt aktive Integritätsprüfungen für UDP-Dienste hinzu, ähnlich denen für HTTP- und TCP-Verkehr . Sie können NGINX Plus so konfigurieren, dass spezielle UDP-Anfragen an Upstream-Server gesendet werden, und die Art der Antwort definieren, die die Server zurückgeben müssen, um als fehlerfrei zu gelten. Da UDP nicht über die Mechanismen zur zuverlässigen Übermittlung verfügt, die TCP für HTTP bereitstellt, sind aktive Integritätsprüfungen für UDP-Anwendungen sogar noch wichtiger als für TCP- und HTTP-Anwendungen.
Mit NGINX Plus können Sie Upstream-Server auch im laufenden Betrieb hinzufügen oder entfernen. Auf diese Weise können Sie beispielsweise Server problemlos zu Wartungsarbeiten offline nehmen und anschließend wieder in den Pool mit Lastenausgleich einfügen. Neue UDP-bezogene Statistiken im NGINX Plus- Statusmodul und im Dashboard zur Live-Aktivitätsüberwachung geben Ihnen wichtige Einblicke in die Leistung Ihrer Server.
NGINX Plus R9 führt einen Lastenausgleich für die am häufigsten verwendeten einfachen UDP-basierten Anwendungen durch: DNS, RADIUS, Syslog und NTP. Langlebige UDP-Protokolle wie Voice over IP und andere SIP-basierte Anwendungen werden derzeit nicht unterstützt.
SRV-
EinträgenModerne Webanwendungen bestehen aus mehreren kleinen Anwendungskomponenten – Webservern, Anwendungsservern, Datenbanken usw. Ein Front-End-Load Balancer wie NGINX Plus prüft den eingehenden Datenverkehr und leitet die Anfragen dann an die Anwendungskomponenten weiter und verteilt die Last.
Wenn Anwendungskomponenten auf virtuellen oder containerbasierten Plattformen bereitgestellt werden, können sie unvorhersehbare IP-Adressen und Ports haben. Bei der Diensterkennung handelt es sich um den Vorgang, bei dem ein lokaler Client (wie etwa der Frontend-Load Balancer NGINX Plus) diese Komponenten findet, um Datenverkehr an sie senden zu können. Die Diensterkennung wird im Allgemeinen durch eine „Dienstdatenbank“ wie Consul , etcd oder ZooKeeper erleichtert.
In NGINX Plus R8 haben wir eine persistente Version unserer API zur On-the-Fly-Neukonfiguration angekündigt und Demolösungen für Consul , etcd und ZooKeeper freigegeben, die die Servicedatenbank überprüfen und Konfigurationsänderungen in NGINX Plus übertragen. Wir freuen uns, in NGINX Plus R9 die Unterstützung einer alternativen Methode ankündigen zu können, die DNS- SRV-
Abfragen verwendet. DNS- SRV
-Abfragen geben die IP-Adresse, den Port, die Priorität und das Gewicht von Anwendungsservern eines bestimmten Typs zurück.
Consul und SkyDNS für etcd bieten beide DNS-Schnittstellen, die Clients zum Abrufen von SRV-
Einträgen verwenden können. NGINX Plus erhält die Lastausgleichskonfiguration durch direkte Abfrage der DNS-Schnittstelle eines Dienstes. NGINX Plus überprüft den Dienst regelmäßig erneut, sodass alle Änderungen schnell und automatisch übernommen werden.
Das folgende Beispiel konfiguriert NGINX Plus so, dass die Liste der Upstream-Server für my_service über DNS abgerufen wird. Der Parameter service=http
der Serverdirektive
aktiviert die Unterstützung für DNS- SRV-
Einträge. Die Anwendungsinstanzen, die my_service unterstützen, werden jetzt automatisch von NGINX Plus erkannt.
http { Resolver DNS-Server-IP ; Upstream mein_Dienst { Zone Backend 64k; Server Hostname für meinen_Dienst Dienst=http Resolve; } Server { # ... Standort /mein_Dienst { # ... Proxy-Passwort http://mein_Dienst; } } }
Die Preisgestaltung pro Instanz ist ein guter Einstieg in NGINX Plus und stellt eine sehr kostengünstige Alternative zu Hardware-Load Balancern dar. Die potenziellen Einsatzmöglichkeiten von NGINX Plus gehen jedoch weit über den einfachen Hardwareaustausch hinaus. Aufgrund seiner leichtgewichtigen Softwarearchitektur eignet sich NGINX Plus ideal für das dedizierte Lastenausgleichsmodul jeder Anwendung, und da NGINX Plus auf NGINX Open Source basiert, kann es auch die Web- und Anwendungsserver in Ihrer Anwendung ersetzen. Diese Anwendungsfälle führen zu immer mehr Bereitstellungen von NGINX Plus, für die die Preisgestaltung pro Instanz nicht kosteneffizient oder flexibel genug ist.
Mit NGINX Plus R9 führen wir ein neues „All you can eat“-App-Preismodell ein, das es Ihnen ermöglicht, so viele Instanzen von NGINX Plus auszuführen, wie Sie für eine bestimmte Anwendung möchten. Stellen Sie NGINX Plus bereit, wann, wo und wie Sie es benötigen, in Ihrer Anwendungsinfrastruktur und in Entwicklungs-, Test-, Staging-, Notfallwiederherstellungs- und Produktionsumgebungen. Unabhängig von der Anzahl der VMs, Container oder Knoten zahlen Sie einen Festpreis für das gesamte Jahr.
Jedes Abonnement umfasst den vollständigen Funktionsumfang der NGINX Plus-Software sowie unsere preisgekrönte Support- und Konfigurationshilfe . Wenn Sie sich für das App-Preismodell entscheiden, haben Sie außerdem Anspruch auf:
Die Nutzung ist pro Anwendung unbegrenzt. Eine Anwendung wird als die Softwarekomponenten und das Team definiert, die eine einzelne Webanwendung oder eine einzeln benannte Desktop- oder mobile Anwendung unterstützen. Auf Microservices basierende und andere verteilte Architekturen werden im Modell vorweggenommen und berücksichtigt.
Außerdem ist ein Site-Lizenzabonnement verfügbar, das die unbegrenzte Nutzung von NGINX Plus in einer gesamten Organisation ermöglicht.
NGINX Plus R9 führt eine Reihe zusätzlicher Verbesserungen ein, darunter:
Wiederholung nicht idempotenter Anfragen – Wenn eine HTTP-Anfrage aufgrund eines Fehlers oder einer Zeitüberschreitung fehlschlägt, versucht NGINX Plus sie standardmäßig automatisch mit einem anderen Server in der Upstream-Gruppe erneut. Mit der Direktive proxy_next_upstream
können Sie die Fehlertypen definieren, bei denen NGINX Plus Anfragen wiederholt, einschließlich bestimmter 4xx
oder 5xx
Antwortcodes.
Gemäß Konvention werden POST-
Anfragen im Allgemeinen nicht wiederholt, da die Textdaten an den Server gestreamt werden und bei einem Serverausfall nicht erneut abgespielt werden können. Unter bestimmten Fehlerumständen wiederholten frühere Versionen von NGINX Plus jedoch POST-
Anfragen, was nicht mit der Annahme übereinstimmt, dass sie nicht wiederholt werden, weil sie nicht idempotent sind.
NGINX Plus wiederholt fehlgeschlagene nicht-idempotente HTTP-Anfragen ( POST
, LOCK
und PATCH
) nicht mehr automatisch. Um das vorherige Verhalten wiederherzustellen und NGINX Plus zu ermöglichen, fehlgeschlagene nicht-idempotente Anforderungen nach Möglichkeit erneut zu versuchen, fügen Sie der Direktive proxy_next_upstream
den neuen Parameter non_idempotent
hinzu.
Wenn Sie NGINX Plus verwenden, empfehlen wir Ihnen dringend, so bald wie möglich auf Release 9 zu aktualisieren. Sie erhalten eine Reihe von Fehlerbehebungen und Verbesserungen und können uns damit helfen, Ihnen zu helfen, wenn Sie ein Support-Ticket erstellen müssen.
Wenn Sie NGINX Plus noch nicht ausprobiert haben, empfehlen wir Ihnen, es wegen der Webbeschleunigung, des Lastausgleichs und der Anwendungsbereitstellung oder als vollständig unterstützten Webserver mit einer API für erweitertes Monitoring und dynamische Neukonfiguration auszuprobieren. Beginnen Sie noch heute mit einer kostenlosen 30-Tage-Testversion und überzeugen Sie sich selbst, wie NGINX Plus Ihnen bei der Bereitstellung und Skalierung Ihrer Anwendungen helfen kann.
Editor – Weitere Einzelheiten zu den wichtigsten neuen Funktionen in NGINX Plus R9 finden Sie in diesen zugehörigen Ressourcen.
„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."