经过13个月的开发 新的稳定分支发布 高性能HTTP服务器和多协议代理服务器 nginx 1.22.0, 它包含了 1.21.x 主分支中累积的更改。
将来, 1.22 stable 分支中的所有更改都将与调试相关 和严重的漏洞。 nginx 1.23的主分支即将形成,新特性的开发将在其中继续。
对于没有保证与第三方模块兼容任务的普通用户,建议使用主分支,根据每三个月形成的商业产品Nginx Plus的版本。
nginx 1.22.0 中的主要新闻
在这个新版本的 nginx 1.22.0 中, 针对 HTTP 请求走私类攻击的增强保护 在前端-后端系统中,允许您访问在前端和后端之间的同一线程中处理的其他用户请求的内容。 Nginx 现在在使用 CONNECT 方法时总是返回错误; 通过同时指定“Content-Length”和“Transfer-Encoding”标头; 当查询字符串、HTTP 标头名称或“Host”标头值中有空格或控制字符时。
在这个新版本中脱颖而出的另一个新奇之处是 增加了对指令变量的支持 “proxy_ssl_certificate”、“proxy_ssl_certificate_key”、“grpc_ssl_certificate”、“grpc_ssl_certificate_key”、“uwsgi_ssl_certificate”和“uwsgi_ssl_certificate_key”。
此外,还注意到它已添加 支持“流水线”模式 在同一连接上向邮件代理模块发送多个 POP3 或 IMAP 请求,以及一个新的“max_errors”指令,该指令指定协议错误的最大数量,在此之后连接将被关闭。
标头 “Auth-SSL-Protocol”和“Auth-SSL-Cipher”传递给邮件代理认证服务器, 此外,传输模块中添加了对 ALPN TLS 扩展的支持。 为了确定支持的 ALPN 协议列表(h2、http/1.1),建议使用 ssl_alpn 指令,并获取与客户端同意的 ALPN 协议的信息,变量 $ssl_alpn_protocol。
其他变化 脱颖而出:
- 阻止包含“Transfer-Encoding”HTTP 标头的 HTTP/1.0 请求(在 HTTP/1.1 协议版本中引入)。
- FreeBSD 平台改进了对 sendfile 系统调用的支持,该系统调用旨在协调文件描述符和套接字之间的直接数据传输。 永久启用 sendfile(SF_NODISKIO) 模式,并添加了对 sendfile(SF_NOCACHE) 模式的支持。
- “fastopen”参数已添加到传输模块,它启用“TCP 快速打开”模式以侦听套接字。
- 修复了字符“””、“<”、“>”、“\”、“^”、“`”、“{”、“|”的转义和“}”在使用带有 URI 更改的代理时。
- proxy_half_close 指令已添加到流模块中,可以配置代理 TCP 连接在一侧关闭时的行为(“TCP 半关闭”)。
- 向 ngx_http_mp4_module 模块添加了新的 mp4_start_key_frame 指令,以从关键帧流式传输视频。
- 添加了 $ssl_curve 变量以返回为 TLS 会话中的密钥协商选择的椭圆曲线类型。
- sendfile_max_chunk 指令将默认值更改为 2 兆字节;
- OpenSSL 3.0 库提供的支持。 添加了对使用 OpenSSL 3.0 时调用 SSL_sendfile() 的支持。
- 默认情况下启用与 PCRE2 库的组装,并提供处理正则表达式的功能。
- 加载服务器证书时,已调整自 OpenSSL 1.1.0 以来支持并通过 ssl_ciphers 指令中的“@SECLEVEL=N”参数设置的安全级别的使用。
- 删除了导出密码套件支持。
- 在请求体过滤 API 中,允许缓冲处理过的数据。
- 删除了对使用下一个协议协商 (NPN) 扩展而不是 ALPN 建立 HTTP/2 连接的支持。
最后 如果您有兴趣了解更多有关它的信息,您可以查看详细信息 在下面的链接中。