Angie PRO 版本历史#

2025#

Angie PRO 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 块配置在使用引用传入连接的变量时可能导致工作进程崩溃, 而在这种情况下该连接不存在。

  • 通过 Docker 模块 添加到上游组的服务器未被主动探测监控。

  • 流模块中 upstream_probe (PRO) 指令的 send= 参数在指定文件路径时, 对 UDP 探测工作不正确:发送的是路径而不是文件内容。

  • 如果使用了 sticky 指令的 learn 选项并重新加载配置, timeout= 参数可能不会生效,直到至少创建一个新会话。

软件包#


Angie PRO 1.10.2#

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

错误修复#

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

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

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

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

软件包#


Angie PRO 1.10.1#

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

变更#

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

功能#

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

错误修复#

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

  • stream 粘性会话请求上下文之外访问特殊的 $stream_* 变量 会导致工作进程崩溃。

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


Angie PRO 1.10.0#

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

功能#

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

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

  • 将代理服务器组的 stream 会话与 HTTP 请求绑定到外部存储, 可通过 sticky 指令在 learn 模式下使用 remote_actionremote_resultremote_uri 参数进行配置。这使得在集群环境中 客户端会话能够持久化到负载均衡的服务器,其中一组负载均衡器共享公共存储, 并在会话内将客户端请求路由到同一服务器,无论哪个均衡器接收到请求。

  • sticky 指令(在 learn 模式下)的新参数 norefresh 禁用使用时的自动会话续期。

  • sticky 的新会话模式,其中会话仅存储在远程服务器上, 并始终从中检索。可以在代理模块中灵活配置远程服务器响应的缓存。

  • 能够在主服务器组再次可用后保持备份 stream 服务器处于活动状态, 使用 upstream 块中的 backup_switch permanent[=timeout] 指令。

  • 支持通过 MPTCP 协议接受连接,使用 listen 指令中的 multipath 参数。 感谢 Maxim Dounin (freenginx)、Maxime Dourov 和 Anthony Doeraene。

  • 新的 client 块,用于为各种模块发起的内部 HTTP 请求指定附加配置。

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

错误修复#

  • 对于处于 drain 模式的上游服务器,在根据被动健康检查再次可用后, 统计 API 中的停机计数器未停止。

软件包#

2025 年 7 月 14 日


Angie PRO 1.9.1#

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

功能#

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

错误修复#

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

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

  • stream 模块中的代理服务器处于 unhealthy 状态时,统计 API 中的停机计数器可能会停止或被错误地重置。

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

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

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

  • 当处于 drain 模式的代理服务器变为不可用时,根据 proxy_next_upstream 和类似指令尝试连接到另一台服务器的操作可能不会发生。

软件包#


Angie PRO 1.9.0#

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

功能#

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

  • 在 HTTP 模块的 upstream 块中使用 backup_switch permanent[=timeout] 指令,允许在主组服务器再次可访问时,备份服务器组保持活动状态。

  • stream 模块中使用 ssl_early_data 指令支持 TLS 1.3 Early Data (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 PRO 1.8.3#

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

错误修复#

  • 如果同一连接中的请求属于不同的统计区域,或在请求早期处理时发生错误, 则 HTTP 模块中 server 块的 server 统计数据可能被误计算; 该错误始于 1.8.2 版本。

软件包#

2025年4月4日

2025年4月7日

Angie PRO 1.8.2#

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

安全#

  • 在处理带有TLSv1.3 SNI的虚拟服务器时验证不足,允许在不同虚拟服务器中重用SSL会话,从而绕过客户端SSL证书验证(CVE-2025-23419);该修复从nginx 1.27.4移植而来。

错误修复#

  • stream 模块中使用 upstream_probe (PRO) 指令配置的主动探测可能导致工作进程崩溃。

  • 从通过变量设置的单个区域检索统计值的API请求可能导致工作进程进入无限循环。

  • HTTP/3请求未在区域统计中计数;该错误出现在1.8.0版本中。

  • 使用QUIC协议的TLS握手未在SSL统计中计数。

  • server_name 指令中以点为前缀的服务器名称,通过 ACME协议 进行证书续期可能失败。

软件包#


2024#

Angie PRO 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 PRO 1.8.0#

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

功能特性#

  • 通过请求外部存储为一组代理服务器实现HTTP会话绑定,可通过 sticky 指令在 learn 模式下使用 remote_actionremote_result 参数进行配置;这允许在集群模式下配置客户端会话与负载均衡服务器的绑定,当一组负载均衡器通过共享存储统一管理时,可将一个会话内的客户端请求定向到同一台服务器,无论它们命中哪个负载均衡器。

  • 通过处理来自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 PRO 1.7.0#

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

功能特性#

  • 当代理服务器从组中移除时强制关闭所有到该服务器的连接;可通过 proxy_connection_dropgrpc_connection_dropfastcgi_connection_dropscgi_connection_dropuwsgi_connection_drop 指令进行配置,其值可以通过服务器移除的 API请求connection_drop 参数在本地覆盖。

  • 解析器统计API中发送的DNS查询类型计数器,通过 resolver 指令的 status_zone 参数收集。

  • feedback (PRO) 负载均衡现在可以在 stream 模块中使用;它根据指定的变量分配TCP/UDP会话,该变量可以从代理的上游服务器或对外部服务的定期请求中获取。这允许根据代理服务器的任意指标(如资源消耗、CPU/内存利用率和队列长度)进行动态负载均衡。

  • feedback (PRO) 指令的 last_byte 选项,允许在接收到整个响应后处理上游服务器反馈,而不仅仅是头部。

  • feedback (PRO) 负载均衡方法现在接受浮点数作为变量值。

  • least_time (PRO) 指令的 account 参数,允许使用变量指定哪些请求被考虑用于 least_time 负载均衡,包括仅考虑 upstream_probe (PRO) 请求。

  • least_time (PRO) 指令的 factor 参数,允许为 least_time 负载均衡器指定可调整的平滑因子,并覆盖用于统计收集的 response_time_factor (PRO) 的值。

  • drain 模式,将代理的stream服务器切换到新的 draining 状态,此时仅将使用 sticky 模块绑定的请求发送到该服务器。

  • $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)。

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

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

  • nginx 1.27.1 的所有功能。

错误修复#

  • queue (PRO) 指令配置的排队请求的等待超时可能导致工作进程崩溃。

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

变更#

  • 根据RFC 9110更新了HTTP状态码的描述。感谢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日


Angie PRO 1.6.2#

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

安全#

Angie PRO 1.6.1#

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

功能#

  • stream 模块的 status_zone 指令配置的 API 统计 区域中新增 passed 计数器, 用于跟踪使用 pass 指令传递到其他监听套接字的连接。

缺陷修复#

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

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

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

软件包#


Angie PRO 1.6.0#

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

功能#

  • 基于指定变量值的 HTTP 请求负载均衡, 该变量值可从代理服务器获取或通过定期轮询外部服务获取, 使用 upstream 块中的 feedback 指令进行配置; 这特别允许根据代理服务器的任意指标动态重新分配负载: 各种资源消耗、CPU/内存利用率、队列长度等。

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

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

  • upstream_probe 指令的 persistent 选项, 允许在配置重新加载后,对先前健康的服务器避免等待 essential 探测通过。

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

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

  • $upstream_probe 变量, 包含由 upstream_probe 发出的当前活动探测的名称。

  • ACME 模块中支持 BoringSSL

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

缺陷修复#

  • 在某些配置上,主动 upstream_probe 探测可能无法工作, 同时记录类似 [alert] getsockname() failed (9: Bad file descriptor) 的错误消息。

  • 在某些配置上,通过 ACME 协议请求证书可能失败, 并记录类似 [alert] getsockname() failed (9: Bad file descriptor) 的日志消息。

  • 通过 ACME 协议请求包含大量域名的证书可能失败, 并记录类似 [error] JSON parser error 的日志消息。

  • 在配置了多个 error_log 指令的情况下, ACME 客户端可能将消息输出到错误的日志中。

软件包#


Angie PRO 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 PRO 1.5.1#

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

错误修复#

  • 当通过 API 编辑一组代理服务器时,proxy_next_upstream 机制未能正常工作,并且当在 HTTP 块中的 server 指令使用 resolve 选项时,如果解析的 IP 地址数量与指定服务器的数量不同。

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

  • learn 模式下的 sticky 指令在指定的 lookupcreate 变量数量不同的情况下可能会不正确地工作。

  • stream 模块中代理 TCP 连接时,slow_start 机制未能正常工作。

  • 如果以 TLS 1.3 提前数据的形式接收,HTTP/3 请求可能导致错误;此错误在 1.4.0 中出现。

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

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

变更#

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

软件包#

2024年5月27日

  • Alpine 3.20 添加了软件包。

Angie PRO 1.5.0#

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

安全#

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

  • drain 模式,将代理的 HTTP 服务器切换到新的 draining 状态, 此时只有使用 sticky 模块绑定的请求才会发送到该服务器。

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

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

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

  • nginx 1.25.4 的所有功能。

错误修复#

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

软件包#

2024年3月28日

2024年4月16日

2024年4月25日


Angie PRO 1.4.1#

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

功能#

  • 使用 HTTP/3 时,处理特制的 QUIC 会话时可能在工作进程中发生段错误 (CVE-2024-24989); 请注意,Angie PRO 自 1.4.0 起已不再易受 CVE-2024-24990 的影响。

软件包#

2023#

Angie PRO 1.4.0#

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

功能#

  • 支持在 HTTP proxy module 中建立 HTTP/3 连接到上游服务器,同时允许客户端使用任意 HTTP 版本。配置通过 proxy_http_version 指令及一组 proxy_quic_proxy_http3_ 指令完成。

  • upstream_probe (PRO) 指令用于通过定期创建测试连接或发送数据报来检查 stream 模块中服务器的健康状况。

  • sticky 指令的附加 learn 模式,用于将会话绑定到代理服务器,允许发现会话并将其保存在服务器的共享内存中。

  • 等待队列用于无法首次尝试负载均衡的请求,通过在 HTTP 模块的 upstream 块中使用 queue (PRO) 指令配置。

  • HTTP RESTful JSON interface 用于在 stream 模块的 upstream 块中重新配置、添加或删除服务器,以及用于持久化这些更改的 state 指令。

  • 通过平均建立连接时间、接收响应的第一个或最后一个字节的时间,对代理的 stream upstream 服务器进行负载均衡,使用 least_time (PRO)response_time_factor (PRO) 指令在 upstream 块中进行可调平滑因子。

  • 通过 api 指令提供的接口,获取代理的 stream upstream 服务器的平均建立连接时间、接收响应的第一个和最后一个字节的统计信息,并能够通过 upstream 块的 response_time_factor (PRO) 指令调整平均平滑因子。

  • 使用 slow_start 选项,在 upstream 块中的 server 指令中平滑地将代理服务器上线,经过故障后。

  • mqtt_preread 指令在 stream 模块中,允许从 MQTT 协议的 CONNECT 数据包中提取用户名和客户端 ID 到 $mqtt_preread_username$mqtt_preread_clientid 变量中。

  • 通过 mp4_limit_ratemp4_limit_rate_after 指令,按比特率限制传输到客户端的 MP4 文件的响应速率,从而减少带宽负载。

  • nginx 1.25.3 的所有功能。

错误修复#

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

变更#

  • 现在代理服务器处于 checking 状态的时间不计入 downtime

  • 标准 prometheus_all.conf 模板包括所有额外的 Prometheus 指标和仅由 PRO 版本公开的可能 state 值。

软件包#

2023年12月25日

2024年1月22日


Angie PRO 1.3.2#

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

错误修复#

  • 带有 essential 标志的主动 健康探测 在初始检查失败时未正确处理服务器从 checkingunhealthy 的转换, 导致用户请求被路由到故障服务器。

  • 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 日

2023 年 12 月 12 日


Angie PRO 1.3.1#

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

安全#

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

软件包#

2023 年 10 月 26 日

2023 年 11 月 13 日


Angie PRO 1.3.0#

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

功能特性#

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

  • 根据从代理 HTTP 服务器接收响应头或完整响应的平均时间进行负载均衡, 具有可调的平滑因子,使用 upstream 块中的 least_time (PRO)response_time_factor (PRO) 指令。

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

  • api 指令提供的接口中显示代理 HTTP 服务器接收响应头和完整响应的平均时间统计, 能够通过 upstream 块的 response_time_factor (PRO) 指令调整平均平滑因子。

  • api 指令提供的统计接口中显示 stream 上游服务器组的详细信息和 指标

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

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

  • 支持使用 http 模块的 upstream 块中的 bind_conn (PRO) 指令将客户端连接绑定到后端服务器连接, 特别适用于代理使用 NT LAN Manager (NTLM) 身份验证的连接。

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

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

  • nginx 1.25.2 的所有功能。

变更#

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

软件包#


Angie PRO 1.2.0#

发布日期:2023 年 8 月 15 日。

功能特性#

  • 用于重新配置、添加或删除 HTTP 模块的 upstream 块中服务器的 HTTP RESTful JSON 接口, 以及用于持久化这些更改的 state 指令。

  • upstream_probe (PRO) 指令,通过定期发送探测请求来检查 HTTP 模块的 upstream 块中服务器的健康状况。

  • HTTP 代理模块中的缓存分片支持, 可以根据任意响应参数将响应缓存到不同的目录(驱动器)中, 通过 proxy_cache 指令的新 path- 选项使用变量进行配置。

  • 在使用 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 支持。

变更#

软件包#


Angie PRO 1.1.0-p1#

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

功能特性#

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

  • $upstream_sticky_status 变量,根据启用会话保持时请求相关上游服务器的成功情况, 可以是 NEWHITMISS


Angie PRO 1.1.0#

发布日期:2023 年 2 月 7 日。

功能特性#

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

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

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

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

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

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

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

  • 通过 server_tokens 指令任意配置默认错误页面上的签名和 Server 响应头字段。

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

  • nginx 1.23.3 的所有功能。

软件包#

2023 年 4 月 7 日

  • 新增 ALT Linux 软件包。

2023 年 5 月 12 日

2023 年 5 月 26 日

  • 新增 Astra Linux Special Edition 软件包。

2023 年 6 月 13 日

2023 年 7 月 12 日

2023 年 7 月 31 日