Сфарміраваны выпуск асноўнай галінкі nginx 1.21.2, у рамках якой працягваецца развіццё новых магчымасцяў (у раўналежна падтрымоўванай стабільнай галінцы 1.20 уносяцца толькі змены, злучаныя з ухіленнем сур'ёзных памылак і ўразлівасцяў).
Асноўныя змены:
- Забяспечана блакіроўка запытаў HTTP/1.0, якія ўключаюць HTTP-загаловак "Transfer-Encoding" (з'явіўся ў версіі пратаколу HTTP/1.1).
- Спынена падтрымка экспартнага набору шыфраў.
- Забяспечана сумяшчальнасць з бібліятэкай OpenSSL 3.0.
- Рэалізавана перадача загалоўкаў "Auth-SSL-Protocol" і "Auth-SSL-Cipher" серверу аўтэнтыфікацыі паштовага проксі.
- У API фільтрацыі цела запыту дазволена буферызацыя апрацоўваных дадзеных.
- Пры загрузцы сертыфікатаў сервера наладжана выкарыстанне ўзроўняў бяспекі, якія падтрымліваюцца пачынальна з OpenSSL 1.1.0 і задаюцца праз параметр "@SECLEVEL=N" у дырэктыве ssl_ciphers.
- Ухіленыя завісанні, якія выяўляюцца пры стварэнні SSL-злучэнні да бэкэндаў у модулях stream і gRPC.
- Вырашана праблема з запісам на дыск цела запыту пры выкарыстанні HTTP/2, у выпадку адсутнасці ў запыце загалоўка "Content-Length".
Адначасова адбыўся выпуск njs 0.6.2, інтэрпрэтатара мовы JavaScript для вэб-сервера nginx. Інтэрпрэтатар njs рэалізуе стандарты ECMAScript і дазваляе пашыраць магчымасці nginx па апрацоўцы запытаў з дапамогай скрыптоў у канфігурацыі. Скрыпты могуць выкарыстоўвацца ў файле канфігурацыі для вызначэння пашыранай логікі апрацоўкі запытаў, фармаванні канфігурацыі, дынамічнай генерацыі адказу, мадыфікацыі запыту/адказу ці хуткага стварэння заглушак з рашэннем праблем у web-прыкладаннях. У новай версіі ў рэалізацыю Promise дададзены метады Promise.all(), Promise.allSettled(), Promise.any() і Promise.race(). Рэалізавана падтрымка аб'екта AggregateError.
Крыніца: opennet.ru