Angie 版本历史#

2024#

Angie 1.7.0#

发布日期:19.09.2024。

功能#

  • 可以通过 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 logging 错误现在每秒最多报告一次;这有助于避免在syslog服务器宕机或过载时充斥日志。感谢 Maxim Dounin (freenginx)。

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

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

  • 所有 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类型已更改为 image/bmp 用于 bmp 扩展名,application/vnd.rar 用于 rar 扩展名;设置为 application/vnd.debian.binary-package 用于 debudeb 扩展名。感谢 Yuriy Izorkin。

#

24.10.2024

29.11.2024


Angie 1.6.2#

发布日期:16.08.2024。

安全#


Angie 1.6.1#

发布日期:08.08.2024。

功能#

错误修复#

  • 在使用虚拟服务器或 pass 指令时,stream 模块中的连接可能在统计API中计算不正确。

  • 在配置有5个或更多ACME客户端的情况下,工作进程可能会崩溃;该错误出现在1.6.0中。

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

#


Angie 1.6.0#

发布日期:28.06.2024。

功能#

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

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

发布日期:03.06.2024。

安全#

#


Angie 1.5.1#

发布日期:16.05.2024。

错误修复#

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

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

  • stream 模块中代理TCP连接时,slow_start 机制未启用。

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

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

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

变更#

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

#

27.05.2024

  • Alpine 3.20 添加了包。


Angie 1.5.0#

发布日期:27.03.2024。

功能#

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

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

  • 输出 statistics metrics 使用Epoch格式而非ISO 8601用于Prometheus 并可选在JSON API中通过 ?date-epoch 请求参数。

  • 上游节点在 statistics API 中的新 recovering 状态,指示节点在故障后慢速启动, 如同 slow_start 选项建议。

  • 现在 -V 开关还显示相关的 nginx 版本,这对于第三方实用程序的兼容性有用,特别是 certbot。感谢 AdvTechnoKing

  • 所有 nginx 1.25.4 的功能。

错误修复#

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

#

28.03.2024

16.04.2024

25.04.2024


Angie 1.4.1#

发布日期:15.02.2024。

安全#

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

#

2023#

Angie 1.4.0#

发布日期:12.12.2023。

功能#

错误修复#

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

#

18.12.2023

25.12.2023

22.01.2024


Angie 1.3.2#

发布日期:23.11.2023。

错误修复#

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

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

#

04.12.2023

07.12.2023


Angie 1.3.1#

发布日期:18.10.2023。

安全#

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

#

26.10.2023

13.11.2023


Angie 1.3.0#

发布日期:19.09.2023。

功能#

  • 支持在 location 指令中指定多个匹配模式,允许 combine 几个具有相似设置的 location 块,从而通过减少重复简化配置。

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

  • 通过 api 指令在统计界面中提供的流上游服务器组的详细信息和 metrics

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

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

  • 通过启用 api_config_files 指令,通过 api 指令提供的界面访问当前工作进程生成使用的配置文件内容。

  • 在进程标题中显示 configuration generation 编号,允许使用 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#

发布日期:30.05.2023。

功能#

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

#

13.06.2023

12.07.2023

28.07.2023

18.08.2023


Angie 1.1.0#

发布日期:24.01.2023。

功能#

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

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

  • 通过 api 指令在统计界面中提供的 HTTP 上游服务器组的 详细信息和指标

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

  • 所有 nginx 1.23.3 的功能。

错误修复#

  • 使用 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 服务器实例的基本信息,以及客户端连接、共享内存区域、DNS 查询、HTTP 请求、HTTP 响应缓存、stream 模块的 TCP/UDP 会话和 limit_conn/limit_req 模块区域的 metrics

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

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

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

  • 含有 Angie 版本的 $angie_version 变量。

  • 所有 nginx 1.23.2 的功能。