Angie 版本历史#
2025#
Angie 1.8.2#
发布日期: 13.02.2025. 在处理使用 TLSv1.3 SNI 的虚拟服务器时,验证不足,
允许 SSL 会话在不同的虚拟服务器中重复使用,
从而绕过客户端 SSL 证书验证
(CVE-2025-23419);
该修复已从 nginx 1.27.4 移植。 通过 API 请求检索由变量设置的单个区域的统计值,
可能会导致工作进程进入无限循环。 HTTP/3 请求未计入区域统计数据;
该错误出现在 1.8.0 版本。 使用 QUIC 协议的 TLS 握手未计入 SSL 统计数据。 通过 ACME 协议 续订证书时,
如果 server_name 指令中的服务器名称以点 (.) 开头,可能会导致失败。安全性#
错误修复#
软件包#
2024#
Angie 1.8.1#
发布日期:2024年12月28日。 在 HTTP 模块的 HTTP/3 流的解码错误可能导致在关闭 QUIC 连接时工作进程崩溃;修复已从 nginx 1.27.4 移植。 发送 QUIC 协议版本协商数据包可能导致无限的数据包交换循环;修复已从 nginx 1.27.4 移植。 在 ACME 模块 中使用无钩子的 DNS 挑战可能在某些配置下导致工作进程崩溃。 已更新: angie-module-auth-jwt,更新至版本 0.9.0修复#
server
块中使用 status_zone 指令会导致在 TLS 握
手过程中 access_log 记录过多空请求日志;此问题出现在 1.8.0 中。软件包#
Angie 1.8.0#
发布日期:2024年12月19日。 支持通过处理来自 ACME 服务器的 DNS 查询的 ACME 模块中的钩子系统,可通过 acme_hook 指令进行配置,这允许使用外部应用程序处理域名挑战,从而与各种服务和 DNS 托管提供商集成。 ACME 模块记录了一些附加信息:证书为何被更新、完整域名列表、客户端账户 ID、长时间的不活动期(例如轮询)以及被挑战的域名;这些信息简化了故障排除,并允许指定 CAA DNS 记录。 acme_client 指令的 在流和 HTTP 模块中的 status_zone 指令中支持变量,这允许在单个 与 max_headers 指令限制 HTTP 请求头字段的数量,以更好地防范 DoS 攻击。感谢 Maxim Dounin (freenginx) 和 Maksim Yevmenkin。 http3_max_table_capacity 和 proxy_http3_max_table_capacity 指令用于配置 HTTP/3 动态头压缩表的限制。 跨编译支持 - 构建系统现在可以使用包装脚本运行自动测试,这使得能够在不直接在目标平台上运行测试程序的情况下准备构建。 nginx 1.27.3 的所有功能。 在使用 在使用 proxy_pass 指令的 HTTP/3 代理中,未指定 使用动态表的 HTTP/3 上游可能导致工作进程崩溃,如果与缓存一起使用。 一些 SSL 握手在流模块的统计中可能未被计算。 在 在启用 NTLS 支持的情况下,使用 HTTP/3 代理时 proxy_ssl_certificate 指令不起作用。 在优雅地关闭旧工作进程时,仅在 lingering_timeout 指令指定的超时到期后关闭保持连接;这种行为可以避免在此时接收回复时可能出现的客户端错误。感谢 Maxim Dounin (freenginx)。 禁用流模块变量 $ssl_server_name、$ssl_server_cert_type、$ssl_preread_protocol 和 $ssl_preread_server_name 的缓存,这使得在使用虚拟服务器时能够获得实际值。 新增动态模块: 更新: angie-module-auth-jwt 至版本 0.8.0 angie-module-jwt 至版本 3.4.2 angie-module-njs 至版本 0.8.8 angie-module-opentracing 至版本 0.38.0 angie-module-wasm 至版本 0.1-beta5特性#
DNS-01
挑战,这使得可以自动请求任何类型的证书,包括通配符证书。account_key
参数,允许重用现有密钥,而不是自动生成新的密钥。location
或 server
块内动态计算多个区域的统计数据;特别是在一个 server
块处理多个虚拟主机时,这一点尤其有用。zlib-ng
版本 2.2.0 及以上的 GZip HTTP 压缩模块兼容,此前可能会导致错误日志中出现 [alert] gzip filter failed to use preallocated memory
消息。错误修复#
0-RTT
时,HTTP/3 客户端可能会超时;该错误是从 nginx 的 1.7.0 版本继承而来的。upstream
块可能会导致工作进程崩溃。http
或 server
级别指定的 HTTP/3 代理设置可能会被忽略。变更#
软件包#
Angie 1.7.0#
发布日期:2024年9月19日。 当从组中移除代理服务器时,可以通过 proxy_connection_drop、grpc_connection_drop、fastcgi_connection_drop、scgi_connection_drop 和 uwsgi_connection_drop 指令配置强制关闭所有连接。 解析器统计 API 中的 DNS 查询类型发送计数,这些统计是通过 resolver 指令的 $ssl_server_cert_type 变量包含已接收 TLS 连接所选证书的类型。 通过 pid 指令的 通过中间临时文件使 PID 文件的创建变为原子操作,这消除了文件已在目录中但仍为空的时刻,使外部程序更容易和可靠地处理。 现在,在重新配置期间,如果 pid 指令中的名称已更改但通过符号链接指向同一文件,则不再尝试重新创建 PID 文件;特别是在系统从 Syslog logging 错误现在每秒最多报告一次;这有助于避免在 syslog 服务器关闭或过载时日志中出现大量此类消息。感谢 Maxim Dounin (freenginx)。 在邮件代理模块中,通过 max_commands 指令配置的最大认证命令数被限制,以更好地防范 DoS 攻击。感谢 Maxim Dounin (freenginx)。 nginx 1.27.1 的所有功能。 启动时可能出现 更新 HTTP 状态代码的描述,以符合 RFC 9110。感谢 Maxim Dounin (freenginx) 和 Michiel W. Beijen。 现在在 HTTP 请求前最多允许一行空行,以更好地防范 DoS 攻击。感谢 Maxim Dounin (freenginx)。 HTTP/1.x 头字段名称现在禁止没有结尾冒号的字段;来自客户端或代理服务器的此类无效头字段将导致错误响应。感谢 Maxim Dounin (freenginx) 和 Maksim Yevmenkin。 在使用 HTTP/1.1 分块传输编码读取请求体时,忽略的块扩展和尾部头字段的总大小现在受 client_max_body_size 指令的限制,以更好地防范 DoS 攻击。感谢 Maxim Dounin (freenginx) 和 Bartek Nowotarski。 更新: angie-module-opentracing 至版本 0.36.0 angie-module-lua 至版本 0.10.27 2024年10月24日 为 SberLinux 添加了软件包。 2024年11月29日 添加了对 WASM 的支持,包含以下软件包:特性#
status_zone
参数收集的。off
参数禁用 PID 文件的创建,这在使用不可变镜像和服务管理器直接控制时可能是有利的。感谢 Maxim Dounin (freenginx)。/var/run/angie.pid
迁移到 /run/angie.pid
时,可以避免问题。感谢 Maxim Dounin (freenginx)。--feature-cache
option 的 ./configure 脚本在构建多个模块或进行交叉编译时缓存其结果以进行优化。错误修复#
PID file ... not readable (yet?)
和 Failed to parse PID from file...
错误,尤其是在使用 systemd 时。感谢 Maxim Dounin (freenginx)。变更#
mime.types
配置文件中的 MIME 类型已更改为 image/bmp
,用于 bmp
扩展和 application/vnd.rar
,用于 rar
扩展;已设置为 application/vnd.debian.binary-package
,用于 deb
和 udeb
扩展。感谢 Yuriy Izorkin。软件包#
Angie 1.6.2#
发布日期:2024年8月16日。 处理特别制作的 MP4 文件时,使用 ngx_http_mp4_module 可能导致工作进程崩溃 (CVE-2024-7347);该修复已从 nginx 1.27.1 移植。安全性#
Angie 1.6.1#
发布日期:2024年8月8日。 在 stream 模块的 status_zone 指令的 API statistics 中新增 在使用虚拟服务器或 pass 指令时,可能会导致统计 API 中的连接计数不正确。 在配置中有 5 个或更多 ACME 客户端时,工作进程可能崩溃;该错误在 1.6.0 中出现。 处理带有 更新: angie-console-light 至版本 1.4.0 angie-module-opentracing 至版本 0.35.3 angie-module-zstd 至修订版 特性#
passed
计数器,跟踪传递到其他套接字的连接,使用 pass 指令。错误修复#
X-Accel-Redirect
头的缓存响应可能导致工作进程崩溃。感谢 Maxim Dounin (freenginx) 和 Jiří Setnička。软件包#
f4ba115
Angie 1.6.0#
发布日期:2024年6月28日。 sticky 指令及其相关选项在 stream 模块的 upstream 块中,允许配置粘性会话模式,其中会话中的所有连接都路由到同一服务器。 使用 rdp_preread 指令提取来自 RDP 连接的 Cookie 值,在 stream 模块中,将其提取到 $rdp_cookie 和 $rdp_cookie_NAME 变量中,这使得能够记录并将 RDP 客户端会话粘附到特定服务器,同时进行负载均衡。 命令行选项 nginx 1.27.0 的所有功能,包括在 stream 模块中支持虚拟服务器和 通过 ACME 协议请求证书可能导致某些配置出现错误,日志消息类似于 通过 ACME 协议请求大量域名的证书可能导致错误,日志消息类似于 在具有多个 error_log 指令的配置中,ACME 客户端可能将消息记录到无关的日志中。 更新: angie-module-auth-jwt 至版本 0.7.0 angie-module-auth-ldap 至修订版 angie-module-jwt 至版本 3.4.1 angie-module-keyval 至版本 0.3.0 angie-module-lua:
angie-module-njs 至版本 0.8.5特性#
-m
和 -M
列出内置和加载的模块。pass
指令,允许将接受的连接转发到另一个监听套接字,包括 HTTP 和 Mail 模块。错误修复#
[alert] getsockname() failed (9: Bad file descriptor)
。[error] JSON parser error
。软件包#
241200e
stream_lua_module
至修订版 bea8a0c
Angie 1.5.2#
发布日期:2024年6月3日。 当使用 HTTP/3 时,处理特殊构造的 QUIC 会话可能导致工作进程崩溃、在 MTU 大于 4096 字节的系统上泄露工作进程内存,或产生其他影响(CVE-2024-32760,CVE-2024-31079,CVE-2024-35200,CVE-2024-34161);修复已从 nginx 1.26.1 移植。 更新: angie-module-opentracing,版本 0.35.2安全性#
软件包#
Angie 1.5.1#
发布日期:2024年5月16日。 当在 HTTP 块中使用 server 指令的 resolve 选项时,如果解析的 IP 地址数量与指定服务器数量不同, 在通过 ACME 协议请求证书时,工作进程可能会发生分段错误。 在 stream 模块中代理 TCP 连接时,slow_start 机制无法工作。 如果 HTTP/3 请求作为 TLS 1.3 早期数据接收,可能会导致错误;该错误在 1.4.0 中出现。 在使用 QUIC 的 从快速连接读取请求主体时,可能会长时间读取。感谢 Maxim Dounin (freenginx)。 现在 ACME 客户端不会丢弃之前存储的已过期或为不同域名列表签发的证书,而是在续订时使用它们。 2024年5月27日 为 Alpine 3.20 添加了软件包。错误修复#
proxy_next_upstream
机制无法正常工作。0-RTT
时,HTTP/3 连接可能会被过早关闭。变更#
软件包#
Angie 1.5.0#
发布日期:2024年3月27日。 基本支持使用 ACME 协议 自动获取和更新证书,配置可通过 acme_client 和 acme 指令以及形如 $acme_cert_= 和 $acme_cert_key_= 的变量进行。 通过 auto_redirect 指令配置自动重定向,向请求 URI 添加尾部斜杠。 输出 statistics metrics 时使用 Epoch 格式的日期,而不是 ISO 8601,便于在 Prometheus 中使用,并可选在 JSON API 中使用 在 statistics API 中为上游对等方引入新的 现在 完全支持 nginx 1.25.4。 如果使用了 SSL 会话重用机制 proxy_ssl_session_reuse,并且代理服务器列表动态更新,则可能会在为相应的 为 FreeBSD 13 (arm64),RED OS 8 (x86-64) 添加了软件包。 添加动态模块: 更新: angie-module-opentracing,版本 0.34.0 2024年3月28日 更新: angie-console-light,版本 1.3.0 2024年4月16日 添加动态模块: 更新: angie-module-njs,版本 0.8.4 2024年4月25日 添加动态模块: angie-module-vts:包括
module-vts,
module-sts,
module-stream-sts功能#
?date-epoch
请求参数。recovering
状态,表明对等方在故障后正在缓慢启动,如 slow_start
选项所示。-V
参数还显示相关的 nginx 版本,这对与第三方工具(特别是 certbot)的兼容性很有用。感谢 AdvTechnoKing。错误修复#
upstream
块配置的共享内存区域中发生泄漏。软件包#
Angie 1.4.1#
发布日期:2024年2月15日。 当使用 HTTP/3 时,处理特殊构造的 QUIC 会话时,工作进程可能会发生分段错误(CVE-2024-24989);注意,Angie 从 1.4.0 开始已经不易受 CVE-2024-24990 的影响。 添加动态模块: 更新: angie-module-njs,版本 0.8.3 angie-module-vod,版本 1.33安全#
软件包#
2023#
Angie 1.4.0#
发布日期:2023年12月12日。 支持在 HTTP proxy module 中与上游服务器建立 HTTP/3 连接,同时允许客户端使用任意 HTTP 版本。配置通过 proxy_http_version 指令和一组 在 stream 模块中引入 mqtt_preread 指令,允许从 MQTT 协议的 CONNECT 数据包中提取用户名和客户端 ID 到 $mqtt_preread_username 和 $mqtt_preread_clientid 变量中。 限制 MP4 文件传输给客户的响应速率,使其与比特率成比例,使用 mp4_limit_rate 和 mp4_limit_rate_after 指令,从而减少带宽负载。 完全支持 nginx 1.25.3。 如果代理服务器是组中唯一的服务器,则即使恢复后,也可能错误地报告为 为 Alpine 3.19 添加了软件包。 添加动态模块: 更新: angie-module-auth-jwt,版本 0.36 angie-module-headers-more,版本 0.36 angie-module-ndk,版本 0.3.3 angie-module-opentracing,版本 0.33.0 2023年12月18日 更新: angie-console-light,版本 1.2.0 2023年12月25日 更新: angie-console-light,版本 1.2.1 2024年1月22日 添加动态模块: 更新: angie-module-auth-jwt,版本 0.6.0 angie-module-headers-more,版本 0.37 angie-module-lua:
功能#
proxy_quic_
和 proxy_http3_
指令进行。错误修复#
unavailable
,在 metrics API 中。软件包#
http_lua_module
,版本 0.10.26;
stream_lua_module
,版本 0.0.14
Angie 1.3.2#
发布日期:2023年11月23日。 在 Prometheus 输出中可能存在不正确的指标值,这些值使用了除 如果对上游服务器的某些连接尝试立即失败,则可能未在 statistics API 中正确记录;该错误在 1.3.0 中出现。 2023年12月4日 添加动态模块: 2023年12月7日 更新: angie-console-light,版本 1.1.1错误修复#
$p8s_value
之外的变量;在实践中,该问题可能出现在标准 prometheus_all.conf
模板中的 angie_http_upstreams_peers_state
和 angie_stream_upstreams_peers_state
中。软件包#
Angie 1.3.1#
发布日期:2023年10月18日。 对 HTTP/2 流处理增加额外限制,以更好地防止被称为 "HTTP/2 Rapid Reset" 的 DoS 攻击(CVE-2023-44487)。 2023年10月26日 添加动态模块: 2023年11月13日 添加动态模块: 更新: angie-console-light,版本 1.1.0 angie-module-headers-more,版本 0.35 angie-module-njs,版本 0.8.2 angie-module-vod,版本 1.32安全#
软件包#
Angie 1.3.0#
发布日期:2023年9月19日。 能够在 使用新的 prometheus 和 prometheus_template 指令,以灵活的模板配置导出 Prometheus 格式的多样统计指标。 在 stream 模块的 在 stream 模块的 通过 api 指令提供的接口访问当前工作进程生成所用的配置文件内容,并启用 api_config_files 指令。 在进程标题中显示 configuration generation 号,便于监控配置重载的成功与前一代工作进程的数量,使用 完全支持 nginx 1.25.2。 当使用 现在在加载 OpenSSL 配置时使用应用程序名称 更新: angie-module-njs,版本 0.8.1功能#
location
指令中指定多个匹配模式,允许 combine 多个具有类似设置的 location
块,从而通过减少重复简化配置。upstream
块中,server 指令的 resolve 选项允许监视与域名对应的 IP 地址列表的变化,并在无需重新加载配置的情况下自动更新。upstream
块中,server 指令的 service 选项允许从 DNS SRV 记录中检索地址列表,提供基本的优先级支持。ps
工具。错误修复#
./configure
选项 --without-http_upstream_zone_module
或 --without-stream_upstream_zone_module
时,编译失败;该错误在 1.2.0 中出现。变更#
angie
。软件包#
Angie 1.2.0#
发布日期:2023年5月30日。 在 HTTP 模块的 upstream 块中引入 sticky 指令及相关选项,允许配置粘性会话模式,其中会话的所有请求均路由到同一服务器。 $upstream_sticky_status 变量,根据启用粘性会话请求相关上游服务器的成功与否,取值为 在使用 TongSuo TLS 库时,在 HTTP 模块中支持 NTLS;支持可以通过 在 HTTP 代理模块中,可以使用 proxy_ssl_certificate 和 proxy_ssl_certificate_key 指令指定多个不同类型(RSA 和 ECDSA)的证书及其对应的密钥。 在 gzip 模块能够压缩 "207 Multi-Status" 响应。感谢 DBotThePony。 包含 nginx 1.25.0 的所有功能,包括 HTTP/3 支持。 为 Ubuntu 23.04 "Lunar Lobster" 添加了软件包。 添加了动态模块: 13.06.2023 为 Debian 12 "Bookworm" 和 AlmaLinux 添加了软件包。 12.07.2023 添加了动态模块: 更新: angie-module-njs 更新到版本 0.8.0。 28.07.2023 添加了动态模块: 18.08.2023功能#
NEW
、HIT
或 MISS
。‑‑with‑ntls
构建时选项启用,并使用相应的 ssl_ntls 和 proxy_ssl_ntls 指令进行配置。master
进程标题中显示版本和构建名称,这允许使用 ps
工具获取正在运行的服务器实例的信息。软件包#
angie-module-lua
软件包包括 http_lua_module 和 stream_lua_module。
Angie 1.1.0#
发布日期:24.01.2023。 使用 GCC 9 或更早版本时,因错误警告导致编译失败,使用 -O2 或更高优化级别。 15.03.2023 添加了动态模块: 07.04.2023 为 ALT Linux 添加了软件包。 11.05.2023 26.05.2023 为 Astra Linux 特别版添加了软件包。功能#
错误修复#
软件包#
2022#
Angie 1.0.0#
发布日期:27.10.2022。 api 指令提供 HTTP RESTful 接口,以 JSON 格式访问有关 Web 服务器实例的基本信息,以及 metrics 客户端连接、共享内存区域、DNS 查询、HTTP 请求、HTTP 响应缓存、stream 模块的 TCP/UDP 会话,以及 limit_conn/limit_req 模块的区域的指标。 HTTP 模块中的 status_zone 指令,用于指定区域以收集 server 和 location 上下文中的请求指标。 stream 模块中的 status_zone 指令,用于指定区域以收集 TCP/UDP 会话指标。 resolver 指令的 status_zone 参数,用于指定区域以收集 DNS 查询的指标。 $angie_version 变量包含 Angie 的版本。 包含 nginx 1.23.2 的所有功能。功能#