Wir freuen uns, die Verfügbarkeit von NGINX Plus Release 24 (R24) bekannt zu geben. NGINX Plus basiert auf NGINX Open Source und ist der einzige All-in-One-Software-Webserver, Load Balancer, Reverse-Proxy, Inhaltscache und API-Gateway.
Zu den neuen Funktionen in NGINX Plus R24 gehören:
Abgerundet wird die Version durch die optionale Persistenz der Ergebnisse obligatorischer Integritätsprüfungen und dynamischer Werte für Cookie-Flags über Konfigurationsneuladungen hinweg.
Wie bei der Veröffentlichung von NGINX Plus R23 angekündigt , ist das Drittanbietermodul Cookie-Flag veraltet und wird in NGINX Plus R26 aus dem Repository der dynamischen Module entfernt. Die in diesem Modul definierte Direktive set_cookie_flag
wird durch die Direktive proxy_cookie_flags
ersetzt. Wir empfehlen Ihnen, alle set_cookie_flag
-Direktiven in Ihrer Konfiguration so schnell wie möglich durch proxy_cookie_flags
-Direktiven zu ersetzen. Siehe auch Dynamische Cookie-Flags .
Das NGINX Plus-Paket für Amazon Linux 2 basiert jetzt auf OpenSSL 1.1 , das TLS 1.3 ermöglicht und die Sicherheit auf zahlreiche andere Arten stärkt. Stellen Sie beim Upgrade von Amazon Linux 2-Systemen auf NGINX Plus R24 sicher, dass andere Software, die OpenSSL auf dem System verwendet, weiterhin ordnungsgemäß mit OpenSSL 1.1 funktioniert.
Wir haben die NGINX Plus-Paket-Repositories neu organisiert, mit den daraus resultierenden Änderungen am Installationsverfahren.
Die Änderung der Repository-Organisation spiegelt die Erweiterung unseres Produktportfolios und des Ökosystems von Produkten wider, die von NGINX Plus abhängen. Insbesondere für NGINX Plus ersetzt das Repo pkgs.nginx.com/plus das alte Repo plus-pkgs.nginx.com .
Wenn Sie NGINX Plus installieren und aktualisieren, wird der Paketmanager des Betriebssystems ( apt
, yum
oder gleichwertig) mit dem Software-Repository für NGINX Plus konfiguriert. Auf vorhandenen Systemen, die für die Verwendung des Repository plus-pkgs.nginx.com konfiguriert sind, müssen Sie den Paketmanager aktualisieren, sodass er auf pkgs.nginx.com/plus verweist (plus das letzte Pfadelement, das das Betriebssystem angibt).
Anweisungen zum Upgrade eines vorhandenen Systems auf NGINX Plus R24 finden Sie in der F5 Knowledge Base . Aktualisierte Anweisungen zur Erstinstallation finden Sie unter „Installieren von NGINX Plus“ im NGINX Plus-Administratorhandbuch.
Da der HTTP/3-Standard kurz vor der Fertigstellung steht und die Nutzung von HTTP/2 zunimmt, haben wir die Konfiguration langlebiger Verbindungen vereinfacht. In NGINX Plus R24 und höher funktionieren Konfigurationsanweisungen, die zuvor nur für HTTP/1.1 galten, auch für HTTP/2. Sie müssen nicht mehr unterschiedliche Anweisungen für dieselbe Funktionalität verwenden, nur weil die Protokollversion unterschiedlich ist.
Veraltete Richtlinie | Ersetzungsrichtlinie |
---|---|
http2_idle_timeout |
Keepalive_Timeout |
http2_max_Feldgröße http2_max_header_size |
große_Client-Headerpuffer |
http2_max_requests |
Keepalive-Anfragen |
http2_recv_timeout |
Client-Header-Zeitüberschreitung |
In NGINX Plus R23 und höher funktionieren die Anweisungen lingering_close
, lingering_time
und lingering_timeout
sowohl für HTTP/2 als auch für HTTP/1.1. Durch die Konfiguration einer effizienteren Handhabung von HTTP/2-Verbindungen mit diesen Anweisungen werden die gesamten HTTP/2-Funktionen von NGINX Plus verbessert.
NGINX Plus R24 ändert die Wirkung dieser Anweisungen in wichtiger Weise und beseitigt einen potenziellen Fehler: Wenn der Pool freier Worker-Verbindungen erschöpft ist, beginnt NGINX Plus nicht nur mit dem Schließen von Keepalive-Verbindungen, sondern auch von Verbindungen im Lingering-Close-Modus.
NGINX schreibt einen Eintrag in das Fehlerprotokoll, wenn sich der Integritätsstatus eines Upstream-Servers ändert – ein wichtiges Tool zur Überwachung und Analyse der allgemeinen Integrität Ihrer Infrastruktur. Der Schweregrad, bei dem Statusänderungen protokolliert werden, hat sich sowohl für HTTP- als auch für TCP/UDP-( Stream-
)Upstreamserver geändert:
„gesund“
zu „ungesund“
wird auf der Warnebene
protokolliert (war „Info
“).„ungesund“
zu „gesund“
wird auf der Benachrichtigungsebene
protokolliert (war „Info“
).Die Verwendung von JSON Web Tokens ( JWTs ) nimmt weiterhin zu. Zuvor unterstützte NGINX Plus signierte Token (den in RFC 7515 definierten JSON Web Signature-Standard [JWS]), die die Datenintegrität für die im Token codierten Ansprüche gewährleisten. JWS gewährleistet jedoch keine Vertraulichkeit für Ansprüche – sie können von jeder Komponente gelesen werden, die Zugriff auf das Token hat. TLS/SSL verringert die Gefährdung durch Token während der Übertragung, aber in Webbrowsern und anderen Clients gespeicherte Token sind weiterhin gefährdet.
NGINX Plus R24 führt Unterstützung für verschlüsselte Token ein (der JSON Web Encryption-Standard [JWE], definiert in RFC 7516 ), die sowohl Vertraulichkeit als auch Datenintegrität für den gesamten Anspruchssatz gewährleisten. Sensible oder persönlich identifizierbare Informationen (PII) können jetzt in JWTs codiert werden, ohne dass die Gefahr besteht, dass diese Daten durch unsichere Clients verloren gehen.
NGINX Plus R24 und höher unterstützt sowohl signierte als auch verschlüsselte JWTs. Signierte Token sind die Standardeinstellung und erfordern keine explizite Konfiguration. Die neue Direktive auth_jwt_type
konfiguriert die JWT-Verschlüsselung.
Sie definieren den Verschlüsselungs- (oder Signatur-)Algorithmus und die Schlüsselverwendung in der JWT-Schlüsseldatei, die durch die Direktive auth_jwt_key_file
benannt wird. NGINX Plus R24 und höher unterstützt die folgenden Verschlüsselungsmethoden.
JWE-Schlüsselverwaltungsalgorithmen |
|
JWE-Inhaltsverschlüsselungsalgorithmen |
|
NGINX Plus R24 markiert einen wichtigen Meilenstein in der Entwicklung des NGINX JavaScript-Moduls (njs), das jetzt0.5.3 . Es gibt zwei wichtige Verbesserungen, die es Ihnen ermöglichen, NGINX Plus mit benutzerdefinierten Lösungen für eine Vielzahl von Anwendungsfällen zu erweitern:
Wenn Sie mit dem NGINX-JavaScript-Modul nicht vertraut sind, lesen Sie bitte diese Einführung in unserem Blog<.htmla>.
[ Die in diesem Abschnitt beschriebenen Anwendungsfälle sind nur einige der vielen Anwendungsfälle für das NGINX JavaScript-Modul. Eine vollständige Liste finden Sie unter Anwendungsfälle für das NGINX-JavaScript-Modul . ]
Eine der leistungsstärksten Funktionen von NGINX Plus bei der Bereitstellung als API-Gateway oder Reverse-Proxy ist die Antwortfilterung . Dabei werden Antworten von Upstream-Servern abgefangen und Zeichenfolgen im Antworttext, in den Headern oder in beiden auf der Grundlage von regulären Ausdrücken ersetzt. Für Datenverkehr, der nicht mit dem NGINX-JavaScript-Modul manipuliert wird, wird die Antwortfilterung im Substitutionsmodul implementiert.
NGINX Plus R24 führt eine separate Implementierung der Antwortfilterung innerhalb des NGINX JavaScript-Moduls ein, mit zwei Anweisungen, die es Ihnen ermöglichen, die Leistungsfähigkeit von JavaScript zu nutzen, um Antworttexte und -header zu analysieren und zu ändern. JavaScript erweitert die Möglichkeiten zur Überprüfung und Manipulation weit über die einfache Zeichenfolgenersetzung auf der Grundlage regulärer Ausdrücke hinaus und ermöglicht eine noch leistungsfähigere Antwortfilterung als mit dem Substitutionsmodul.
js_body_filter-
DirektiveMit der Direktive js_body_filter
können Sie JavaScript verwenden, um den Hauptteil der Antwort von einem Proxyserver zu prüfen und zu ändern. Zu den Anwendungsfällen gehören:
In diesem Beispiel durchsuchen wir die Antworten nach allem, was wie ein AWS-Zugriffsschlüssel aussieht, und ersetzen alle derartigen Vorkommen durch einen ausgeblendeten Wert.
Um diesen Code auszuführen, müssen wir einfach auf die Funktion maskAwsKeys
im entsprechenden Standortblock
verweisen.
js_header_filter
Mit der Direktive js_header_filter
können Sie den Inhalt von Antwortheadern untersuchen – oder sogar abfangen und ändern. Stellen Sie sich einen Backend-Server vor, der eine Reihe von Set-Cookie
-Headern ausgibt, die vertrauliche Informationen enthalten, aber für den ordnungsgemäßen Betrieb unerlässlich sind. NGINX Plus kann die Antwort abfangen, die Set-Cookie
-Header lesen und sie im Schlüssel-Wert-Speicher speichern. Ein Ersatz- Set-Cookie-
Header kann als Referenz auf den Schlüssel-Wert-Speicher erstellt und in die ursprüngliche Antwort eingefügt werden.
js_header_filter
mit dem Schlüssel-Wert-Speicher zeigtIn den Zeilen 4–5 der NGINX Plus-Konfiguration definieren wir den Schlüssel-Wert-Speicher:
Dann ersetzen wir in den Zeilen 12–13 das Referenzcookie durch den Inhalt des Schlüssel-Wert-Speichers und fangen alle neuen Cookies mit unserem JavaScript-Code ab.
Der JavaScript-Code durchläuft jeden neuen Set-Cookie-
Antwortheader und erstellt einen neuen Schlüssel-Wert-Eintrag, um ihn zu speichern.
Der primäre Anwendungsfall für ein API-Gateway ist die Kontrolle des Zugriffs auf bestimmte Ressourcen. NGINX Plus unterstützt einen Satz leistungsstarker Authentifizierungs- und Zugriffskontrollfunktionen auf Ebene 7 für HTTP-Anfragen, moderne API-Implementierungen nutzen jedoch auch TCP/UDP als zugrunde liegendes Protokoll, was neue Herausforderungen bei der Authentifizierung mit sich bringt.
Mit der integrierten NGINX JavaScript-Funktion ngx.fetch
können Sie jetzt einen einfachen HTTP-Client im Kontext einer TCP/UDP-Verbindung instanziieren. Dies ermöglicht die Verwendung von HTTP-basierten Authentifizierungsdiensten für die Zugriffskontrolle im Stream-
Kontext, beispielsweise das Aufrufen eines lokalen OpenPolicy Agent-Daemons beim Proxying einer Datenbankverbindung.
Dieses Beispiel demonstriert die Verwendung eines lokalen HTTP-Authentifizierungsdienstes auf Port 8085 zur Authentifizierung jeder neuen Verbindung. Die Direktive js_access
und die Funktion ngx.fetch
implementieren zusammen eine Funktionalität im neu instanziierten HTTP-Kontext, die der Client-Autorisierung basierend auf dem Ergebnis einer Unteranforderung ähnelt (wie von der Direktive auth_request
für reguläre HTTP-Anforderungen implementiert). Basierend auf dem im Response
-Objekt verfügbaren HTTP-Statuscode wird die Verbindung zur Backend-Datenbank zugelassen ( s.allow
) oder abgelehnt ( s.deny
).
Notiz: Die Funktion ngx.fetch
funktioniert mit dem NGINX JavaScript HTTP-Modul sowie dem NGINX JavaScript Stream-Modul, weist jedoch im Vergleich zum r.subrequest-
Objekt im HTTP-Modul erhebliche Einschränkungen auf. Für die meisten HTTP-Anwendungsfälle wird r.subrequest
bevorzugt, da es Unterstützung für TLS-Verbindungen, Caching und alle Funktionen des Proxy-Moduls bietet.
Wenn eine NGINX-Variable mit der Direktive „set
[ HTTP ][ Stream ]“ oder „js_set
[ HTTP ][ Stream ]“ definiert ist, kann der Wert überschrieben werden, wenn bei der Anforderungsverarbeitung eine Umleitung auftritt. Mit der neuen Direktive js_var
[ HTTP ][ Stream ] kann eine Variable durch eine JavaScript-Funktion ausgewertet werden und ihr Wert bleibt auch bei Weiterleitungen erhalten.
Das neue njs.on-
Objekt ermöglicht die Ausführung einer JavaScript-Funktion, wenn die virtuelle njs-Maschine beendet wird. Dies kann beispielsweise verwendet werden, um am Ende einer TCP-Verbindung eine Funktion auszuführen.
Die neue Eigenschaft „s.status“
des Stream-Sitzungsobjekts bietet Zugriff auf den Gesamtsitzungsstatus (mögliche Werte finden Sie unter „$status“
).
F5 Device ID+ ist ein hochpräziser Gerätebezeichner in Echtzeit, der erweiterte Signalerfassung und bewährte Algorithmen des maschinellen Lernens nutzt, um jedem Gerät, das Ihre Site besucht, eine eindeutige Kennung zuzuweisen. Die Bereitstellung ist einfach und bietet sofortige Vorteile für Ihre Teams für Sicherheit, Netzwerke, Betrugsbekämpfung und digitale Technologien. Noch nie war es so einfach, die einzelnen Geräte zu verstehen, die Ihre Anwendungen besuchen.
Anweisungen zum Aktivieren von F5 Device ID+ auf Ihren NGINX Plus-Instanzen finden Sie unter Betrug und Risiken mit F5 Device ID+ mindern .
Wenn jeder Benutzer Ihre Website besucht, nutzt F5 Device ID+ JavaScript, um Informationen über den Browser, das Betriebssystem des Geräts, die Hardware und die Netzwerkkonfiguration zu sammeln. Diese Attribute fließen in den Dienst F5 Device ID+ ein, der auf den branchenweit anerkannten KI- und maschinellen Lernfunktionen von F5 Shape basiert. Die Daten werden in Echtzeit verarbeitet und dem Gerät wird eine eindeutige Kennung zugewiesen, sofern es sich nicht bereits um ein bekanntes Gerät handelt. Bei wiederkehrenden Geräten können Verhalten, Aktionen und andere Eigenschaften aufgezeichnet, erlernt und untersucht werden, um Betrugsversuche zu reduzieren und nachweislich guten Benutzern ein reibungsloses Erlebnis zu bieten.
Obligatorische Integritätsprüfungen werden verwendet, um den langsamen Start von Upstream-Servern zu ermöglichen, die mithilfe der NGINX Plus-API oder durch DNS-Auflösung hinzugefügt werden. Sie stellen sicher, dass neue Knoten zuerst einer Integritätsprüfung unterzogen werden und dann langsam gestartet werden, sobald sie für den Empfang von Datenverkehr bereit sind.
Zuvor wurden Upstream-Server nach einem Neuladen der Konfiguration als fehlerhaft betrachtet, unabhängig von ihrem Status vor dem Neuladen. Dies hatte zur Folge, dass die Server keine Client-Anfragen akzeptierten, bis die erste obligatorische Prüfung abgeschlossen war.
Mit NGINX Plus R24 können Sie obligatorische HTTP-Integritätsprüfungen als persistent markieren, sodass ihr vorheriger Status beim Neuladen der Konfiguration gespeichert wird. Fügen Sie der Direktive health_check
zusammen mit dem obligatorischen
Parameter den persistenten
Parameter hinzu.
In der vorherigen Version von NGINX Plus haben wir die Direktive proxy_cookie_flags
als native Methode zum Setzen von Cookie-Flags eingeführt. NGINX Plus R24 erweitert diese Funktion, indem es dynamische Werte für Cookie-Flags aktiviert. Dadurch können bestimmte Cookie-Flags durch NGINX-Variablen gesteuert werden.
Notiz: Die Direktive proxy_cookie_flags
macht das Cookie-Flag-Modul veraltet und wird in NGINX Plus R26 entfernt. Siehe Veraltetes Cookie-Flag-Modul .
In diesem Beispiel wird eine Zuordnung verwendet, um das Flag „Sicheres
Cookie“ zu aktivieren, wenn das Schema https statt http ist.
Wenn Sie NGINX Plus verwenden, empfehlen wir Ihnen dringend, so bald wie möglich auf NGINX Plus R24 zu aktualisieren. Sie erhalten außerdem mehrere zusätzliche Fehlerbehebungen und Verbesserungen und NGINX kann Ihnen helfen, wenn Sie ein Support-Ticket erstellen müssen.
Wenn Sie NGINX Plus noch nicht ausprobiert haben, empfehlen wir Ihnen, es auszuprobieren – für Sicherheit, Lastausgleich und API-Gateway oder als vollständig unterstützten Webserver mit erweiterten Überwachungs- und Verwaltungs-APIs. Sie können noch heute mit einer kostenlosen 30-Tage-Testversion beginnen.
„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."