Opublikowano wydanie głównej gałęzi nginx 1.29.4, w której kontynuowane są prace nad nowymi możliwościami. W równolegle wspieranej stabilnej gałęzi 1.28.x wprowadzane są jedynie zmiany związane z eliminacją poważnych błędów i luk. W przyszłości na bazie głównej gałęzi 1.29.x zostanie stworzona stabilna gałąź 1.30. Kod projektu jest napisany w języku C i rozpowszechniany na licencji BSD.
W nowym wydaniu:
- W module ngx_http_proxy dodano obsługę protokołu HTTP/2, co pozwala na korzystanie z HTTP/2 podczas komunikacji z backendami.
- Dodano wsparcie dla rozszerzenia TLS ECH (Encrypted ClientHello), które kontynuuje rozwój rozszerzenia ESNI (Encrypted Server Name Indication) i służy do szyfrowania informacji o parametrach sesji TLS, takich jak żądana nazwa domeny. Kluczową różnicą między ECH a ESNI jest to, że w ECH szyfrowane jest całe wiadomości TLS ClientHello, co pozwala zablokować wycieki przez pola, które nie są objęte ESNI, na przykład pole PSK (Pre-Shared Key). Użycie ECH jest włączane przez wskazanie w dyrektywie "ssl_ech_file" pliku konfiguracyjnego ECHConfig w formacie PEM. Wsparcie jest dostępne przy użyciu kompilacji OpenSSL z ECH.
- Zasady sprawdzania hosta i portu w treści żądania, nagłówku „Host” oraz pseudo-nagłówku „:authority” dostosowane zostały do wymagań RFC 3986.
- Podanie jednej sekwencji znaku nowej linii jako końcowej sekwencji w żądaniach chunked lub w ciele odpowiedzi jest teraz traktowane jako błąd.
- Usunięto awaryjne zakończenie przy użyciu HTTP/3 z biblioteką OpenSSL 3.5.1+.
- Usunięto awaryjne zakończenie procesu roboczego przy jednoczesnym wskazywaniu dyrektyw try_files i proxy_pass z URI.
Źródło: opennet.ru
