Wydano stabilną wersję głównej gałęzi nginx 1.21.2, w ramach której kontynuowane są prace nad nowymi możliwościami (w równolegle wspieranej stabilnej gałęzi 1.20 wprowadzane są tylko zmiany związane z eliminacją poważnych błędów i podatności).
Główne zmiany:
- Zrealizowano blokadę żądań HTTP/1.0, które zawierają nagłówek HTTP „Transfer-Encoding” (wprowadzony w wersji protokołu HTTP/1.1).
- Zaprzestano wspierania eksportowego zestawu szyfrów.
- Zagwarantowano kompatybilność z biblioteką OpenSSL 3.0.
- Zrealizowano przesyłanie nagłówków „Auth-SSL-Protocol” i „Auth-SSL-Cipher” do serwera autoryzacyjnego proxy poczty.
- W API filtrowania zawartości żądań dozwolono buforowanie przetwarzanych danych.
- Podczas ładowania certyfikatów serwera wdrożono korzystanie z poziomów bezpieczeństwa, wspieranych od OpenSSL 1.1.0, określanych przez parametr „@SECLEVEL=N” w dyrektywie ssl_ciphers.
- Usunięto zakłócenia występujące podczas tworzenia SSL-połączeń z backendami w modułach stream i gRPC.
- Rozwiązano problem z zapisywaniem do dysku zawartości żądania przy użyciu HTTP/2, w przypadku braku w żądaniu nagłówka „Content-Length”.
Jednocześnie wydano njs 0.6.2, interpreter języka JavaScript dla serwer WWW nginx. Interpreter njs implementuje standardy ECMAScript i pozwala na rozszerzenie możliwości nginx w zakresie przetwarzania żądań za pomocą skryptów w konfiguracji. Skrypty mogą być używane w pliku konfiguracyjnym do definiowania zaawansowanej logiki przetwarzania żądań, formułowania konfiguracji, dynamicznego generowania odpowiedzi, modyfikacji żądania/odpowiedzi lub szybkiego tworzenia stubbów w celu rozwiązywania problemów w aplikacjach webowych. W nowej wersji do implementacji Promise dodano metody Promise.all(), Promise.allSettled(), Promise.any() oraz Promise.race(). Zrealizowano wsparcie dla obiektu AggregateError.
Źródło: opennet.ru
