Byl vydán hlavní kanál nginx 1.21.2, v rámci kterého pokračuje vývoj nových funkcí (do paralelně udržované stabilní větve 1.20 jsou prováděny pouze změny týkající se odstranění závažných chyb a zranitelností).
Hlavní změny:
- Bylo zajištěno blokování požadavků HTTP/1.0, které zahrnují HTTP hlavičku „Transfer-Encoding“ (která se objevila ve verzi protokolu HTTP/1.1).
- Byla ukončena podpora exportní sady šifrování.
- Byla zajištěna kompatibilita s knihovnou OpenSSL 3.0.
- Byla implementována předávací hlavička „Auth-SSL-Protocol“ a „Auth-SSL-Cipher“ serveru pro autentizaci poštovního proxy.
- V API pro filtrování těla požadavku byla povolena vyrovnávací paměť zpracovaných dat.
- Při načítání serverových certifikátů byl zaveden systém úrovní bezpečnosti, které jsou podporovány od verze OpenSSL 1.1.0 a jsou nastavovány prostřednictvím parametru „@SECLEVEL=N“ v direktivě ssl_ciphers.
- Byly odstraněny zamrzání, která se objevovala při vytváření SSL-připojení k backendům v modulech stream a gRPC.
- Byl vyřešen problém s zápisem na disk těla požadavku při použití HTTP/2, v případě, že v požadavku chyběl hlavička „Content-Length“.
Zároveň byl vydán njs 0.6.2, interpretr jazyka JavaScript pro webového serveru nginx. Interpretr njs implementuje standardy ECMAScript a umožňuje rozšířit možnosti nginx pro zpracování požadavků pomocí skriptů v konfiguraci. Skripty mohou být použity v konfiguračním souboru pro definování rozšířené logiky zpracování požadavků, formování konfigurace, dynamickou generaci odezvy, modifikaci požadavku/odezvy nebo rychlé vytvoření zástupců pro řešení problémů ve webových aplikacích. V nové verzi byly do implementace Promise přidány metody Promise.all(), Promise.allSettled(), Promise.any() a Promise.race(). Byla zavedena podpora objektu AggregateError.
Zdroj: opennet.ru
