Die Hauptversion nginx 1.25.5 wurde veröffentlicht, in deren Rahmen die Entwicklung neuer Möglichkeiten fortgesetzt wird. In der parallel unterstützten stabilen Version 1.24.x werden nur Änderungen vorgenommen, die mit der Beseitigung schwerwiegender Fehler und Sicherheitsanfälligkeiten zusammenhängen. Zukünftig wird auf Basis der Hauptversion 1.25.x eine stabile Version 1.26 gebildet. Der Projektcode ist in C geschrieben und wird unter der BSD-Lizenz verbreitet.
Unter den Änderungen:
- Der Stream-Modul unterstützt virtuellen Servern, deren Konfiguration im Block „server { … }“ mit Hilfe der Direktive server_name festgelegt wird. server { server_name ~^(www\.)?(.+)$; proxy_pass www.$2:12345; }
- Ein neues Modul ngx_stream_pass_module wurde hinzugefügt, das dafür gedacht ist, eingehende Verbindungen direkt an jeden hörenden Socket weiterzuleiten, der mit Modulen wie http, stream und mail verbunden ist. stream { server { listen 12345 ssl; ssl_certificate domain.crt; ssl_certificate_key domain.key; pass 127.0.0.1:8000; } }
- Im Listen-Direktiv des Stream-Moduls wurden Unterstützung für die Parameter „deferred“ (einschließlich verzögertem Accept), „accept_filter“ (Filter für eingehende Verbindungen, der vor dem Aufruf der Funktion Accept angewendet wird) und „setfib“ (Festlegung der Routing-Tabelle) realisiert.
- Für einige Architekturen wurde die Unterstützung zur Bestimmung der Blockgröße (Cache-Line), die für die Datenübertragung zwischen dem CPU-Cache und dem Speicher verwendet wird, implementiert.
- Auf Apple Silicon-Systemen wurde die Unterstützung für den Paketmanager Homebrew hinzugefügt.
- Probleme mit der Kreuzkompilierung für Windows wurden gelöst.
- Ein Fehler, der zu Verbindungsabbrüchen bei Verwendung des 0-RTT-Modus im QUIC-Protokoll führte, wurde behoben.
Zusätzlich kann die Veröffentlichung der stabilen Version FreeNginx 1.26.0 erwähnt werden, einer Weiterentwicklung von Nginx. Das Fork wird von Maxim Dunin, einem der Hauptentwickler von Nginx, geleitet. FreeNginx positioniert sich als nichtkommerzielles Projekt, das die Entwicklung der Nginx-Codebasis ohne Unternehmensintervention sicherstellt. Die Version 1.26.0 wird als stabiler Release gewertet und umfasst Änderungen und Korrekturen aus den Mainline-Versionen Nginx 1.25. Zu den Neuerungen in FreeNginx 1.26.0 gehören die experimentelle Unterstützung für das HTTP/3-Protokoll, Verbesserungen zur Abwehr von DoS-Attacken und Korrekturen, die mit der asynchronen Verarbeitung von Ein- und Ausgabe zusammenhängen.
Gleichzeitig wurde die Veröffentlichung von njs 0.8.4, dem Interpreter der Programmiersprache JavaScript für Webserver. nginx bekannt gegeben. Der Interpreter njs implementiert die Standards von ECMAScript und ermöglicht es, die Möglichkeiten von nginx durch Skripte in der Konfiguration zu erweitern. Skripte können in der Konfigurationsdatei verwendet werden, um erweiterte Logik zur Anfrageverarbeitung zu definieren, die Konfiguration zu erstellen, dynamische Antworten zu generieren, Anfragen/Antworten zu modifizieren oder schnell Stubs zur Lösung von Problemen in Webanwendungen zu erstellen. In der neuen Version: Unterstützung für die JavaScript-Engine QuickJS wurde im CLI hinzugefügt; die Möglichkeit, den Header Server zu setzen, wurde hinzugefügt; die Überprüfung auf doppelte Variablen, die über js_set gesetzt werden, wurde implementiert.
Quelle: opennet.ru
