安全更新:NGINX 1.31.7 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.3,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.7 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.3,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,两者均为可选,与其余 nginx-module-* 模块一样。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

其余动态模块单独打包,可按需安装:nginx-module-lua(配合 lua-resty-core 和 lua-resty-lrucache)、nginx-module-acme(自动申请 ACMEv2 证书)、nginx-module-njs、nginx-module-perl、nginx-module-xslt 和 nginx-module-image-filter。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 nginx.conf。Lua 和 ACME 为 EL9、EL10 和 Ubuntu 构建;EL7 改为提供 nginx-module-geoip,而 njs、Perl、XSLT 和 image-filter 仅有 rpm 版本。

同一版本也发布到 Docker Hub 的 codeitus/nginx:镜像基于 AlmaLinux 9,由这些软件包构建,并同时提供 amd64 和 arm64:

  • 最新镜像,来自最后发布的那个分支:docker pull codeitus/nginx
  • 最新的 Mainline 镜像:docker pull codeitus/nginx:mainline
  • 本次发布的确切版本:docker pull codeitus/nginx:1.31.7

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • Feature: ngx_http_geoip_module 和 ngx_stream_geoip_module 现在支持 MaxMind DB(MMDB)格式的数据库。
  • Feature:现在可以按 IP 地址验证后端 SSL 证书。
  • Feature:使用指令 “quic_bpf” 时,QUIC 现在支持重新配置和二进制升级。
  • Change:ngx_http_v2_module 现在使用 RFC 9218 的优先级方案,并忽略 RFC 7540 的优先级信号。
  • Bugfix:如果缓存了 “X-Accel-Redirect” 标头行,随后将缓存的响应提供给客户端,可能会在工作进程中发生段错误,或在日志中出现 “request count is zero” 告警。
  • Bugfix:如果使用 ngx_http_dav_module 在带有 “alias” 指令的 location 中处理 COPY 和 MOVE 方法,可能会在工作进程中发生段错误。
  • Bugfix:如果将 “http3_stream_buffer_size” 指令设置为较小的值,QUIC 连接可能会以日志中的 “quic flood detected” 消息关闭;该问题曾在 1.27.5 中出现。
  • Bugfix:在不发送 close_notify 的情况下关闭 SSL 连接会被视为正常关闭,包括连接被重置的情况;现在在这种情况下日志中会出现 “SSL_read() failed” 错误。
  • Bugfix:当在从 SSL 连接读取时发生错误,日志中可能出现 “[crit] SSL_write() failed” 消息。

修复的漏洞:

  • Security:如果请求 URI 通过 “rewrite” 指令被修改,然后再映射到文件路径,使用 “alias” 指令时可能会在工作进程中发生缓冲区溢出(CVE-2026-15176)。
  • Security:在对带有变量的字符串表达式进行求值时,可能会在工作进程中发生缓冲区溢出,从而影响 http 和 stream 模块中的文档根目录计算以及请求日志记录(CVE-2026-93479)。
  • Security:使用 HTTP/3 时,未知帧的一部分可能会被当作请求正文处理,从而可能绕过 “client_max_body_size” 限制,或向代理请求中注入数据(CVE-2026-95101)。
  • Security:使用 TLS 会话票据密钥轮换时,其中一个密钥未初始化,这可能允许伪造会话(CVE-2026-97629)。
  • Security:使用异步文件 I/O(AIO)时,如果 SSI 页面包含 “include virtual” 命令,在某些配置中可能会发生 use-after-free(CVE-2026-97205)。

安全更新:NGINX 1.30.6 Stable RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.3,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.30.6 Stable 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.3,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,两者均为可选,与其余 nginx-module-* 模块一样。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

其余动态模块单独打包,可按需安装:nginx-module-lua(配合 lua-resty-core 和 lua-resty-lrucache)、nginx-module-acme(自动申请 ACMEv2 证书)、nginx-module-njs、nginx-module-perl、nginx-module-xslt 和 nginx-module-image-filter。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 nginx.conf。Lua 和 ACME 为 EL9、EL10 和 Ubuntu 构建;EL7 改为提供 nginx-module-geoip,而 njs、Perl、XSLT 和 image-filter 仅有 rpm 版本。

同一版本也发布到 Docker Hub 的 codeitus/nginx:镜像基于 AlmaLinux 9,由这些软件包构建,并同时提供 amd64 和 arm64:

  • 最新镜像,来自最后发布的那个分支:docker pull codeitus/nginx
  • 最新的 Stable 镜像:docker pull codeitus/nginx:stable
  • 本次发布的确切版本:docker pull codeitus/nginx:1.30.6

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • Change:将 SSL 错误 “invalid alert” 和 “record layer failure” 的日志级别,以及任意告警编号对应的 “SSL alert number N” 的日志级别,从 “crit” 降低到 “info”。
  • Bugfix:在工作进程中可能出现段错误;如果已缓存 “X-Accel-Redirect” 标头行,并随后将缓存的响应提供给客户端,则日志中可能出现 “request count is zero” 告警。
  • Bugfix:如果在位置中使用了带有 “alias” 指令的设置,并且通过 ngx_http_dav_module 来处理 COPY 和 MOVE 方法,则工作进程中可能出现段错误。
  • Bugfix:如果使用了带 “ranges” 参数的 “geo” 指令,并且相应的二进制基线文件已损坏,则读取配置时可能出现段错误。
  • Bugfix:如果使用了带缓冲的代理,并且在向 HTTP/2 客户端发送响应时发生错误,则工作进程中可能出现 use-after-free 问题。
  • Bugfix:如果工作进程在执行 graceful shutdown 之前耗尽了文件描述符,工作进程可能无法退出,且日志中可能出现 “accept4() failed (9: Bad file descriptor)” 告警。
  • Bugfix:如果使用了 “select” 方法,则工作进程中可能出现段错误。
  • Bugfix:修复了与使用脚本代码的第三方模块之间的二进制兼容性问题;该问题曾在 1.30.4 中出现。
  • Bugfix:在 ngx_http_perl_module 中。
  • Bugfix:在 ngx_http_v2_module 的流量控制中。
  • Bugfix:如果在 ngx_http_proxy_v2_module 中使用了 “proxy_cache_revalidate” 指令,在发送缓存的 HTTP/2 响应时,可能会在日志中出现 “[error] upstream sent frame for unknown stream” 和 “[crit] cache file … contains invalid header” 消息。
  • Bugfix:在某些操作系统上使用 QUIC 时,IPv6 分片可能不会被禁用。
  • Bugfix:在 Solaris 上的 ngx_http_auth_basic_module 中。
  • Bugfixes:HTTP/3、ngx_http_image_filter_module、ngx_http_slice_module 和 ngx_http_memcached_module 中的修复。

修复的漏洞:

  • Security:当使用 “alias” 指令时,如果请求 URI 由 “rewrite” 指令进行了修改,然后再映射到文件路径,则在工作进程中可能出现缓冲区溢出(CVE-2026-15176)。
  • Security:在使用变量来评估字符串表达式时,工作进程中可能出现缓冲区溢出,这会影响 http 和 stream 模块中的 document root 计算以及请求日志记录(CVE-2026-93479)。
  • Security:使用 HTTP/3 时,未知帧的一部分可能会被当作请求体处理,从而可能绕过 “client_max_body_size” 限制或向被代理的请求中注入数据(CVE-2026-95101)。
  • Security:使用 TLS 会话票据密钥轮换时,其中一个密钥可能未初始化,这可能允许伪造会话(CVE-2026-97629)。
  • Security:当使用异步文件 I/O(AIO)时,如果 SSI 页面包含 “include virtual” 命令,则在某些配置中可能出现 use-after-free(CVE-2026-97205)。

安全更新:Apache httpd 2.4.69 RPM 和 DEB 软件包已发布,支持 HTTP/2、HTTP/3、Brotli、TLS 1.3、OpenSSL 4.0.3 和 ALPN,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

Apache httpd 2.4.69 已新增到 CodeIT 仓库,编译时启用了 HTTP/2(mod_http2)、Brotli、TLS 1.3 和 ALPN,并基于 OpenSSL 4.0.3。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

从 2.4.69 起,mod_ssl 改为基于 OpenSSL 3.0 API 而非 1.1.1 编译(OPENSSL_API_COMPAT 从 1.1.1 提升到 3.0.0),因为 OpenSSL 4.0 移除了在 3.0 之前已被弃用的功能。SRP(TLS-SRP,RFC 5054)也随之移除:SSLSRPVerifierFile 和 SSLSRPUnknownUserSeed 指令已不存在,请在升级前从配置中删除,否则 httpd 将无法启动;SSL_SRP_USER 和 SSL_SRP_USERINFO 变量也不再设置。这些软件包中的 ENGINE API 此前已被禁用。

RPM 软件包中的 mod_http2 现在直接从 httpd 源码树编译,与 DEB 软件包及 Ubuntu 自带的 apache2 一致,不再来自独立的 mod_h2 项目。软件包名称仍为 mod_http2,版本号改为随 httpd,因此 dnf 或 yum 会自动从 mod_http2 2.0.42 升级到它:无需事先卸载,修改过的 10-h2.conf 也会保留。

此版本 httpd 可通过 mod_http3 使用 HTTP/3,这是一个单独打包的实验性模块:

  • RPM,EL8 及更高版本:dnf install mod_http3
  • RPM,EL7:yum install mod_http3
  • DEB:apt install libapache2-mod-http3

模块安装后即被加载,HTTP/3 需按虚拟主机启用。编辑软件包安装的示例 vhost(ServerName 和证书):在 EL 上是 /etc/httpd/vhosts.d/http3-vhost.conf,httpd.conf 默认不包含它,请添加 IncludeOptional vhosts.d/*.conf;在 Ubuntu 上运行 a2ensite http3-vhost。然后重新加载 httpd,并在防火墙中开放 443/udp,因为 QUIC 基于 UDP。

主要变更:

  • 已修复文档中的 tar 图标,使其背景透明。PR 70238。
  • mod_ssl:修复 OpenSSL 兼容性宏,使 X509_get0_notBefore、X509_get0_notAfter 和 X509_get0_serialNumber 在 OpenSSL < 1.1 下可用。PR 70205。
  • mod_cgid、mod_ssl、mod_md:进行多项加固修复。
  • mod_md:MDServerStatus 现已默认禁用。
  • mod_auth_digest:修复与基于表达式的 AuthName 的兼容性。PR 59039。
  • mod_auth_digest.c:移除了 RFC 2069 支持;重写共享内存处理和客户端 nonce 处理;现不再需要 «authdigest-opaque» mutex。
  • mod_lbmethod_heartbeat:使用带范围校验的安全整数解析,替换 atoi()。
  • core:在临时响应的 reason phrase 中拒绝控制字符。只接受空格作为状态码分隔符。
  • mod_substitute:修复 SubstituteMaxLineLength,使其能拒绝对 K/M/G 后缀而言过大的值。
  • mod_substitute:修复在加载 Substitute 指令但缺少结束分隔符时导致的崩溃或异常行为。
  • mod_dir:修复当请求未映射到任何类型时 fixup_dir 中的崩溃。PR68527。
  • mod_http2:当客户端在仍在处理其打开的 streams 时发送正常的 GOAWAY(error code 0),不会丢弃正在进行中的响应。会话现在会先“耗尽”已打开的 streams,而不是立即拆除;这在 async MPM 中比 event 更常触发。修复了静默丢弃的响应;符合 RFC 9113。
  • mod_md:新增对 OpenSSL 4 的兼容性。
  • pytest_suite:将旧的 PERL 测试框架迁移到 Python 和 pytest。现已随源代码一起包含在 ./test 目录下。

修复的漏洞:

  • SECURITY:CVE-2026-93546:mod_dav_fs 命名空间溢出 mod_dav_fs 中的 Integer overflow(Apache HTTP Server 通过 2.4.68)允许具有写入权限的已认证 WebDAV 客户端崩溃 worker 进程,并通过声明了大量 XML namespace 的 PROPPATCH 请求持续破坏目录的属性数据库。
  • SECURITY:CVE-2026-79768:mod_userdir 信息泄露 路径等价性:’/./’(单点目录)漏洞——当将 Apache HTTP Server 的 mod_userdir 模块配置为带绝对、非通配 UserDir 指令(in 第二种形式)时会触发。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-73637:mod_auth_digest DoS 攻击 mod_auth_digest 中的 Use after free(Apache Software Foundation Apache HTTP Server 2.4.69 之前的所有平台)允许未认证的远程客户端在启用 AuthDigestNcCheck 或将 AuthDigestNonceLifetime 设置为 0 时,通过并发的 Digest 认证请求导致认证状态被破坏。建议升级到 2.4.69 版本,该版本修复了此问题。
  • SECURITY:CVE-2026-73636:mod_auth_digest 一次性 nonce 重放攻击 mod_auth_digest 中通过 capture-replay 绕过认证(Apache Software Foundation Apache HTTP Server 2.4.x 的所有平台)允许中间人(MITM)攻击者在 AuthDigestNonceLifetime 设置为 0 时,通过构造请求来触发客户端共享内存条目的垃圾回收,从而重放已捕获的 Digest 认证凭据。建议升级到 2.4.69 版本,该版本修复了此问题。
  • SECURITY:CVE-2026-63718:mod_proxy_uwsgi Transfer-Encoding 响应走私 HTTP 请求/响应走私(”HTTP Request/Response Smuggling”)漏洞:通过 mod_proxy_uwsgi 以及带 Transfer-Encoding 的构造 uwsgi 响应,导致 Apache HTTP Server 对 HTTP 请求的解释不一致,从而可进行响应走私。该问题影响 Apache HTTP Server:从 2.4.30 到 2.4.68。
  • SECURITY:CVE-2026-63686:mod_xml2enc 字符集转换失败时崩溃 mod_xml2enc 中的空指针解引用(Apache Software Foundation Apache HTTP Server 2.4.69 之前的所有平台)允许不受信任的后端服务器在通过代理返回带有字符集的响应时触发拒绝服务:该字符集的转换会部分成功后失败。建议升级到 2.4.69 版本,该版本修复了此问题。
  • SECURITY:CVE-2026-63292:mod_vhost_alias 栈溢出 mod_vhost_alias 中基于栈的缓冲区溢出(Apache Software Foundation Apache HTTP Server 通过 2.4.68 的所有平台)允许远程客户端通过一条 Host 头超过 8192 字节的 HTTP 请求触发拒绝服务,或可能执行任意代码;当 VirtualDocumentRoot 使用主机名格式说明符并且 LimitRequestFieldSize 被调高到默认值之上时会发生。建议升级到 2.4.69 版本,该版本修复了此问题。
  • SECURITY:CVE-2026-63045:mod_proxy_ftp PASV 地址处理 mod_proxy_ftp 中对 FTP PASV 应答地址的校验不当(Apache Software Foundation Apache HTTP Server 通过 2.4.68 的所有平台)会在 forward proxy 配置中允许不受信任的 FTP 服务器通过构造的 PASV 响应让代理向任意第三方主机打开数据连接。建议升级到 2.4.69 版本,该版本修复了此问题。
  • SECURITY:CVE-2026-59797:mod_ssl SSLRequire 允许 .htaccess ap_expr 文件函数 由于 SSLRequire 以及与文件相关的表达式,mod_ssl 存在权限管理不当漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-59685:ap_directory_walk() 中发生越界写入 Canonical-Name Rewrite 于 CASE_BLIND_FILESYSTEM Apache HTTP Server 在 Windows 上存在越界写入漏洞:处理具有 8.3 名称的路径时可能在展开后变大。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-58415:mod_dav_fs 属性数据库读取访问 mod_dav_fs 中的内部状态文件可被外部方访问(Apache Software Foundation Apache HTTP Server 2.4.69 之前的所有平台)允许远程客户端通过对 .DAV state directory 发起 GET 请求读取其无权授权的资源的 WebDAV dead properties。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-57941:mod_http2 通过共享 session->bbtmp 可重入性导致 use-after-free / 任意写 使用共享 session->bbtmp 可重入性时的 mod_http2 Use After Free 漏洞(Apache HTTP Server)。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-56449:mod_proxy_html:dump_content 崩溃 mod_proxy_html 中的越界写入漏洞(Apache HTTP Server),可通过构造的 HTTP 响应主体触发。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-56154:mod_rewrite 通过 %{LA-U:HTTP…} 导致 use-after-free 在使用 lookahead(%{LA-U:HTTP…})时,Apache HTTP Server 的 mod_rewrite 中存在 Use After Free 漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-56153:mod_charset_lite:finish_partial_char 中的堆溢出 mod_charset_lite 中的越界写入漏洞(Apache HTTP Server)。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-48005:mod_auth_digest 重新认证攻击 mod_auth_digest 中缺少认证检查(Apache Software Foundation Apache HTTP Server 2.4.69 之前的所有平台)允许未认证的远程客户端在启用带 AuthDigestNcCheck 的 Digest 认证时,通过伪造的 Authorization 头触发拒绝服务(强制重新认证)。建议升级到 2.4.69 版本,该版本修复了此问题。
  • SECURITY:CVE-2026-47360:mod_session:内部重定向期间未移除会话 cookie 在 Apache HTTP Server 的 mod_session_cookie 模块中存在“向未授权主体暴露敏感信息”的漏洞。
  • SECURITY:CVE-2026-46729:mod_heartmonitor 拒绝服务 mod_heartmonitor 通过 unicast listener 的 NULL 指针解引用漏洞(Apache HTTP Servers)。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-42528:mod_dav shared lock 溢出 mod_dav 中的内存计算错误(Apache httpd 2.4.67 及更早版本)允许攻击者在具备创建 WebDAV locks 的权限时使服务器子进程崩溃。建议升级到 2.4.69 版本,该版本修复了此问题
  • SECURITY:CVE-2026-42356:面向 CGI 目录中某些非 CGI 文件的内部重定向的有限 RCE 错误处理程序部署漏洞:Apache HTTP Server 允许从 CGI 程序发起的某些内部重定向目标也被当作 CGI 处理并执行。该目标必须已位于启用 CGI 的目录中,并且不得具有 mod_mime 理解的任何其他扩展名。该问题影响 Apache HTTP Server:从 2.4.60 到 2.4.68。

安全更新:NGINX 1.31.6 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.2,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.6 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.2,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

其余动态模块单独打包,可按需安装:nginx-module-lua(配合 lua-resty-core 和 lua-resty-lrucache)、nginx-module-acme(自动申请 ACMEv2 证书)、nginx-module-njs、nginx-module-perl、nginx-module-xslt 和 nginx-module-image-filter。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 nginx.conf。Lua 和 ACME 为 EL9、EL10 和 Ubuntu 构建;EL7 改为提供 nginx-module-geoip,而 njs、Perl、XSLT 和 image-filter 仅有 rpm 版本。

同一版本也发布到 Docker Hub 的 codeitus/nginx:镜像基于 AlmaLinux 9,由这些软件包构建,并同时提供 amd64 和 arm64:

  • 最新镜像,来自最后发布的那个分支:docker pull codeitus/nginx
  • 最新的 Mainline 镜像:docker pull codeitus/nginx:mainline
  • 本次发布的确切版本:docker pull codeitus/nginx:1.31.6

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • 变更:在 SSL 连接中接收到的 QUIC 传输参数扩展现在总是会被忽略。
  • 漏洞修复:如果指定了 control API socket,并且新的 nginx 可执行文件在使用 ngx_http_perl_module 模块构建时,二进制升级将无法工作。
  • 漏洞修复:在谓词 location 中评估谓词时发生的错误会被忽略,且该谓词会被当作 false 处理。
  • 漏洞修复:在查找嵌套 location 时发生的错误在配置了当前级别的由正则表达式或谓词给出的 locations 时,可能会被忽略。
  • 漏洞修复:读取配置时可能会发生段错误,如果使用了带有 “ranges” 参数的 “geo” 指令,并且对应的二进制基准文件已损坏。

修复的漏洞:

  • 安全性:在特定配置下,使用 HTTP/3 且 OpenSSL 为 3.5.0 及更早版本时,工作进程中可能会发生堆内存缓冲区溢出(CVE-2026-90439)。

安全更新:NGINX 1.30.5 Stable RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.2,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.30.5 Stable 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.2,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

其余动态模块单独打包,可按需安装:nginx-module-lua(配合 lua-resty-core 和 lua-resty-lrucache)、nginx-module-acme(自动申请 ACMEv2 证书)、nginx-module-njs、nginx-module-perl、nginx-module-xslt 和 nginx-module-image-filter。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 nginx.conf。Lua 和 ACME 为 EL9、EL10 和 Ubuntu 构建;EL7 改为提供 nginx-module-geoip,而 njs、Perl、XSLT 和 image-filter 仅有 rpm 版本。

同一版本也发布到 Docker Hub 的 codeitus/nginx:镜像基于 AlmaLinux 9,由这些软件包构建,并同时提供 amd64 和 arm64:

  • 最新镜像,来自最后发布的那个分支:docker pull codeitus/nginx
  • 最新的 Stable 镜像:docker pull codeitus/nginx:stable
  • 本次发布的确切版本:docker pull codeitus/nginx:1.30.5

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • Change: 现在在 SSL 连接中收到的 QUIC 传输参数扩展会始终被忽略。

修复的漏洞:

  • Security: 在使用 HTTP/3 且使用 OpenSSL 3.5.0 及更早版本并且特定配置下,工作进程中可能会发生堆内存缓冲区溢出(CVE-2026-90439)。

NGINX 1.31.5 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.2,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.5 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.2,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

其余动态模块单独打包,可按需安装:nginx-module-lua(配合 lua-resty-core 和 lua-resty-lrucache)、nginx-module-acme(自动申请 ACMEv2 证书)、nginx-module-njs、nginx-module-perl、nginx-module-xslt 和 nginx-module-image-filter。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 nginx.conf。Lua 和 ACME 为 EL9、EL10 和 Ubuntu 构建;EL7 改为提供 nginx-module-geoip,而 njs、Perl、XSLT 和 image-filter 仅有 rpm 版本。

同一版本也发布到 Docker Hub 的 codeitus/nginx:镜像基于 AlmaLinux 9,由这些软件包构建,并同时提供 amd64 和 arm64:

  • 最新镜像,来自最后发布的那个分支:docker pull codeitus/nginx
  • 最新的 Mainline 镜像:docker pull codeitus/nginx:mainline
  • 本次发布的确切版本:docker pull codeitus/nginx:1.31.5

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • 功能:控制 API。
  • 功能:谓词位置。
  • 功能:ngx_http_json_module 模块。
  • 功能:”client_body_early_read” 指令。
  • Bugfix:如果在对 HTTP/2 客户端发送响应时使用了带缓冲的 proxy 且发生了错误,工作进程中可能会出现 use-after-free。
  • Bugfix:如果工作进程在进行优雅关闭之前先耗尽了文件描述符,那么工作进程可能不会退出,日志中也可能出现 “accept4() failed (9: Bad file descriptor)” 告警。
  • Bugfix:当参数名过长时,向 FastCGI 和 uwsgi 后端发送的请求会被构造为无效格式。
  • 修复了 HTTP/3、ngx_http_slice_module 和 ngx_http_memcached_module 中的问题。

NGINX 1.31.4 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.1,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.4 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.1,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

其余动态模块单独打包,可按需安装:nginx-module-lua(配合 lua-resty-core 和 lua-resty-lrucache)、nginx-module-acme(自动申请 ACMEv2 证书)、nginx-module-njs、nginx-module-perl、nginx-module-xslt 和 nginx-module-image-filter。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 nginx.conf。Lua 和 ACME 为 EL9、EL10 和 Ubuntu 构建;EL7 改为提供 nginx-module-geoip,而 njs、Perl、XSLT 和 image-filter 仅有 rpm 版本。

同一版本也发布到 Docker Hub 的 codeitus/nginx:镜像基于 AlmaLinux 9,由这些软件包构建,并同时提供 amd64 和 arm64:

  • 最新镜像,来自最后发布的那个分支:docker pull codeitus/nginx
  • 最新的 Mainline 镜像:docker pull codeitus/nginx:mainline
  • 本次发布的确切版本:docker pull codeitus/nginx:1.31.4

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • Feature: stream 和 mail 模块中的 “proxy_protocol” 指令现在支持 PROXY 协议版本 2。
  • Change: 现在对后端的 HTTP/2 和 gRPC 请求总是使用伪首部 “:authority” 发送,而对后端的 HTTP/1.1 请求则使用 “Host” 首部发送。
  • Bugfix: 如果使用了 “select” 方法,工作进程中可能会发生段错误。
  • Bugfix: 具有非零 “Content-Length” 首部行的、不完整的 gRPC 响应现在会被视为格式错误。
  • Bugfix: 修复了与使用脚本代码的第三方模块的二进制兼容性问题;该问题出现在 1.31.3 中。
  • Bugfix: 在 ngx_http_perl_module 中。
  • Bugfixes 于 HTTP/2、HTTP/3、ngx_http_image_filter_module 和 ngx_http_grpc_module。