Angie 版本历史#
2024#
Angie 1.7.0#
发布日期:19.09.2024。
功能#
可以通过 proxy_connection_drop、grpc_connection_drop、fastcgi_connection_drop、scgi_connection_drop 和 uwsgi_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 start
和Failed 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
用于deb
和udeb
扩展名。感谢 Yuriy Izorkin。
包#
-
更新:
angie-module-opentracing,至版本0.36.0
angie-module-lua,至版本0.10.27
24.10.2024
为 SberLinux 添加了包。
29.11.2024
-
添加了以下包以支持WASM:
Angie 1.6.2#
发布日期:16.08.2024。
安全#
处理特制的MP4文件时,ngx_http_mp4_module 可能导致工作进程崩溃 (CVE-2024-7347); 修复已从nginx 1.27.1移植。
Angie 1.6.1#
发布日期:08.08.2024。
功能#
在 stream 模块的 status_zone 指令的 API statistics 中,新增
passed
计数器 用于跟踪通过 pass 指令传递到其他套接字的连接。
错误修复#
包#
-
更新:
angie-console-light,至版本1.4.0
angie-module-opentracing,至版本0.35.3
angie-module-zstd,至修订版
f4ba115
Angie 1.6.0#
发布日期:28.06.2024。
功能#
stream 模块的 upstream 块中的 sticky 指令和相关选项,允许配置粘性会话模式,其中会话中的所有连接都路由到同一服务器。
使用 rdp_preread 指令从RDP连接中提取Cookie值到 $rdp_cookie 和 $rdp_cookie_NAME 变量中,允许在负载均衡时记录和粘贴RDP客户端会话到特定服务器。
命令行选项
-m
和-M
用于列出内置和加载的模块。所有 nginx 1.27.0 的功能,包括在 stream 模块中支持虚拟服务器和
pass
指令,允许将接受的连接传递给其他监听套接字,包括 HTTP 和 Mail 模块。
错误修复#
使用ACME协议请求证书可能导致在某些配置中出现错误日志消息,如
[alert] getsockname() failed (9: Bad file descriptor)
。使用大量域名通过ACME协议请求证书可能导致错误日志消息,如
[error] JSON parser error
。在配置有多个 error_log 指令的情况下,ACME客户端可能会将消息记录到不相关的日志中。
包#
-
更新:
angie-module-auth-jwt,至版本0.7.0
angie-module-auth-ldap,至修订版
241200e
angie-module-jwt,至版本3.4.1
angie-module-keyval,至版本0.3.0
angie-module-lua:
stream_lua_module
,至修订版bea8a0c
angie-module-njs,至版本0.8.5
Angie 1.5.2#
发布日期:03.06.2024。
安全#
使用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#
发布日期: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_client 和 acme 指令,以及形式为 $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
块配置的共享内存区中发生泄漏。
包#
为 FreeBSD 13 (arm64),RED OS 8 (x86-64) 添加了包。
-
添加了动态模块:
-
更新:
angie-module-opentracing,至版本0.34.0
28.03.2024
-
更新:
angie-console-light,至版本1.3.0
16.04.2024
-
添加了动态模块:
-
更新:
angie-module-njs,至版本0.8.4
25.04.2024
-
添加了动态模块:
angie-module-vts:包括 module-vts, module-sts, module-stream-sts
Angie 1.4.1#
发布日期:15.02.2024。
安全#
使用HTTP/3时,处理特制的QUIC会话可能导致工作进程发生分段错误 (CVE-2024-24989); 请注意,自1.4.0版本起,Angie已经不再易受 CVE-2024-24990 的影响。
包#
-
添加了动态模块:
-
更新:
angie-module-njs,至版本0.8.3
angie-module-vod,至版本1.33
2023#
Angie 1.4.0#
发布日期:12.12.2023。
功能#
在 HTTP代理模块 中支持与上游服务器建立HTTP/3连接,同时允许客户端使用任意HTTP版本。通过 proxy_http_version 指令和一系列
proxy_quic_
和proxy_http3_
指令进行配置。使用
slow_start
选项在 upstream 块中的 server 指令中为代理服务器设置故障后的平稳上线机制。在 stream 模块中,mqtt_preread 指令允许从MQTT协议的CONNECT包中提取用户名和客户端ID到 $mqtt_preread_username 和 $mqtt_preread_clientid 变量中。
使用 mp4_limit_rate 和 mp4_limit_rate_after 指令限制MP4文件传输到客户端的响应速率,与比特率成比例,减少带宽负载。
所有 nginx 1.25.3 的功能。
错误修复#
如果代理服务器是组中唯一的服务器,即使在恢复后,也可能在 metrics API 中被错误地报告为
unavailable
。
包#
为 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
18.12.2023
-
更新:
angie-console-light,至版本1.2.0
25.12.2023
-
更新:
angie-console-light,至版本1.2.1
22.01.2024
-
添加了动态模块:
-
更新:
angie-module-auth-jwt,至版本0.6.0
angie-module-headers-more,至版本0.37
angie-module-lua:
http_lua_module
,至版本0.10.26;stream_lua_module
,至版本0.0.14
Angie 1.3.2#
发布日期:23.11.2023。
错误修复#
在 Prometheus 输出中,可能的指标值不正确,使用了其他变量而非
$p8s_value
作为值;实际上,该问题可能出现在标准prometheus_all.conf
模板中的angie_http_upstreams_peers_state
和angie_stream_upstreams_peers_state
中。对上游服务器的某些连接尝试可能未在 statistics API 中正确计数,如果它们立即失败;该错误出现在1.3.0中。
包#
04.12.2023
-
添加了动态模块:
07.12.2023
-
更新:
angie-console-light,至版本1.1.1
Angie 1.3.1#
发布日期:18.10.2023。
安全#
增加了对HTTP/2流处理的额外限制,以更好地防止已知为“HTTP/2快速重置”的DoS攻击 (CVE-2023-44487)。
包#
26.10.2023
-
添加了动态模块:
13.11.2023
-
添加了动态模块:
-
更新:
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#
发布日期:19.09.2023。
功能#
支持在
location
指令中指定多个匹配模式,允许 combine 几个具有相似设置的location
块,从而通过减少重复简化配置。以Prometheus格式导出的多种统计指标,使用新的 prometheus 和 prometheus_template 指令进行灵活的模板配置。
在 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-module-njs,至版本0.8.1
Angie 1.2.0#
发布日期:30.05.2023。
功能#
在 HTTP 模块的 upstream 块中,sticky 指令和相关选项允许配置粘性会话模式,其中会话的所有请求都路由到同一服务器。
$upstream_sticky_status 变量根据启用的粘性会话请求相关上游服务器的成功,取值为
NEW
、HIT
或MISS
。在使用 TongSuo TLS 库时,支持在 HTTP 模块中启用 NTLS;支持可通过构建时选项
--with-ntls
启用,并通过相应的 ssl_ntls 和 proxy_ssl_ntls 指令配置。在 HTTP 代理模块中,能够使用 proxy_ssl_certificate 和 proxy_ssl_certificate_key 指令指定多个具有不同类型(RSA 和 ECDSA)的证书及其对应的密钥。
在
master
进程标题中显示版本和构建名称,允许使用ps
实用程序获取有关正在运行的服务器实例的信息。gzip 模块能够压缩“207 Multi-Status”响应。感谢 DBotThePony。
所有 nginx 1.25.0 的功能,包括 HTTP/3 支持。
包#
为 Ubuntu 23.04 "Lunar Lobster" 添加了包。
-
添加了动态模块:
angie-module-lua
包括 http_lua_module 和 stream_lua_module。
13.06.2023
为 Debian 12 "Bookworm" 和 AlmaLinux 添加了包。
12.07.2023
-
添加了动态模块:
-
更新:
angie-module-njs,至版本 0.8.0。
28.07.2023
-
添加了动态模块:
18.08.2023
Angie 1.1.0#
发布日期:24.01.2023。
功能#
错误修复#
使用 GCC 9 或更旧版本且优化级别为 -O2 或更高时,由于错误警告导致编译失败。
包#
15.03.2023
-
添加了动态模块:
07.04.2023
为 ALT Linux 添加了包。
11.05.2023
为 FreeBSD 添加了包。
-
添加了动态模块:
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 指令用于在 server 和 location 上下文中指定用于收集请求指标的区域。
stream 模块中的 status_zone 指令用于指定用于收集 TCP/UDP 会话指标的区域。
resolver 指令的 status_zone 参数用于指定用于收集 DNS 查询指标的区域。
含有 Angie 版本的 $angie_version 变量。
所有 nginx 1.23.2 的功能。