The mainline version of nginx 1.21.4 has been released. This version introduces many new features, changes, and bug fixes. The updates are as follows:

Change: Support for NPN instead of ALPN to establish HTTP/2 connection has been deleted;
Change: If the client uses ALPN, nginx will now reject SSL connections;
Change: The default value of the “sendfile_max_chunk” command has been changed to 2 megabytes;
Feature: The “proxy_half_close” instruction is added to the Stream module;
Feature: The “ssl_alpn” instruction is added to the Stream module;
Feature: Added $ssl_alpn_protocol variable;
Feature: Support SSL_sendfile() when using OpenSSL 3.0;
Feature: Added “mp4_start_key_frame” command in ngx_http_mp4_module;
Bugfix: fix the error in the $content_length variable when using block transfer encoding;
Bugfix: After receiving a response with incorrect length from the proxy backend, nginx may cache the connection;
Bugfix: The invalid headers information from the backend was recorded in “info” instead of “error”. This problem appeared in version 1.21.1;
Bugfix: When using HTTP/2 and “aio_write” instructions, the request may hang;

For more details, please check:


nginx 1.21.4 主线版已发布,此版本引入了许多新特性、变化,以及错误修复,更新内容如下:

Change:支持 NPN 而不是 ALPN 来建立 HTTP/2 连接已被删除;
Change:如果客户端使用 ALPN,现在 nginx 会拒绝 SSL 连接;
Change:”sendfile_max_chunk” 指令的默认值被改为 2 兆字节;
Feature:Stream 模块中新增 “proxy_half_close” 指令;
Feature:Stream 模块中新增 “ssl_alpn” 指令;
Feature:新增 $ssl_alpn_protocol 变量;
Feature:在使用 OpenSSL 3.0 时支持 SSL_sendfile();
Feature:在 ngx_http_mp4_module 中新增 “mp4_start_key_frame” 指令;
Bugfix:修复在使用分块传输编码时在 $content_length 变量中的错误;
Bugfix:从代理后端收到一个长度不正确的响应后,nginx 可能会缓存连接;
Bugfix:来自后端的无效 headers 信息被记录在 “info” 而不是 “error” 中,这个问题在 1.21.1 版本中出现;
Bugfix:使用 HTTP/2 和 “aio_write” 指令时,请求可能会挂起;