Nginx 1.30 ändert das Standard-Proxy-Verhalten
Nginx 1.30 ist da: ECH verschlĂĽsselt den TLS-Handshake, Backends sprechen HTTP/2, und Multipath TCP nutzt mehrere Netzwerkpfade parallel.
(Bild: heise medien)
Nginx 1.30.0 ist als neue Stable-Version erschienen und übernimmt zahlreiche Funktionen aus der 1.29.x-Mainline. Die wichtigsten Neuerungen betreffen moderne Webprotokolle und Transportmechanismen: HTTP Early Hints (103), HTTP/2-Verbindungen zu Backends, Encrypted ClientHello (ECH), Multipath TCP und Sticky Sessions. Außerdem ändert sich ein Standardverhalten: Das Proxy-Modul nutzt für Backend-Verbindungen nun HTTP/1.1 mit Keep-Alive.
Nginx ist ein weit verbreiteter Open-Source-Webserver, Reverse Proxy und Load Balancer, der vor allem in hochskalierenden Webanwendungen und Cloud-Umgebungen zum Einsatz kommt. Die Stable-Releases ĂĽbernehmen erprobte Funktionen aus der Mainline und gelten als fĂĽr den Produktiveinsatz geeignet.
Early Hints, HTTP/2 zu Backends und neues Proxy-Verhalten
Mit HTTP Early Hints kann Nginx Clients schon vor der eigentlichen Antwort auf benötigte Ressourcen hinweisen. Der Server schickt dazu einen HTTP-Statuscode 103 mit Preload-Headern, sodass Browser frühzeitig CSS- oder JavaScript-Dateien laden können – etwa während das Backend noch Inhalte rendert. Das verkürzt die wahrgenommene Ladezeit.
Neu ist auch die Möglichkeit, Backend-Server über HTTP/2 anzusprechen. Bisher nutzte Nginx für diese Verbindungen typischerweise HTTP/1.1. HTTP/2 erlaubt Multiplexing, also mehrere parallele Requests über eine einzige Verbindung. Davon profitieren vor allem Microservice-Architekturen, in denen ein API-Gateway viele Backend-Endpunkte gleichzeitig anspricht.
Eine kleine, aber praxisrelevante Änderung: Das Proxy-Modul verwendet nun standardmäßig HTTP/1.1 mit Keep-Alive für Backend-Verbindungen. Bestehende Verbindungen lassen sich so wiederverwenden, was die Zahl der Verbindungsaufbauten senkt und die Performance bei vielen kurzen Requests verbessert.
VerschlĂĽsselung und Transport: ECH und Multipath TCP
Mit Encrypted ClientHello (ECH) verschlüsselt Nginx Teile des TLS-Handshakes – insbesondere die Server Name Indication (SNI). Dritte können damit beim Verbindungsaufbau nicht mehr erkennen, welche Domain ein Client anfragt. Die Integration setzt auf aktuelle OpenSSL-Schnittstellen und umfasst Anpassungen bei Logging und Fehlerbehandlung.
Ebenfalls neu: Unterstützung für Multipath TCP (MPTCP). Die Technik nutzt mehrere Netzwerkpfade gleichzeitig, etwa WLAN und Mobilfunk parallel. Verbindungen werden dadurch stabiler und können im Idealfall höhere Bandbreiten erreichen. Voraussetzung ist allerdings MPTCP-Support auf Betriebssystem- und Netzwerkebene.
Fürs Load Balancing bringt Nginx 1.30 Sticky Sessions mit. Sie leiten Anfragen eines Clients konsistent an denselben Backend-Server weiter. Das hilft bei zustandsbehafteten Anwendungen, die Session-Daten nicht zentral speichern. Das Keepalive-Modul für Upstreams ist nun standardmäßig aktiv. Zusammen mit dem geänderten Proxy-Verhalten (HTTP/1.1 mit Keep-Alive) reduziert das den Overhead bei der Verbindungsverwaltung zu Backends spürbar.
TLS-Stack und QUIC-Verbesserungen
Das Release enthält zahlreiche Verbesserungen rund um HTTP/3 und QUIC – darunter Stabilitätsfixes, Anpassungen an neue OpenSSL-3.5-APIs und Optimierungen beim Verbindungsmanagement. Hinzu kommt Unterstützung für TLS-Zertifikatskompression, die den Handshake schlanker macht. Das zahlt sich vor allem bei mobilen Clients und HTTP/3-Verbindungen aus.
Im TLS-Stack gibt es neue Callback-Mechanismen bei der ClientHello-Verarbeitung, die eine flexiblere Zertifikatsauswahl ermöglichen. Gleichzeitig hat das Projekt die Kompatibilität mit OpenSSL 4.0, BoringSSL und AWS-LC erweitert.
Videos by heise
Konfiguration, Plattform und Bugfixes
Auf der Konfigurationsseite gibt es unter anderem eine neue max_headers-Direktive, die die Zahl der erlaubten Header begrenzt und so vor Missbrauch schĂĽtzt. Auf macOS lassen sich jetzt TCP-Keepalive-Parameter konfigurieren.
Wie üblich umfasst das Release viele Bugfixes – unter anderem bei HTTP/2, HTTP/3, Proxying, gRPC und den Mail-Modulen. Die Entwickler haben dabei auch fehlerhafte Header-Verarbeitung, Integer-Überläufe und Validierungsfehler behoben.
Alle Informationen zu Nginx 1.30.0 finden sich in den Release Notes auf der GitHub-Projektseite.
Siehe auch:
- Nginx bei heise download
(fo)