Wir freuen uns, die Verfügbarkeit von NGINX Plus Release 32 (R32) 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 und erweiterten Funktionen in NGINX Plus R32 gehören:
Abgerundet wird die Version durch neue Funktionen und Fehlerbehebungen, die von NGINX Open Source übernommen wurden, sowie Updates für das NGINX JavaScript-Modul.
Notiz: Wenn Sie von einer anderen Version als NGINX Plus R31 aktualisieren, lesen Sie unbedingt den Abschnitt „Wichtige Verhaltensänderungen“ in früheren Ankündigungsblogs für alle Versionen zwischen Ihrer aktuellen und dieser.
Das in NGINX Plus R18 eingeführte OpenTracing-Modul wird in NGINX Plus R34 nicht mehr unterstützt und zur Entfernung markiert. Zugehörige Pakete werden bis dahin mit allen NGINX Plus-Versionen verfügbar gemacht. Wir empfehlen dringend, die Verwendung des OpenTracing-Moduls durch das in NGINX Plus R29 eingeführte OpenTelemetry-Modul zu ersetzen.
Der Support für das ModSecurity-Modul endete am 31. März 2024. Daher wurden die Modsec-Pakete aus dem NGINX Plus-Repository entfernt und werden in Zukunft nicht mehr im NGINX Plus-Repository verfügbar sein.
NGINX Open Source- und NGINX Plus-Pakete werden mit einem PGP-Schlüssel signiert. Dieser Schlüssel läuft am 16. Juni 2024 ab. Wir haben das Ablaufdatum des Schlüssels aktualisiert, sodass vorhandene Pakete auch nach dem 16. Juni 2024 weiterhin verifiziert werden können. Wir werden neue Schlüsselpaare generieren, um Pakete für kommende Versionen zu signieren.
Alle NGINX-Benutzer sollten den aktualisierten PGP-Schlüssel herunterladen und installieren, indem sie diese Schritte befolgen:
Unter Ubuntu/Debian:
wget -qO - https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Unter RHEL/CentOS:
sudo rpm -e gpg-pubkey-7bd9bf62-5762b5f8
sudo rpm --import https://nginx.org/keys/nginx_signing.key
Sie können Ihre Softwaresignaturen nach dem 16. Juni 2024 nicht mehr verifizieren, bis Sie Ihren Schlüssel aktualisieren.
In zukünftigen NGINX Plus-Versionen werden wir unsere Verpackungs- und Veröffentlichungsrichtlinien optimieren. NGINX Plus wird nur auf den neuesten Versionen unterstützter Betriebssystemdistributionen erstellt und getestet. Wenn Sie NGINX Plus auf älteren Distributionen installieren, schlägt Ihr Paketmanager möglicherweise vor, die abhängigen Bibliotheken und Pakete zu aktualisieren.
Die folgenden Änderungen wurden an unterstützten Plattformen in dieser Version vorgenommen.
Neue unterstützte Betriebssysteme:
Ältere Betriebssysteme entfernt:
Ältere Betriebssysteme, die veraltet sind und deren Entfernung in NGINX Plus R33 geplant ist:
Bisher lud NGINX jedes Mal ein Zertifikat, einen Schlüssel oder eine Zertifikatssperrliste, wenn in der NGINX-Konfiguration darauf verwiesen wurde. Dies bedeutete, dass mehrere Verweise auf dasselbe Objekt zu einer gleichen Anzahl von Neuladungen dieses Objekts führten. Diese Latenz würde sich beim Erben von Anweisungen wie Listen vertrauenswürdiger Zertifikate noch verstärken. Unter bestimmten Bedingungen würde dieses Verhalten die Startzeit von NGINX erheblich beeinträchtigen und könnte große Mengen an Speicher zum Speichern von Konfigurationen erfordern.
Mit dem neuen Verhalten verweisen SSL-Direktiven jetzt auf zwischengespeicherte Zertifikatsdateien und zugehörige Objekte. Dadurch werden der Speicherbedarf und die Ladezeiten für Konfigurationen, die wiederholt auf dieselben Zertifikatsobjekte verweisen, drastisch reduziert. Der Vorteil zeigt sich am deutlichsten in Fällen mit großen NGINX-Konfigurationen, in denen über eine große Anzahl von Standortblöcken auf eine kleine Gruppe vertrauenswürdiger Zertifikate verwiesen wird.
Hier ist eine Visualisierung der Verbesserung der Ladezeit, wobei NGINX mit ungefähr 5400 Standortblöcken (oberste Ebene und verschachtelt) und 878 Zertifikaten konfiguriert ist.
Beachten Sie den deutlichen Rückgang der Ladezeiten auf der rechten Seite des Diagramms, wo die durchschnittliche Ladezeit von etwa 40 Sekunden vor der Änderung auf etwa 6 Sekunden unter dem neuen Verhalten sinkt.
NGINX Plus R32 übernimmt eine Funktion von NGINX Open Source 1.25.5 , die NGINX eine neue Ebene der Konfigurierbarkeit hinzufügt. Insbesondere kann das NGINX- Stream- Modul jetzt als Router fungieren und als Proxy dienen, mit der Fähigkeit, Verbindungen vom Stream-Kontext an andere Kontexte wie http, Mail oder an einen separaten virtuellen Server innerhalb des Stream-Kontexts selbst weiterzuleiten.
Diese Funktionalität ist als Teil des in dieser Version eingeführten Moduls ngx_stream_pass_module verfügbar. Das Modul verfügt über eine einzelne Direktive „pass“, mit der die Adresse angegeben werden kann, an die Client-Verbindungen weitergeleitet werden sollen. Die Adresse kann durch eine Kombination aus IP-Adresse und Port, einen Socket-Pfad oder durch NGINX-Variablen angegeben oder referenziert werden.
Mit dieser Funktion können Kunden, die ihren gesamten Datenverkehr über einen einzigen L4-Endpunkt laufen lassen möchten, SSL-Verbindungen jetzt im L4-Streamkontext beenden und sie an andere Module (http, E-Mail) oder andere virtuelle Server innerhalb des Streamkontexts weiterleiten. Darüber hinaus können SSL-Verbindungen basierend auf Servernamen oder Protokollen bedingt beendet werden, während der verbleibende Datenverkehr an einen anderen Ort umgeleitet wird. Dadurch wird eine Reihe neuer Konfigurationsmöglichkeiten für die Verwaltung des Datenverkehrs von einem einzelnen Endpunkt aus freigeschaltet.
Der folgende Konfigurationsausschnitt beendet SSL-Verbindungen im Stream-Modul und übergibt sie bedingt an den HTTP-Kontext oder einen anderen virtuellen Server im Stream-Kontext, basierend auf dem angeforderten Servernamen.
http {
Server {
abhören 8000;
Standort / {
return 200 foo;
}
}
}
Stream {
Map $ssl_server_name $pass_port {
foo.example.com 8000;
Standard 9001;
}
Server {
abhören 9000 ssl;
ssl_Zertifikat domain.crt;
ssl_Zertifikatsschlüssel domain.key;
Pass 127.0.0.1:$pass_port;
}
Server{
abhören 9001;
return bar\n;
}
}
In diesem Beispiel werden alle SSL-Verbindungen am Streamserver-Block beendet. Abhängig vom Servernamen in der eingehenden Anforderung werden Verbindungen entweder an den HTTP-Server weitergeleitet, der auf Port 8000 lauscht, oder an den virtuellen Stream-Server, der auf Port 9001 lauscht.
Eine weitere Anwendung des Moduls betrifft Anwendungsfälle, in denen ein Drittanbietermodul die SSL-Terminierung nicht unterstützt. In solchen Szenarien kann das Stream_pass-Modul TLS-verschlüsselte Verbindungen beenden, bevor sie an das Drittanbietermodul weitergeleitet werden.
Dieses Beispiel zeigt, wie das RTMP-Modul , das SSL nativ nicht unterstützt, das Stream_Pass-Modul verwenden kann, um TLS-verschlüsselten Datenverkehr zu akzeptieren.
rtmp {
Server {
abhören 1935;#rtmp
Anwendung foo{
live auf;
}
}
}
Stream {
Server {
abhören 1936 ssl; #rtmps
SSL-Zertifikat domain.crt;
SSL-Zertifikatschlüssel domain.key;
Pass 127.0.0.1:1935;
}
}
In diesem Konfigurationsausschnitt wird die SSL-Verbindung im Streamserver-Block beendet und an das RTMP übergeben. Für das RTMP-Modul erscheint die Verbindung unverschlüsselt, sodass keine zusätzlichen Anpassungen oder Verarbeitungsaufwände zur Unterstützung von SSL-Verbindungen erforderlich sind.
NGINX Plus R32 beinhaltet die offizielle Verfügbarkeit von NGINX Plus-Containerimages für die privilegierte und nicht privilegierte Ausführung von NGINX Plus. Beide Containertypen werden auch mit optionalen Installationen von NGINX Agent bereitgestellt, um eine einfache Verbindung zu von NGINX unterstützten Verwaltungsebenen zu ermöglichen. Die Bilder können aus dem NGINX-Register heruntergeladen werden, verfügbar unter: private-registry.nginx.com. Befolgen Sie diese Anweisungen , um mit Ihrem NGINX Plus-Zertifikat und -Schlüssel oder JSON Web Token (JWT) auf das Image zuzugreifen.
Die folgenden potenziellen Sicherheitsprobleme wurden in der experimentellen HTTP3/QUIC-Implementierung identifiziert und behoben.
NGINX Plus R32 basiert auf NGINX Open Source 1.25.5 und übernimmt funktionale Änderungen, Funktionen und Fehlerbehebungen seit der Veröffentlichung von NGINX Plus R31 (in NGINX 1.25.4 und 1.25.5).
Die vollständige Liste der neuen Änderungen, Funktionen, Fehlerbehebungen und Problemumgehungen aus den letzten Versionen finden Sie in der NGINX- Änderungsdatei .
NGINX Plus R32 enthält Änderungen aus der NGINX JavaScript (njs)-Modulversion 0.8.4. Nachfolgend finden Sie eine Liste wichtiger Änderungen in njs seit 0.8.2 (das war die Version, die mit NGINX Plus R31 ausgeliefert wurde).
Eine umfassende Liste aller Funktionen, Änderungen und Fehlerbehebungen finden Sie im njs -Changelog .
Wenn Sie NGINX Plus verwenden, empfehlen wir Ihnen dringend, so bald wie möglich auf NGINX Plus R32 zu aktualisieren. Zusätzlich zu all den tollen neuen Funktionen erhalten Sie auch mehrere zusätzliche Fehlerbehebungen und Verbesserungen, die es NGINX einfacher machen, Ihnen zu helfen, wenn Sie ein Support-Ticket erstellen müssen.
Wenn Sie kein NGINX Plus-Benutzer sind, empfehlen wir Ihnen, es auszuprobieren. Sie können es für Anwendungsfälle in den Bereichen Sicherheit, Lastausgleich und API-Gateway oder als vollständig unterstützten Webserver mit erweiterten Überwachungs- und Verwaltungs-APIs verwenden. Beginnen Sie noch heute mit einer kostenlosen 30-Tage-Testversion .
„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."