Angie 版本历史#

2026#

Angie 1.11.3#

发布日期:06.02.2026.

安全性#

  • 中间人(MITM)攻击者在使用 TLS 的代理服务器之前,在超出攻击者控制的条件下, 可以在 TLS 握手开始之前向响应中注入明文数据 (CVE-2026-1642); 此修复从 nginx 1.29.5 移植而来。

软件包#

Angie 1.11.2#

发布日期:2026 年 1 月 15 日。

错误修复#

  • 如果禁用了 BPF,HTTP/3 请求可能失败并显示错误 [alert] sendmsg() failed (90: Message too large) while sending frames; 该错误出现在 1.11.0 版本中。

  • 当在启用 BPF 的情况下监听 IPv6 通配符地址时,HTTP/3 请求不被接受; 该错误出现在 1.11.0 版本中。

  • 当在 docker_endpoint 指令中指定域名时, 与 Docker API 的连接和上游服务器组的更新不会发生。

软件包#

2026 年 2 月 2 日

2025#

Angie 1.11.1#

发布日期:2025 年 12 月 30 日。

变更#

  • 现在,如果在 acme_http_port 指令中仅指定端口而不指定 IP(默认值), 并且存在监听该端口的 server 块,则 ACME 中该端口的 HTTP 质询处理 仅在这些块的 listen 指令中配置的 IP 地址上工作;不会尝试监听所有 IP 地址, 如之前那样;这使配置更加灵活,并防止了从以前版本更新时的问题, 即配置中仅有监听端口 80 和特定 IP 地址的 server 块。

错误修复#

  • HTTP/2 请求未计入服务器区域统计; 该错误出现在 1.11.0 版本中。

  • 当 ACME 客户端在配置中被禁用且没有先前获得的证书时, 对该客户端的统计 API 请求可能导致工作进程崩溃。

  • 如果在 server 块内的 status_zone 指令中使用 $http_host$cookie_* 变量作为键,HTTP/3 请求可能不会计入此状态区域。

软件包#

Angie 1.11.0#

发布日期:2025 年 12 月 24 日。

变更#

  • HTTP/3 请求中的 $http_host 变量现在从 :authority 伪标头的值初始化(如果未传递 Host 标头),这对客户端来说是正常的; 以前,与早期协议版本的差异可能导致使用 $http_host 的配置出现问题。

  • 如果 upstream 组中的所有 HTTP 服务器都不可用或返回错误, 现在在接收到根据 proxy_next_upstream 指令(及类似指令)被视为错误的状态时,始终返回自己的错误页面, 而不是最后一个服务器的响应;这确保了所有情况下的一致行为。

  • fastcgi.conffastcgi_paramsuwsgi_paramsscgi_params 配置文件中的 REQUEST_METHOD 参数现在通过 $upstream_request_method 变量设置,该变量在配置缓存时对 HEAD 请求取值 GET;这防止了以前 HEAD 请求可能导致存储空响应的问题, 该响应随后会为 GET 请求提供服务,因为在常见配置中请求方法不是缓存键的一部分。

  • ACME 服务器的最大响应大小现在由 acme_max_response_size 指令限制,而不是 acme_client 指令的 max_cert_size= 参数; 默认值对大多数情况足够,但如果证书更新以 [error] too big subrequest response while sending to client 错误消息结束,则应增加其值。

  • HTTP 模块中 variables_hash_max_size 指令的默认值 增加到 2048,以减少由于近年来添加的新变量导致的关于次优哈希构建的警告的可能性: [warn] could not build optimal variables_hash, you should increase either variables_hash_max_size: 1024 or variables_hash_bucket_size: 64; ignoring variables_hash_bucket_size

功能#

  • 新的 Metric 模块,支持任意的实时 HTTP 指标收集, 具有完全可配置的聚合方法(计数器、直方图、移动平均等);它允许在任何阶段跟踪任何请求处理数据, 按自定义键分组,并通过 /status/http/metric_zones/ API 部分公开指标 (包括 Prometheus 支持),为整个 HTTP 流量提供强大的内置分析工具。

  • 支持 ACME 的 ALPN 验证,通过在 acme_client 指令的 challenge 参数中指定 alpn 启用; 允许在仅保持 HTTPS 端口开放的情况下请求多域证书。

  • 统计 API 的 /status/http/acme_clients/ 部分中的 ACME 客户端 和证书请求过程的信息(支持 Prometheus)。

  • 在 HTTP 和 stream SSL 模块中添加了对加密客户端 Hello(ECH)的支持; 新的 ssl_encrypted_hello_key 指令指定包含私钥的文件; $ssl_encrypted_hello 变量包含有关 ECH 使用的信息。 感谢 Maxim Dounin (freenginx)。

  • 使用 image_filter 指令的 convert 参数转换图像格式。

  • Image Filter 模块中支持 AVIF 和 HEIC 格式。

  • stream 模块中支持与上游服务器连接的 PROXY protocol V2, 以及使用 proxy_protocol_tlv 指令设置任意 TLV 值的能力, 该指令允许包含变量的字符串。

  • $upstream_request_method 变量,包含上游请求方法, 当启用缓存或设置 proxy_method 时,该方法可能与客户端请求方法不同; 这有助于避免常见的配置问题,即缓存的空 HEAD 响应为 GET 请求提供服务, 以及避免分别缓存 HEADGET 响应。

  • 消除了为 ACME HTTP 质询定义单独的带有 listen 80 指令的 server 块的需要; 如有必要,可以使用 acme_http_port 指令自定义监听端口。

  • 导出 Prometheus 指标时计算列表和对象中项目数量的能力; 以尾部斜杠结尾的路径现在返回相应 API 集合中的项目计数。

  • $sent_body 变量,包含子请求或客户端模块外部请求的响应正文。

  • 邮件代理模块中支持 XOAUTH2 和 OAUTHBEARER 认证机制。 感谢 Rob Mueller 和 Maxim Dounin (freenginx)。

  • sticky 指令的 route 参数现在可以包含任意数量变量的任意字符串。

  • 在 ACME 模块中,现在自动计算续订证书的近似大小, 消除了在为大量域颁发证书时增加 acme_client 指令的 max_cert_size 参数的需要; 该参数保留用于仍需要手动配置的情况。

  • $upstream_cache_key 变量,包含正在使用的缓存键。 感谢 Kirill A. Korinsky 和 Maxim Dounin (freenginx)。

  • 支持使用 AWS-LC SSL 库构建。 感谢 Piotr Sikora (piotr at aviatrix.com)。

  • 新的 Makefile 目标 test 执行测试套件。

  • nginx 1.29.3 的所有功能,但不包括 add_header_inheritadd_trailer_inherit 指令,由于其设计不佳而被省略。

错误修复#

  • 重新加载和二进制升级过程现在可以正确处理 HTTP/3 连接; 使用 BPF 模块将连接正确路由到所有现有进程。

  • 如果 upstream 组中的所有服务器都不可用或返回错误, 则从最后一个服务器接收错误响应可能被视为成功, 尽管有 proxy_next_upstream 指令设置。

  • 如果 try_files 指令中的路径短于相关 location 块中的前缀, 则使用带有 URI 的 proxy_pass 可能导致工作进程崩溃; 该修复从 nginx 1.29.4 移植。

  • 如果 ACME 客户端未通过任何 acme 指令在 stream 块中引用, 在该块中使用任何相应的 $acme_cert_* 变量会导致配置被拒绝, 并显示 unknown variable 错误;该错误出现在 1.10.3 版本中。

  • 如果配置了将缓存索引保存到文件,则在操作期间的配置测试可能以错误结束: [alert] mmap() failed (17: File exists)[alert] munmap() failed (22: Invalid argument)

  • 如果触发了 proxy_cache_convert_head on,则忽略 proxy_method 指令。

  • upstream 块内 server 指令的 fail_timeout 选项指定的超时持续时间 实际上长一秒。

  • Angie 无法在 NetBSD 10.0 上构建。 感谢 Maxim Dounin (freenginx)。

  • 加载为 Angie PRO 构建的模块可能由于 ABI 不兼容而导致问题和崩溃; 现在此类不正确的配置被禁止,并显示相关错误消息。

软件包#

Angie 1.10.3#

发布日期:2025 年 11 月 13 日。

安全#

  • 在 SMTP 模块中使用 none 认证方法时,处理特制的登录名/密码可能导致 工作进程内存泄露到认证服务器 (CVE-2025-53859);该修复从 nginx 1.29.1 移植。

错误修复#

  • 当使用 acme_client 指令的 renew_on_load 选项时, 如果先前获得的证书存在,则不会加载该证书。这可能会限制功能, 直到证书续订完成。如果证书不存在,尝试获取新证书将失败, 并显示错误 [alert] lseek() failed (9: Bad file descriptor)

  • 如果 ACME 客户端stream 块中被引用但不在 http 块中,它将被禁用并显示警告 [warn] ACME client ... is defined but not used,并且永远不会获取证书。

  • 如果所有 acme_client 指令都有 enabled=off 参数, 并且在配置中使用了相关的 $acme_cert_* 变量,Angie 将无法启动, 并报告错误 [emerg] unknown acme_cert_* variable

  • 如果 ACME 客户端 在位于 http 块之前的 stream 块中使用,Angie 将无法启动,并报告错误 [emerg] ACME client .. is not defined but referenced

  • 某些 client 块配置在使用引用在此情况下缺失的传入连接的变量时, 可能导致工作进程崩溃。

软件包#


Angie 1.10.2#

发布日期:2025 年 8 月 21 日。

错误修复#

  • http 块中的代理模块设置可能会破坏使用 client 块 进行出站请求的模块的功能;该错误出现在 1.10.0 版本中。

  • proxy_ignore_client_abort 与使用 client 块 进行出站请求的模块一起启用可能导致工作进程崩溃; 该错误出现在 1.10.0 版本中。

  • 如果在上游组中预配置了单个服务器,通过 Docker API 添加的服务器可能不会包含在负载均衡中。

  • 如果上游组中的唯一服务器是通过 Docker API 添加的, 当检测到不可用时,它可能会被排除在负载均衡之外。

软件包#

Angie 1.10.1#

发布日期:2025 年 7 月 17 日。

变更#

  • client 块中指定的指令现在只能被该块内显式声明的 location 块继承,因此它们不会影响隐式使用 client 块进行出站请求的其他模块的配置。

功能特性#

  • 支持多个 client 块,允许将不同 location 块的通用设置分组到每个块中,从而减少配置重复。

错误修复#

  • 当在 listen 指令中使用 reuseport 参数时,所有到指定地址和端口的连接都由单个工作进程处理;该错误出现在 1.10.0 版本中。

  • 如果 QUIC 协议的 retry 模式在服务器上处于活动状态,使用 OpenSSL 库 3.5.0 或更高版本时,与上游服务器的 HTTP/3 握手可能会失败。

  • 使用 GCC 15 构建 HTTP/2HTTP/3 模块会导致错误。

  • 使用 GCC 时,使用 -O3 标志构建可能会导致错误。


Angie 1.10.0#

发布日期:2025 年 7 月 3 日。

功能特性#

  • 基于 Docker(或 Podman)容器标签自动检索和动态更新代理服务器组,使用 docker_endpoint 指令进行配置。这使得能够通过指定的 Docker API 端点实时监控容器的启动和停止事件,并允许根据其标签将其地址添加到 upstream 组或从中删除——所有这些都无需重新加载配置。

  • stream 模块中通过 ACME 协议支持自动证书获取,使用 acme 指令和 $acme_cert_*$acme_cert_key_* 等变量进行配置。

  • 使用 listen 指令的 multipath 参数支持处理 MPTCP 连接。感谢 Maxim Dounin (freenginx)、Maxime Dourov 和 Anthony Doeraene。

  • 新增 client 块,允许为各种模块发出的内部 HTTP 请求指定额外配置。

  • 包含 nginx 1.27.5 的所有功能,包括 QUIC 连接的 CUBIC 拥塞控制。

软件包#

2025 年 7 月 14 日


Angie 1.9.1#

发布日期:2025 年 5 月 29 日。

功能特性#

  • acme_dns_port 指令中支持 IP 地址和端口号;IPv4 和 IPv6 均可使用。

错误修复#

  • server_name 指令中同时使用通配符域名和匹配的三级域名可能导致 ACME 服务器在单个 ACME 客户端下为这些域名颁发证书时失败。

  • stream 模块中,在被动检查期间成功连接到代理服务器后,其在统计 API 中的状态会错误地显示为 unavailable,直到会话结束。

  • HTTP/3 请求可能会停滞并超时;该修复已从 nginx 1.29.0 移植而来。

  • 在建立到代理服务器的 HTTP/3 连接时发生早期错误可能导致工作进程崩溃。

  • 通过 HTTP/3 协议代理时,统计中的活动连接数可能显示不正确。

软件包#


Angie 1.9.0#

发布日期:2025 年 4 月 11 日。

功能特性#

  • proxy_cache_path 指令中可以指定一个文件,用于在服务器启动之间保存包含缓存索引的共享内存区域的内容;这消除了重启后重新加载缓存的需要,并允许服务器几乎立即恢复在线。

  • stream 模块中使用 ssl_early_data 指令支持 TLS 1.3 早期数据 (0-RTT)。

  • 统计 API 中上游对等点的新 busy 状态,表示对等点已达到 max_conns 选项配置的限制。

  • acme_hook 指令中的 uri= 参数允许重新定义钩子请求 URI 并支持变量。

  • acme_client 指令的 renew_on_load 参数允许在配置加载时强制证书续订。

  • 现在通过 /status/angie 统计 API 对象的 build_time 字段和 -V 命令行选项的输出显示构建时间。

  • nginx 1.27.4 的所有功能,除了 keepalive_min_timeout 指令(类似功能自 1.8.0 版本起已存在)。

变更#

  • acme_client 指令中的 enabled=off 参数现在仅禁用给定客户端的证书续订,同时保留所有其他功能;密钥和证书(如果可用)可以通过 $acme_cert_* 变量访问,而使用 $acme_hook_* 变量和 acme 指令不会导致错误。

  • 仅当在使用 acme 指令引用 ACME 客户端的 server 块中未找到有效(即符合 ACME 标准的)域名时,才会发出 no valid domain name defined for ACME client 错误。

错误修复#

  • 如果使用 NTLS 支持构建,带有变量的 proxy_ssl_certificateproxy_ssl_certificate_key 指令的继承无法正常工作。

软件包#


Angie 1.8.3#

发布日期:2025 年 4 月 2 日。

错误修复#

  • 如果同一连接内的请求属于不同的统计区域,或者在早期请求处理期间发生错误,HTTP 模块的 server 块中的 status_zone 统计可能会计算错误;该错误出现在 1.8.2 版本中。

软件包#

2025 年 4 月 4 日

2025 年 4 月 7 日

Angie 1.8.2#

发布日期:2025 年 2 月 13 日。

安全#

  • 在使用 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 模块的 server 块中使用 status_zone 指令会导致在 TLS 握手时在 access_log 中过度记录空请求;该错误出现在 1.8.0 版本中。

  • HTTP/3 流中的解码错误在关闭 QUIC 连接时可能导致工作进程崩溃;该修复已从 nginx 1.27.4 移植而来。

  • 发送 QUIC 协议版本协商数据包可能导致无限数据包交换循环;该修复已从 nginx 1.27.4 移植而来。

  • 在某些配置中,在 ACME 模块 中使用不带钩子的 DNS 质询可能导致工作进程崩溃。

软件包#

2025 年 1 月 23 日

2025 年 1 月 27 日


Angie 1.8.0#

发布日期:2024 年 12 月 19 日。

功能特性#

  • 通过处理来自 ACME 服务器的 DNS 查询来支持 DNS-01 质询,这允许自动请求任何类型的证书,包括通配符证书。

  • ACME 模块中的钩子系统,可使用 acme_hook 指令进行配置,允许使用外部应用程序处理域名质询,以提供与各种服务和 DNS 托管提供商的集成。

  • ACME 模块记录一些额外信息:证书更新的确切原因、完整域名列表、客户端的账户 ID、长时间不活动(例如轮询)以及正在质询的域名;这些信息简化了故障排除并允许指定 CAA DNS 记录。

  • acme_client 指令的 account_key 参数,允许为 ACME 服务器账户重用现有密钥,而不是自动生成新密钥。

  • 在 stream 和 HTTP 模块的 status_zone 指令中支持变量,允许在单个 locationserver 块中动态统计多个区域;特别是当单个 server 块处理多个虚拟主机时,这非常有用。

  • GZip HTTP 压缩模块与 zlib-ng 2.2.0 及更高版本的兼容性,以前可能会在错误日志中导致 [alert] gzip filter failed to use preallocated memory 消息。

  • max_headers 指令限制 HTTP 请求头字段的数量,以更好地防御 DoS 攻击。感谢 Maxim Dounin (freenginx) 和 Maksim Yevmenkin。

  • http3_max_table_capacityproxy_http3_max_table_capacity 指令用于配置 HTTP/3 动态头压缩表限制。

  • 交叉编译支持 - 构建系统现在可以使用包装脚本来运行自动测试,这使得可以在不直接在目标平台上运行测试程序的情况下准备构建。

  • nginx 1.27.3 的所有功能。

错误修复#

  • 使用 0-RTT 时 HTTP/3 客户端可能超时;该错误在 1.7.0 版本中从 nginx 继承而来。

  • proxy_pass 指令中使用变量且未指定 upstream 块的 HTTP/3 代理可能导致工作进程崩溃。

  • 使用动态表的 HTTP/3 上游如果与缓存一起使用可能导致工作进程崩溃。

  • 某些 SSL 握手可能未计入 Stream 模块的统计。

  • httpserver 级别指定的 HTTP/3 代理设置可能被忽略。

  • 在启用 NTLS 支持的情况下通过 HTTP/3 代理时,proxy_ssl_certificate 指令不起作用。

变更#

软件包#


Angie 1.7.0#

发布日期:2024 年 9 月 19 日。

功能特性#

  • 当代理服务器从组中移除时,可以通过 proxy_connection_dropgrpc_connection_dropfastcgi_connection_dropscgi_connection_dropuwsgi_connection_drop 指令配置强制关闭到该服务器的所有连接。

  • 在解析器统计 API 中增加了已发送 DNS 查询类型的计数器,该统计信息通过 resolver 指令的 status_zone 参数收集。

  • 新增 $ssl_server_cert_type 变量,包含为接收到的 TLS 连接选择的证书类型。

  • 可以通过 pid 指令的 off 参数禁用 PID 文件的创建,这在使用不可变镜像和由服务管理器直接控制时可能很有用。感谢 Maxim Dounin (freenginx)。

  • 通过中间临时文件使 PID 文件的创建具有原子性,这消除了文件已在目录中但仍为空的时刻,并允许外部程序更容易、更可靠地处理它。

  • 现在,在重新配置期间,如果 pid 指令中的名称已更改但通过符号链接指向同一文件,则不会尝试重新创建 PID 文件;特别是,这允许避免在从 /var/run/angie.pid 迁移到 /run/angie.pid 的系统上出现问题。感谢 Maxim Dounin (freenginx)。

  • Syslog 日志记录 错误现在每秒最多报告一次;这有助于避免在 syslog 服务器宕机或过载时用此类消息淹没日志。感谢 Maxim Dounin (freenginx)。

  • 在邮件代理模块中,通过 max_commands 指令配置的身份验证期间的最大命令数受到限制,以更好地防范 DoS 攻击。感谢 Maxim Dounin (freenginx)。

  • ./configure 脚本的 --feature-cache 选项,用于缓存其结果以在构建多个模块或交叉编译时进行优化。

  • nginx 1.27.1 的所有功能。

错误修复#

  • 使用 systemd 启动时可能出现 PID file ... not readable (yet?) after startFailed to parse PID from file... 错误。感谢 Maxim Dounin (freenginx)。

变更#

  • 更新了 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。

  • mime.types 配置文件中的 MIME 类型已更改:bmp 扩展名改为 image/bmprar 扩展名改为 application/vnd.rardebudeb 扩展名设置为 application/vnd.debian.binary-package。感谢 Yuriy Izorkin。

软件包#

2024 年 10 月 24 日

2024 年 11 月 29 日


Angie 1.6.2#

发布日期:2024 年 8 月 16 日。

安全#


Angie 1.6.1#

发布日期:2024 年 8 月 8 日。

功能特性#

错误修复#

  • stream 模块中使用虚拟服务器或 pass 指令时,统计 API 中的连接可能被错误地计数。

  • 在配置了 5 个或更多 ACME 客户端时,工作进程可能崩溃;该错误出现在 1.6.0 版本中。

  • 处理带有 X-Accel-Redirect 头的缓存响应可能导致工作进程崩溃。感谢 Maxim Dounin (freenginx) 和 Jiří Setnička。

软件包#


Angie 1.6.0#

发布日期:2024 年 6 月 28 日。

功能特性#

  • stream 模块的 upstream 块中的 sticky 指令及相关选项,允许配置粘性会话模式,使会话中的所有连接都路由到同一服务器。

  • stream 模块中使用 rdp_preread 指令从 RDP 连接中提取 Cookie 值到 $rdp_cookie$rdp_cookie_NAME 变量,这允许在负载均衡时记录 RDP 客户端会话并将其粘附到特定服务器。

  • server 块中支持多个 acme 指令,允许为该虚拟服务器同时配置获取两种类型的证书。

  • 命令行选项 -m-M 用于列出内置和已加载的模块。

  • ACME 模块支持 BoringSSL

  • nginx 1.27.0 的所有功能,包括 stream 模块中的虚拟服务器支持和 pass 指令,该指令允许将接受的连接传递给其他监听套接字进行处理,包括 HTTPMail 模块。

错误修复#

  • 通过 ACME 协议请求证书在某些配置上可能导致错误,日志消息类似于 [alert] getsockname() failed (9: Bad file descriptor)

  • 通过 ACME 协议请求包含大量域名的证书可能导致错误,日志消息类似于 [error] JSON parser error

  • 在配置了多个 error_log 指令的情况下,ACME 客户端可能将消息记录到不相关的日志中。

软件包#


Angie 1.5.2#

发布日期:2024 年 6 月 3 日。

安全#

  • 使用 HTTP/3 时,处理特制的 QUIC 会话可能导致工作进程崩溃、在 MTU 大于 4096 字节的系统上泄露工作进程内存或产生其他影响(CVE-2024-32760CVE-2024-31079CVE-2024-35200CVE-2024-34161);该修复已从 nginx 1.26.1 移植而来。

软件包#


Angie 1.5.1#

发布日期:2024 年 5 月 16 日。

错误修复#

  • 当在 upstream 块中的 server 指令使用 resolve 选项时,如果解析的 IP 地址数量与指定的服务器数量不同,proxy_next_upstream 机制无法正常工作。

  • 通过 ACME 协议请求证书时,工作进程可能会发生段错误。

  • stream 模块中代理 TCP 连接时,slow_start 机制无法工作。

  • 如果 HTTP/3 请求作为 TLS 1.3 早期数据接收,可能会导致错误;该问题出现在 1.4.0 版本中。

  • 使用 QUIC 中的 0-RTT 时,HTTP/3 连接可能会过早关闭。

  • 从快速连接读取请求体时,可能会长时间读取。感谢 Maxim Dounin (freenginx)。

变更#

  • 现在 ACME 客户端不会丢弃之前存储的已过期或为不同域名列表签发的证书,而是在续订时使用它们。

软件包#


Angie 1.5.0#

发布日期: 2024 年 3 月 27 日。

功能#

  • 基本支持使用 ACME 协议 自动获取和更新证书,可通过 acme_clientacme 指令以及形如 $acme_cert_=$acme_cert_key_= 的变量进行配置。

  • 通过 auto_redirect 指令配置自动重定向,向请求 URI 添加尾部斜杠。

  • 输出 统计指标 时使用 Epoch 格式的日期而不是 ISO 8601,便于在 Prometheus 中使用,并可选在 JSON API 中使用 ?date-epoch 请求参数。

  • 统计 API 中为上游对等方引入新的 recovering 状态,表明对等方在故障后正在缓慢启动,如 slow_start 选项所示。

  • 现在 -V 参数还显示相关的 nginx 版本,这对与第三方工具(特别是 certbot)的兼容性很有用。感谢 AdvTechnoKing

  • nginx 1.25.4 的所有功能。

错误修复#

  • 如果使用了 SSL 会话重用机制 (proxy_ssl_session_reuse) 并且代理服务器列表动态更新,则可能在为相应的 upstream 块配置的共享内存区域 (zone) 中发生泄漏。

软件包#

2024 年 3 月 28 日

2024 年 4 月 16 日

2024 年 4 月 25 日


Angie 1.4.1#

发布日期: 2024 年 2 月 15 日。

安全#

  • 使用 HTTP/3 时,处理特制的 QUIC 会话可能导致工作进程段错误 (CVE-2024-24989);请注意,Angie 从 1.4.0 版本开始已不受 CVE-2024-24990 影响。

软件包#

2023#

Angie 1.4.0#

发布日期:2023 年 12 月 12 日。

功能特性#

错误修复#

  • 如果代理服务器是组中唯一的服务器,即使恢复后,在 metrics API 中也可能被错误地报告为 unavailable

软件包#

2023年12月18日

2023年12月25日

2024年1月22日


Angie 1.3.2#

发布日期:2023 年 11 月 23 日。

错误修复#

  • Prometheus 输出中使用 $p8s_value 以外的变量作为值的 指标可能出现不正确的值;实际上该问题可能出现在标准 prometheus_all.conf 模板中的 angie_http_upstreams_peers_stateangie_stream_upstreams_peers_state 指标上。

  • 如果某些到上游服务器的连接尝试立即失败,可能未在 统计 API 中正确计数;该错误出现在 1.3.0 版本。

软件包#

2023年12月4日

2023年12月7日


Angie 1.3.1#

发布日期:2023 年 10 月 18 日。

安全#

  • 为 HTTP/2 流处理添加了额外限制,以更好地防御被称为"HTTP/2 Rapid Reset"的 DoS 攻击 (CVE-2023-44487)。

软件包#

2023年10月26日

2023年11月13日


Angie 1.3.0#

发布日期:2023 年 9 月 19 日。

功能特性#

  • location 指令中指定多个匹配模式的能力,允许 合并 多个具有相似设置的 location 块, 从而通过减少重复来简化配置。

  • 使用新的 prometheusprometheus_template 指令, 以 Prometheus 格式导出各种统计指标,并通过灵活的模板配置。

  • 在由 api 指令提供的统计接口中,为流上游服务器组提供 详细信息和 指标

  • stream 模块的 upstream 块中 server 指令的 resolve 选项,允许监控与域名对应的 IP 地址列表的变化, 并自动更新它而无需重新加载配置。

  • stream 模块的 upstream 块中 server 指令的 service 选项,允许从 DNS SRV 记录中检索地址列表, 并提供基本的优先级支持。

  • 通过启用 api_config_files 指令,经由 api 指令提供的接口, 访问当前工作进程使用的配置文件内容。

  • 在进程标题中显示 配置代数 编号, 允许使用 ps 工具监控配置重载的成功情况以及之前工作进程代数的数量。

  • nginx 1.25.2 的所有功能。

错误修复#

  • 当使用 ./configure 选项 --without-http_upstream_zone_module--without-stream_upstream_zone_module 时编译失败; 该错误出现在 1.2.0 版本。

变更#

  • 现在加载 OpenSSL 配置时使用应用名称 angie

软件包#


Angie 1.2.0#

发布日期:2023 年 5 月 30 日。

功能特性#

  • HTTP 模块的 upstream 块中的 sticky 指令及相关选项,允许配置会话保持模式,使会话内的所有请求都路由到同一服务器。

  • $upstream_sticky_status 变量,根据启用会话保持时将请求路由到相关上游服务器的 成功情况,取值为 NEWHITMISS

  • 在使用 TongSuo TLS 库时, HTTP 模块中对 NTLS 的支持;可以通过 ‑‑with‑ntls 构建选项启用该支持,并使用相应的 ssl_ntlsproxy_ssl_ntls 指令进行配置。

  • HTTP 代理模块中,使用 proxy_ssl_certificateproxy_ssl_certificate_key 指令指定不同类型(RSA 和 ECDSA)的多个证书 及相应密钥的能力。

  • master 进程标题中显示版本和构建名称,允许使用 ps 工具 获取正在运行的服务器实例的此信息。

  • gzip 模块压缩"207 Multi-Status"响应的能力。 感谢 DBotThePony

  • nginx 1.25.0 的所有功能, 包括 HTTP/3 支持。

软件包#

2023年6月13日

2023年7月12日

2023年7月28日

2023年8月18日


Angie 1.1.0#

发布日期:2023 年 1 月 24 日。

功能特性#

  • HTTP 模块的 upstream 块中 server 指令的 resolve 选项,允许监控与域名对应的 IP 地址列表的变化, 并自动更新它而无需重新加载配置。

  • HTTP 模块的 upstream 块中 server 指令的 service 选项,允许从 DNS SRV 记录中检索地址列表, 并提供基本的优先级支持。

  • 在由 api 指令提供的统计接口中,为 HTTP 上游服务器组提供 详细信息和指标

  • autoindex 对目录列表使用自然排序顺序。

  • nginx 1.23.3 的所有功能。

错误修复#

  • 当使用 GCC 9 或更早版本并启用 -O2 或更高优化级别时,由于错误警告导致编译失败。

软件包#

2023年3月15日

2023年4月7日

  • 新增 ALT Linux 软件包。

2023年5月11日

2023年5月26日

  • 新增 Astra Linux 特别版软件包。


2022#

Angie 1.0.0#

发布日期:2022 年 10 月 27 日。

功能特性#

  • api 指令,提供 HTTP RESTful 接口,以 JSON 格式访问 Web 服务器实例的基本信息,以及客户端连接、共享内存区域、DNS 查询、 HTTP 请求、HTTP 响应缓存、stream 模块的 TCP/UDP 会话, 以及 limit_conn/limit_req 模块的区域的 指标

  • HTTP 模块中的 status_zone 指令, 用于在 serverlocation 上下文中指定收集请求指标的区域。

  • stream 模块中的 status_zone 指令, 用于指定收集 TCP/UDP 会话指标的区域。

  • resolver 指令的 status_zone 参数, 用于指定收集 DNS 查询指标的区域。

  • $angie_version 变量,包含 Angie 的版本。

  • nginx 1.23.2 的所有功能。