The release of the main branch nginx 1.21.2 has been formed, continuing the development of new features (only changes related to fixing serious bugs and vulnerabilities are made in the concurrently maintained stable branch 1.20).
Key Changes:
- Blocking of HTTP/1.0 requests that include the HTTP header ‘Transfer-Encoding’ (which appeared in HTTP/1.1 protocol version) has been ensured.
- Support for the export cipher suite has been discontinued.
- Compatibility with OpenSSL 3.0 has been ensured.
- The transmission of headers 'Auth-SSL-Protocol' and 'Auth-SSL-Cipher' to the authentication server of the mail proxy has been implemented.
- Buffering of processed data has been allowed in the request body filtering API.
- When loading server certificates, security levels supported since OpenSSL 1.1.0 have been established, which are specified through the parameter '@SECLEVEL=N' in the directive ssl_ciphers.
- The hangs occurring during the creation have been eliminated. SSL-connections to backends in the stream and gRPC modules.
- The problem with writing the body of the request to the disk when using HTTP/2, in the absence of the 'Content-Length' header in the request, has been resolved.
At the same time, the release of njs 0.6.2, a JavaScript interpreter for web servers nginx, has taken place. The njs interpreter implements ECMAScript standards and allows extending nginx's capabilities for handling requests through scripts in the configuration. Scripts can be used in the configuration file to define advanced request handling logic, generate configurations, dynamically create responses, modify requests/responses, or quickly create stubs to solve problems in web applications. In the new version, methods Promise.all(), Promise.allSettled(), Promise.any(), and Promise.race() have been added to the implementation of Promise. Support for the AggregateError object has been implemented.
Source: opennet.ru
