Angie PRO 版本历史#

2024#

Angie PRO 1.7.0#

发布日期:19.09.2024。

功能#

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

  • 解析器统计 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 模式,将代理流服务器切换到新的 draining 状态,仅将使用 sticky 模块绑定的请求发送到服务器。

  • 包含接收到的 TLS 连接选定证书类型的 $ssl_server_cert_type 变量。

  • 通过 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 的功能。

错误修复#

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

  • 在使用 systemd 启动时,可能出现 PID 文件 ... 未读(尚未?)启动后无法从文件...解析 PID 错误。感谢 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 类型已更改为 image/bmp 用于 bmp 扩展名和 application/vnd.rar 用于 rar 扩展名;设置为 application/vnd.debian.binary-package 用于 debudeb 扩展名。感谢 Yuriy Izorkin。

软件包#

24.10.2024


Angie PRO 1.6.2#

发布日期:16.08.2024。

安全性#


Angie PRO 1.6.1#

发布日期:08.08.2024。

功能#

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

发布日期:28.06.2024。

功能#

  • 通过指定变量的值进行 HTTP 负载均衡, 该变量可以从代理上游服务器或对外部服务的定期请求获得, 使用 feedback 指令 在 upstream 块中; 这特别允许根据代理服务器的任意指标动态平衡负载: 各种资源消耗、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#

发布日期:03.06.2024。

安全性#

软件包#


Angie PRO 1.5.1#

发布日期:16.05.2024。

错误修复#

  • 当通过 API 编辑代理服务器组时,proxy_next_upstream 机制不能正常工作,并且在 HTTP 块中使用 resolve 选项的 server 指令时,如果解析的 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 客户端不会丢弃以前存储的证书,即使它们已过期或为不同域名列表颁发,但在续订时使用它们。

软件包#

27.05.2024

  • Alpine 3.20 添加软件包。


Angie PRO 1.5.0#

发布日期:27.03.2024。

功能#

  • 支持使用 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 块配置的共享内存区泄漏。

软件包#

28.03.2024

16.04.2024

25.04.2024


Angie PRO 1.4.1#

发布日期:15.02.2024。

安全性#

  • 在使用 HTTP/3 时,处理特制的 QUIC 会话时可能在工作进程中出现段错误 (CVE-2024-24989); 请注意,截至 1.4.0 版本,Angie PRO 已不易受 CVE-2024-24990 的攻击。

软件包#

2023#

Angie PRO 1.4.0#

发布日期:21.12.2023。

功能#

  • HTTP 代理模块 中支持建立与上游服务器的 HTTP/3 连接,同时允许客户端使用任意 HTTP 版本。配置通过 proxy_http_version 指令和一组 proxy_quic_proxy_http3_ 指令完成。

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

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

  • 使用 HTTP 模块的 upstream 块中的 queue (PRO) 指令配置不能在第一次尝试时进行负载均衡的请求的等待队列。

  • 用于重新配置、添加或删除 stream 模块的 upstream 块中的服务器的 HTTP RESTful JSON 接口,以及用于持久化这些更改的 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 文件传输到客户端的响应速率,比例于比特率,使用 mp4_limit_ratemp4_limit_rate_after 指令,减少带宽负载。

  • 所有 nginx 1.25.3 的功能。

错误修复#

  • 如果代理服务器是组中唯一的一个,即使在恢复后,它可能在 统计 API 中被错误地报告为 不可用

更改#

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

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

软件包#

25.12.2023


Angie PRO 1.3.2#

发布日期:23.11.2023。

错误修复#

  • 带有 essential 标志的主动 health probes 在初次检查失败时错误地处理服务器从 checking 转到 unhealthy 的过渡,导致用户请求被路由到故障服务器。

  • 在使用变量而不是 $p8s_value 作为值的 Prometheus 输出中可能出现不正确的指标值;在实践中,该问题可能发生在标准 prometheus_all.conf 模板中的 angie_http_upstreams_peers_stateangie_stream_upstreams_peers_state 中。

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

软件包#

04.12.2023

07.12.2023

12.12.2023


Angie PRO 1.3.1#

发布日期:18.10.2023。

安全性#

  • 为更好地防范被称为“HTTP/2 快速重置”的 DoS 攻击,增加了对 HTTP/2 流处理的额外限制 (CVE-2023-44487)。

软件包#

26.10.2023

13.11.2023


Angie PRO 1.3.0#

发布日期:03.10.2023。

功能#

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

  • 通过平均时间来负载均衡,从代理 HTTP 服务器接收响应头或完整响应,使用 least_time (PRO)response_time_factor (PRO) 指令在 upstream 块中调整平滑因子。

  • 使用新的 prometheusprometheus_template 指令,以灵活的模板配置导出多样化的统计指标为 Prometheus 格式。

  • 在由 api 指令提供的界面中,统计代理 HTTP 服务器接收响应头和完整响应的平均时间,并且可以通过 upstream 块的 response_time_factor (PRO) 指令调整平均平滑因子。

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

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

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

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

  • 通过启用 api_config_files 指令,访问当前工作进程代用的配置文件内容。

  • 在进程标题中显示 配置生成 编号,允许使用 ps 实用程序监控配置重载的成功和以前工作进程生成的数量。

  • 所有 nginx 1.25.2 的功能。

更改#

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

软件包#


Angie PRO 1.2.0#

发布日期:15.08.2023。

功能#

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

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

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

  • HTTP 模块中使用 TongSuo TLS 库时,支持 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#

发布日期:01.03.2023。

功能#

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

  • $upstream_sticky_status 变量可为 newhitmiss,取决于在启用粘性会话的情况下请求相关上游服务器的成功。


Angie PRO 1.1.0#

发布日期:07.02.2023。

功能#

  • 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 版本的 $angie_version 变量。

  • 所有 nginx 1.23.3 的功能。

软件包#

07.04.2023

  • ALT Linux 添加软件包。

12.05.2023

26.05.2023

  • Astra Linux 特别版添加软件包。

13.06.2023

12.07.2023

31.07.2023