Сформовано випуск основної гілки 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 обробки запитів за допомогою скриптів у конфігурації. Скрипти можуть використовуватися у файлі конфігурації для визначення розширеної логіки обробки запитів, формування конфігурації, динамічної генерації відповіді, модифікації запиту/відповіді або швидкого створення заглушок із вирішенням проблем у веб-додатках. У новій версії в реалізацію Promise додані методи Promise.all(), Promise.allSettled(), Promise.any() та Promise.race(). Реалізовано підтримку об'єкта AggregateError.
Джерело: opennet.ru