<!-- review: finished -->

<a id="pro-changes"></a>

# Angie PRO 版本历史

## 2026

<a id="angie-pro-1-11-5"></a>

### Angie PRO 1.11.5

发布日期：15.05.2026.

<a id="security-pro-1-11-5"></a>

#### 安全性

- 当 [rewrite](https://cn.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#id5) 指令使用未命名的捕获组（例如 `$1`、`$2`）
  且替换字符串包含 `?` 时，如果其后跟随 [rewrite](https://cn.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#id5)、[if](https://cn.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#if) 或 [set](https://cn.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#set)
  指令，攻击者在超出攻击者控制的条件下，可能导致工作进程崩溃，
  并且在没有地址空间布局随机化的系统上，可能执行任意代码
  ([CVE-2026-42945](https://nvd.nist.gov/vuln/detail/CVE-2026-42945))；
  此修复从 nginx 1.31.0 移植而来。
- 使用 [ssl_ocsp](https://cn.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-ocsp) 指令时，在处理 DNS
  服务器响应过程中可能发生对先前已释放内存的访问，
  允许攻击者破坏工作进程内存或导致其崩溃
  ([CVE-2026-40701](https://nvd.nist.gov/vuln/detail/CVE-2026-40701))；
  此修复从 nginx 1.31.0 移植而来。
- 使用 HTTP/3 时，攻击者可能伪造 IP
  地址，从而在某些配置中绕过限制或授权
  ([CVE-2026-40460](https://nvd.nist.gov/vuln/detail/CVE-2026-40460))；
  此修复从 nginx 1.31.0 移植而来。
- 当配置了 [scgi_pass](https://cn.angie.software//angie/docs/configuration/modules/http/http_scgi.md#scgi-pass) 或 [uwsgi_pass](https://cn.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#uwsgi-pass) 时，
  处于中间人（MITM）位置并控制代理服务器响应的攻击者，
  可能导致过度的内存分配或数据越界读取，
  从而向客户端泄露工作进程的内存内容或导致进程崩溃
  ([CVE-2026-42946](https://nvd.nist.gov/vuln/detail/CVE-2026-42946))；
  此修复从 nginx 1.31.0 移植而来。
- 当通过 [charset_map](https://cn.angie.software//angie/docs/configuration/modules/http/http_charset.md#charset-map) 指令使用 UTF-8 解码处理特制响应时，
  工作进程中可能发生越界读取，允许攻击者在超出攻击者控制的条件下，
  向客户端发送有限的工作进程内存内容或导致进程崩溃
  ([CVE-2026-42934](https://nvd.nist.gov/vuln/detail/CVE-2026-42934))；
  此修复从 nginx 1.31.0 移植而来。

<a id="packages-pro-1-11-5"></a>

#### 软件包

- 已更新：
  - [angie-pro-module-auth-totp](https://cn.angie.software//angie/docs/installation/external-modules/auth-totp.md#external-auth-totp)，至版本 1.2.0
  - [angie-pro-module-cache-purge](https://cn.angie.software//angie/docs/installation/external-modules/cache-purge.md#external-cache-purge)，至版本 3.0.2
  - [angie-pro-module-keyval](https://cn.angie.software//angie/docs/installation/external-modules/keyval.md#external-keyval)，至版本 0.4.0
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.9.8
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，至版本 v0.46.0
- 已将 [angie-pro-module-dav-ext](https://cn.angie.software//angie/docs/installation/external-modules/dav-ext.md#external-dav-ext) 的源更换为
  [mid1221213/nginx-dav-ext-module](https://github.com/mid1221213/nginx-dav-ext-module) v4.0.1。
- 已将 [angie-pro-module-vod](https://cn.angie.software//angie/docs/installation/external-modules/vod.md#external-vod) 的源更换为
  [dio-az/nginx-vod-module](https://github.com/dio-az/nginx-vod-module) v1.7.1。

<a id="angie-pro-1-11-4"></a>

### Angie PRO 1.11.4

发布日期：25.03.2026.

<a id="security-pro-1-11-4"></a>

#### 安全性

- [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块中与客户端的 TLS
  握手可能在 OCSP 拒绝客户端证书的情况下仍然成功
  ([CVE-2026-28755](https://nvd.nist.gov/vuln/detail/CVE-2026-28755))；
  此修复从 nginx 1.29.7 移植而来。
- 在 DAV 模块中，在带有 [alias](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#alias) 指令的 `location` 中处理 COPY 或 MOVE
  请求时可能发生缓冲区溢出，允许攻击者将源路径或目标路径修改到文档根目录之外
  ([CVE-2026-27654](https://nvd.nist.gov/vuln/detail/CVE-2026-27654))；
  此修复从 nginx 1.29.7 移植而来。
- 在 32 位平台上，MP4 模块处理特制文件可能导致工作进程崩溃，
  或可能产生其他潜在影响
  ([CVE-2026-27784](https://nvd.nist.gov/vuln/detail/CVE-2026-27784))；
  此修复从 nginx 1.29.7 移植而来。
- MP4 模块处理特制文件可能导致工作进程崩溃，
  或可能产生其他潜在影响
  ([CVE-2026-32647](https://nvd.nist.gov/vuln/detail/CVE-2026-32647))；
  此修复从 nginx 1.29.7 移植而来。
- 如果在 [Mail](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-mail) 代理模块中使用了 CRAM-MD5 或 APOP 认证方法，
  并且启用了认证重试，则工作进程可能崩溃
  ([CVE-2026-27651](https://nvd.nist.gov/vuln/detail/CVE-2026-27651))；
  此修复从 nginx 1.29.7 移植而来。
- 使用 [Mail](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-mail) 代理模块时，攻击者可以利用 PTR DNS
  记录向认证 HTTP 请求以及向代理服务器的 SMTP 连接中的 XCLIENT 命令注入数据
  ([CVE-2026-28753](https://nvd.nist.gov/vuln/detail/CVE-2026-28753))；
  此修复从 nginx 1.29.7 移植而来。

<a id="bugfixes-pro-1-11-4"></a>

#### 错误修复

- 连接到代理服务器之前的罕见系统错误可能影响 [HTTP](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-http) 和
  [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块中对端状态的正确性；在
  [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块中还可能导致工作进程崩溃；
  该问题出现在 1.9.1 中。
- 在 [proxy_http_version](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-http-version) `3` 和 [proxy_set_header](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-set-header)
  `Host ..` 指令从 `http` 块继承的配置中，发出的 HTTP/3
  请求可能不包含 `Host` 头。

<a id="packages-pro-1-11-4"></a>

#### 软件包

- 已更新：
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，至版本 0.11.0
  - [angie-pro-module-cache-purge](https://cn.angie.software//angie/docs/installation/external-modules/cache-purge.md#external-cache-purge)，至版本 2.5.6
  - [angie-pro-module-cgi](https://cn.angie.software//angie/docs/installation/external-modules/cgi.md#external-cgi)，至版本 v0.15
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.9.6
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，至版本 v0.43.0

<a id="angie-pro-1-11-3"></a>

### Angie PRO 1.11.3

发布日期：06.02.2026.

<a id="security-pro-1-11-3"></a>

#### 安全性

- 中间人（MITM）攻击者在使用 TLS 的代理服务器之前，在超出攻击者控制的条件下，
  可以在 TLS 握手开始之前向响应中注入明文数据
  ([CVE-2026-1642](https://nvd.nist.gov/vuln/detail/CVE-2026-1642))；
  此修复从 nginx 1.29.5 移植而来。

<a id="packages-pro-1-11-3"></a>

#### 软件包

- 已更新：
  - [angie-pro-module-jwt](https://cn.angie.software//angie/docs/installation/external-modules/jwt.md#external-jwt)，至版本 3.4.4

<a id="angie-pro-1-11-2"></a>

### Angie PRO 1.11.2

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

<a id="bugfixes-pro-1-11-2"></a>

#### 错误修复

- 如果禁用了 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](https://cn.angie.software//angie/docs/configuration/modules/http/http_docker.md#docker-endpoint) 指令中指定域名时，
  与 Docker API 的连接和上游服务器组的更新不会发生。

<a id="packages-pro-1-11-2"></a>

#### 软件包

- 更新：
  - [angie-pro-module-cache-purge](https://cn.angie.software//angie/docs/installation/external-modules/cache-purge.md#external-cache-purge)，至版本 2.5.5

2026 年 2 月 2 日

- 更新：
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.9.5

## 2025

<a id="angie-pro-1-11-1"></a>

### Angie PRO 1.11.1

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

<a id="changes-1-11-2"></a>

#### 变更

- 现在，如果在 [acme_http_port](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-http-port) 指令中仅指定端口而不指定 IP（默认值），
  并且存在监听该端口的 `server` 块，则 ACME 中该端口的 HTTP 质询处理
  仅在这些块的 [listen](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#listen) 指令中配置的 IP 地址上工作；不会尝试监听所有 IP 地址，
  这与之前的行为不同；这使配置更加灵活，并防止了从以前版本更新时的问题，
  即配置中仅存在监听端口 `80` 和特定 IP 地址的 `server` 块。

<a id="bugfixes-1-11-2-1"></a>

#### 错误修复

- HTTP/2 请求未在服务器区域统计中计数；
  该错误出现在 1.11.0 版本中。
- 当 ACME 客户端在配置中被禁用且没有先前获取的证书时，
  对该客户端的统计 API 请求可能导致工作进程崩溃。
- 如果在 `server` 块内的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#status-zone) 指令中使用 `$http_host` 或
  `$cookie_*` 变量作为键，HTTP/3 请求可能不会在此状态区域中计数。

<a id="packages-1-11-3-1"></a>

#### 软件包

- 更新：
  - [angie-pro-module-vts](https://cn.angie.software//angie/docs/installation/external-modules/vts.md#external-vts)，至版本 v0.2.5

<a id="angie-pro-1-11-0"></a>

### Angie PRO 1.11.0

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

<a id="changes-1-11-1-1"></a>

#### 变更

- HTTP/3 请求中的 `$http_host` 变量现在从 `:authority` 伪头部的值初始化，
  如果未传递 `Host` 头部，这对客户端来说是正常的；
  以前，与早期协议版本的差异可能会在使用 `$http_host` 的配置中导致问题。
- 如果 `upstream` 组中的所有 HTTP 服务器都不可用或返回错误，
  现在在接收到根据 [proxy_next_upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-next-upstream) 指令
  （及类似指令）被视为错误的状态时，始终返回自己的错误页面，
  而不是最后一个服务器的响应；这确保了所有情况下的一致行为。
- `fastcgi.conf`、`fastcgi_params`、`uwsgi_params` 和
  `scgi_params` 配置文件中的 `REQUEST_METHOD` 参数现在通过
  `$upstream_request_method` 变量设置，该变量在配置缓存时对 `HEAD` 请求
  取值 `GET`；这防止了以前 `HEAD` 请求可能导致存储空响应的问题，
  该响应随后会为 `GET` 请求提供服务，因为在常见配置中请求方法不是缓存键的一部分。
- ACME 服务器的最大响应大小现在由 [acme_max_response_size](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-max-response-size) 指令
  限制，而不是 [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令的 `max_cert_size=` 参数；
  默认值对大多数情况足够，但如果证书更新以 `[error] too big subrequest response while sending
  to client` 错误消息结束，应增加其值。
- HTTP 模块中 [variables_hash_max_size](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#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`。

<a id="features-1-11-1"></a>

#### 功能特性

- 新的 [Metric](https://cn.angie.software//angie/docs/configuration/modules/http/http_metric.md#http-metric) 模块，支持任意的实时 HTTP 指标收集，
  具有完全可配置的聚合方法（计数器、直方图、移动平均等）；
  它允许在任何阶段跟踪任何请求处理数据，按自定义键分组，
  并通过 `/status/http/metric_zones/` API 部分（包括 Prometheus 支持）公开指标，
  为整个 HTTP 流量提供强大的内置分析工具。
- 支持 ACME 的 ALPN 验证，通过在 [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令的
  `challenge` 参数中指定 `alpn` 启用；
  允许在仅保持 HTTPS 端口开放的情况下请求多域证书。
- 统计 API 的 `/status/http/acme_clients/` 部分中的 ACME 客户端信息
  和证书请求过程（支持 Prometheus）。
- 在 HTTP 和流 SSL 模块中添加了对加密客户端 Hello (ECH) 的支持；
  新的 [ssl_encrypted_hello_key](https://cn.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-encrypted-hello-key) 指令指定包含私钥的文件；
  `$ssl_encrypted_hello` 变量包含有关 ECH 使用的信息。
  感谢 Maxim Dounin (freenginx)。
- 使用 [image_filter](https://cn.angie.software//angie/docs/configuration/modules/http/http_image_filter.md#id3) 指令的 `convert` 参数进行图像格式转换。
- Image Filter 模块中支持 AVIF 和 HEIC 格式。
- 在流模块中支持与上游服务器连接的 PROXY protocol V2，
  以及使用 [proxy_protocol_tlv](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_proxy.md#s-proxy-protocol-tlv) 指令设置任意 TLV 值的能力，
  该指令允许包含变量的字符串。
- `$upstream_request_method` 变量，包含上游请求方法，
  当启用缓存或设置 [proxy_method](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-method) 时，该方法可能与客户端请求方法不同；
  这有助于避免常见的配置问题，即缓存的空 `HEAD` 响应为 `GET` 请求提供服务，
  以及避免分别缓存 `HEAD` 和 `GET` 响应。
- [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 模式，其中会话仅存储在远程服务器上并始终从中请求，
  现在也可在 `stream` 模块中使用；以前仅在 HTTP 中可用。
- 在具有远程存储的 [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 会话模式下，现在也处理响应正文；
  这允许从外部存储响应的正文中提取绑定信息，而不仅仅是从头部字段中提取。
- 消除了为 ACME HTTP 质询定义单独的带有 `listen 80` 指令的 `server` 块的需要；
  如有必要，可以使用 [acme_http_port](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-http-port) 指令自定义监听端口。
- 在导出 Prometheus 指标时计算列表和对象中的项目数的能力；
  以尾部斜杠结尾的路径现在返回相应 API 集合中的项目计数。
- `$sent_body` 变量，包含子请求或客户端模块的外部请求的响应正文。
- 邮件代理模块中支持 XOAUTH2 和 OAUTHBEARER 认证机制。
  感谢 Rob Mueller 和 Maxim Dounin (freenginx)。
- [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 指令的 `route` 参数现在可以包含任意数量变量的任意字符串。
- 在 ACME 模块中，现在自动计算续期证书的近似大小，
  消除了在为大量域颁发证书时增加 [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令的
  `max_cert_size` 参数的需要；
  该参数保留用于仍需要手动配置的情况。
- API 的 `/status/angie/license` 部分中的许可证和限制信息。
- `$upstream_cache_key` 变量，包含正在使用的缓存键。
  感谢 Kirill A. Korinsky 和 Maxim Dounin (freenginx)。
- nginx 1.29.3 的所有功能，除了 `add_header_inherit` 和 `add_trailer_inherit` 指令，
  由于其设计不佳而被省略。

<a id="bugfixes-1-11-1-1"></a>

#### 错误修复

- 重新加载和二进制升级过程现在可以正确处理 HTTP/3 连接；
  使用 BPF 模块将连接正确路由到所有现有进程。
- 如果 `upstream` 组中的所有服务器都不可用或返回错误，
  则从最后一个服务器接收错误响应可能被视为成功，
  尽管有 [proxy_next_upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-next-upstream) 指令设置。
- 如果 [try_files](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#try-files) 指令中的路径短于相关 `location` 块中的前缀，
  则使用带有 URI 的 [proxy_pass](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#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](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-method) 指令。
- `upstream` 块内 `server` 指令的 `fail_timeout` 选项指定的超时持续时间
  实际上长了一秒。
- 加载为开源 Angie 版本构建的模块可能会由于 ABI 不兼容而导致问题和崩溃；
  现在禁止此类不正确的配置，并显示相关错误消息。

<a id="packages-1-11-1-1"></a>

#### 软件包

- 更新：
  - [angie-pro-module-echo](https://cn.angie.software//angie/docs/installation/external-modules/echo.md#external-echo)，至版本 v0.64

<a id="angie-pro-1-10-3"></a>

### Angie PRO 1.10.3

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

<a id="security-2-1-1-1-1-1"></a>

#### 安全性

- 在 SMTP 模块中使用 `none` 认证方法时，处理特制的登录名/密码可能导致
  工作进程内存泄露到认证服务器
  （[CVE-2025-53859](https://nvd.nist.gov/vuln/detail/CVE-2025-53859)）；
  该修复从 nginx 1.29.1 移植而来。

<a id="bugfixes-1-1-1-1-1-1-1-1"></a>

#### 错误修复

- 当使用 [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令的 `renew_on_load` 选项时，
  如果先前获取的证书存在，则不会加载该证书。这可能会限制功能，
  直到证书续期完成。如果证书不存在，尝试获取新证书将失败，
  并显示错误 `[alert] lseek() failed (9: Bad file descriptor)`。
- 如果 [ACME 客户端](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#id4) 在 `stream` 块中被引用，
  但未在 `http` 块中引用，它将被禁用并显示警告 `[warn] ACME
  client ... is defined but not used`，并且永远不会获取证书。
- 如果所有 [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令都具有 `enabled=off` 参数，
  并且在配置中使用了相关的 `$acme_cert_*` 变量，Angie 将无法启动，
  并报告错误 `[emerg] unknown acme_cert_* variable`。
- 如果 [ACME 客户端](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#id4) 在位于 `http` 块之前的 `stream` 块中使用，
  则 Angie 无法启动，并报告错误 `[emerg] ACME client .. is not defined but referenced`。
- 某些 `client` 块配置在使用引用传入连接的变量时可能导致工作进程崩溃，
  而在这种情况下该连接不存在。
- 通过 [Docker 模块](https://cn.angie.software//angie/docs/configuration/modules/http/http_docker.md#http-docker) 添加到上游组的服务器未被主动探测监控。
- 流模块中 [upstream_probe (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream_probe.md#s-u-upstream-probe) 指令的 `send=` 参数在指定文件路径时，
  对 UDP 探测工作不正确：发送的是路径而不是文件内容。
- 如果使用了 [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 指令的 `learn` 选项并重新加载配置，
  `timeout=` 参数可能不会生效，直到至少创建一个新会话。

<a id="packages-1-1-1-1-1-1-1-1"></a>

#### 软件包

- 更新：
  - [angie-pro-module-cache-purge](https://cn.angie.software//angie/docs/installation/external-modules/cache-purge.md#external-cache-purge)，至版本 2.5.4
  - [angie-pro-module-cgi](https://cn.angie.software//angie/docs/installation/external-modules/cgi.md#external-cgi)，至版本 v0.14.1
  - [angie-pro-module-lua](https://cn.angie.software//angie/docs/installation/external-modules/lua.md#external-lua)，至版本 0.10.29
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.9.4

---

<a id="angie-pro-1-10-2"></a>

### Angie PRO 1.10.2

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

<a id="bugfixes-2-1-1-1-1-1-1"></a>

#### 错误修复

- `http` 块中的代理模块设置可能会破坏使用 `client` 块进行出站请求的模块的功能；
  该错误出现在 1.10.0 版本中。
- 启用 [proxy_ignore_client_abort](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ignore-client-abort) 以及使用 `client` 块进行出站请求的模块
  可能导致工作进程崩溃；该错误出现在 1.10.0 版本中。
- 如果在上游组中预配置了单个服务器，通过 [Docker API](https://cn.angie.software//angie/docs/configuration/modules/http/http_docker.md#http-docker) 添加的服务器
  可能不会包含在负载均衡中。
- 如果上游组中唯一的服务器是通过 [Docker API](https://cn.angie.software//angie/docs/configuration/modules/http/http_docker.md#http-docker) 添加的，
  当检测到不可用时，它可能会被排除在负载均衡之外。

<a id="packages-2-1-1-1-1-1-1"></a>

#### 软件包

- 新增动态模块：
  - [angie-pro-module-auth-totp](https://cn.angie.software//angie/docs/installation/external-modules/auth-totp.md#external-auth-totp)
  - [angie-pro-module-combined-upstreams](https://cn.angie.software//angie/docs/installation/external-modules/combined-upstreams.md#external-combined-upstreams)
- 更新：
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，至版本 0.41.0

---

<a id="angie-pro-1-10-1"></a>

### Angie PRO 1.10.1

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

<a id="changes-1-1-1-1-1-1"></a>

#### 变更

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

<a id="features-3-1-1-1-1-1-1-1"></a>

#### 功能特性

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

<a id="bugfixes-2-1-1-1-1-1"></a>

#### 错误修复

- 当在 `listen` 指令中使用 `reuseport` 参数时，
  到指定地址和端口的所有连接都由单个工作进程处理；该错误出现在 1.10.0 版本中。
- 在 `stream` 粘性会话请求上下文之外访问特殊的 `$stream_*` 变量
  会导致工作进程崩溃。
- 如果服务器上启用了 QUIC 协议 `retry` 模式，使用 OpenSSL 库版本 3.5.0 或更高版本时，
  与上游服务器的 HTTP/3 握手可能会失败。

<a id="angie-pro-1-10-0"></a>

### Angie PRO 1.10.0

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

<a id="features-3-1-1-1-1-1-1"></a>

#### 功能特性

- 基于 Docker（或 Podman）容器标签自动检索和动态更新代理服务器组，
  使用 [docker_endpoint](https://cn.angie.software//angie/docs/configuration/modules/http/http_docker.md#docker-endpoint) 指令进行配置。这使得能够通过指定的 Docker API 端点实时监控容器的启动和停止事件，
  并根据指定的标签将其地址添加到 `upstream` 列表或从中移除，无需重新加载配置。
- 在 `stream` 模块中支持通过 ACME 协议自动获取 TLS 证书，
  使用 [acme](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_acme.md#s-acme) 指令以及 [$acme_cert_\*](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_acme.md#v-s-acme-cert-name) 和
  [$acme_cert_key_\*](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_acme.md#v-s-acme-cert-key-name) 等变量进行配置。
- 将一组代理服务器的 `stream` 会话与 HTTP 请求绑定到外部存储，
  可通过 [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 指令在 `learn` 模式下使用 `remote_action`、
  `remote_result` 和 `remote_uri` 参数进行配置。这使得在集群环境中实现客户端会话持久性，
  其中一组负载均衡器共享公共存储，并在会话内将客户端请求路由到同一服务器，
  无论哪个负载均衡器接收到请求。
- `sticky` 指令（在 `learn` 模式下）的新 `norefresh` 参数，
  禁用使用时的自动会话续期。
- [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 的新会话模式，其中会话仅存储在远程服务器上并始终从中检索。
  可以在代理模块中灵活配置远程服务器响应的缓存。
- 使用 [upstream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-upstream) 块中的 `backup_switch permanent[=timeout]` 指令，
  即使主服务器组再次可用后，也能保持备份 `stream` 服务器处于活动状态。
- 使用 [listen](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#listen) 指令中的 `multipath` 参数支持通过 MPTCP 协议接受连接。
  感谢 Maxim Dounin (freenginx)、Maxime Dourov 和 Anthony Doeraene。
- 新的 [client](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#client) 块，用于为各种模块发起的内部 HTTP 请求指定额外配置。
- 包含 [nginx 1.27.5](https://nginx.org/en/CHANGES) 的所有功能，
  包括 QUIC 连接的 CUBIC 拥塞控制。

<a id="bugfixes-2-1-1-1-1"></a>

#### 错误修复

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

<a id="packages-2-1-1-1-1-1"></a>

#### 软件包

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，至版本 1.8.0
  - [angie-pro-module-cgi](https://cn.angie.software//angie/docs/installation/external-modules/cgi.md#external-cgi)，至版本 0.13
  - [angie-pro-module-otel](https://cn.angie.software//angie/docs/installation/external-modules/otel.md#external-otel)，至版本 0.1.2

2025年7月14日

- 更新：
  - [angie-pro-module-headers-more](https://cn.angie.software//angie/docs/installation/external-modules/headers-more.md#external-headers-more)，至版本 v0.39
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，
    [angie-pro-module-njs-light](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.9.1

---

<a id="angie-pro-1-9-1"></a>

### Angie PRO 1.9.1

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

<a id="features-3-1-1-1-1-1"></a>

#### 功能特性

- [acme_dns_port](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-dns-port) 指令支持 IP 地址和端口号；
  IPv4 和 IPv6 均可使用。

<a id="bugfixes-2-1-1-1"></a>

#### 错误修复

- 在 [server_name](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#server-name) 指令中同时使用通配符域名和匹配的三级域名可能导致 ACME 服务器在为单个 ACME 客户端下的这些域名颁发证书时失败。
- 在 `stream` 模块中，在被动检查期间成功连接到代理服务器后，
  其在统计 API 中的状态在会话结束前错误地显示为 `unavailable`。
- 当 `stream` 模块中的代理服务器处于 `unhealthy` 状态时，
  统计 API 中的停机计数器可能已停止或被错误重置。
- HTTP/3 请求可能停滞并超时；该修复从 nginx 1.29.0 移植而来。
- 在建立到代理服务器的 HTTP/3 连接时发生早期错误可能导致工作进程崩溃。
- 通过 HTTP/3 协议代理时，统计信息中的活动连接数可能显示不正确。
- 当处于 `drain` 模式的代理服务器变为不可用时，
  根据 [proxy_next_upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-next-upstream) 和类似指令尝试连接到另一台服务器可能不会发生。

<a id="packages-2-1-1-1-1"></a>

#### 软件包

- 新增动态模块：
  - [angie-pro-module-njs-light](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)
- 更新：
  - [angie-pro-module-auth-spnego](https://cn.angie.software//angie/docs/installation/external-modules/auth-spnego.md#external-auth-spnego)，至版本 1.1.3
  - [angie-pro-module-cgi](https://cn.angie.software//angie/docs/installation/external-modules/cgi.md#external-cgi)，至版本 0.12.1
  - [angie-pro-module-modsecurity](https://cn.angie.software//angie/docs/installation/external-modules/modsecurity.md#external-modsec)，至版本 1.0.4
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.9.0
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，至版本 0.40.0

---

<a id="angie-pro-1-9-0"></a>

### Angie PRO 1.9.0

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

<a id="features-3-1-1-1-1"></a>

#### 功能特性

- 在 [proxy_cache_path](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-cache-path) 指令中指定文件的功能，
  其中将保存包含缓存索引的共享内存区域的内容，以便在服务器启动之间保留；
  这消除了重启后重新加载缓存的需要，并允许服务器几乎立即恢复在线。
- 在 HTTP 模块的 `upstream` 块中使用 [backup_switch permanent[=timeout]](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-backup-switch) 指令，
  允许在主组服务器再次可访问时保持备份服务器组处于活动状态。
- 使用 [ssl_early_data](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#s-ssl-early-data) 指令在 `stream` 模块中支持 TLS 1.3 Early Data (0-RTT)。
- 统计 API 中上游对等点的新 `busy` 状态，
  表示对等点已达到 `max_conns` 选项配置的限制。
- [acme_hook](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-hook) 指令中的 `uri=` 参数允许重新定义钩子请求 URI 并支持变量。
- [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令的 `renew_on_load` 参数允许在配置加载时强制证书续期。
- 现在通过 `/status/angie` 统计 API 对象的 `build_time` 字段
  以及 `-V` 命令行选项的输出显示构建时间。
- [nginx 1.27.4](https://nginx.org/en/CHANGES) 的所有功能，
  除了 `keepalive_min_timeout` 指令（类似功能自 1.8.0 版本起已存在）。

<a id="changes-2-1-1-1-1-1-1"></a>

#### 变更

- [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令中的 `enabled=off` 参数现在仅禁用给定客户端的证书续期，
  同时保留所有其他功能；密钥和证书（如果可用）可以通过 `$acme_cert_*` 变量访问，
  而使用 `$acme_hook_*` 变量和 `acme` 指令不会导致错误。
- `no valid domain name defined for ACME client` 错误现在仅在
  使用 `acme` 指令引用 ACME 客户端的 `server` 块中
  未找到有效（即符合 ACME 标准的）域名时才会发出。

<a id="bugfixes-2-1-1"></a>

#### 错误修复

- 如果构建时启用了 NTLS 支持，
  带有变量的 `proxy_ssl_certificate` 和 `proxy_ssl_certificate_key` 指令的继承无法正常工作。

<a id="packages-2-1-1-1"></a>

#### 软件包

- 更新：
  - [angie-pro-module-cgi](https://cn.angie.software//angie/docs/installation/external-modules/cgi.md#external-cgi)，至版本 0.11.1
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.8.10

---

<a id="angie-pro-1-8-3"></a>

### Angie PRO 1.8.3

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

<a id="bugfixes-2-1"></a>

#### 错误修复

- 如果同一连接内的请求属于不同的统计区域，
  或者在早期请求处理期间发生错误，
  HTTP 模块的 [server](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#server) 块中的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#status-zone) 统计信息可能计算错误；
  该错误出现在 1.8.2 版本中。

<a id="packages-2-1-1"></a>

#### 软件包

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，至版本 1.7.0
  - [angie-pro-module-cgi](https://cn.angie.software//angie/docs/installation/external-modules/cgi.md#external-cgi)，至版本 57f660bb2c6ef6e4b75c65406080d0236860ca08
  - [angie-pro-module-jwt](https://cn.angie.software//angie/docs/installation/external-modules/jwt.md#external-jwt)，至版本 v3.4.3
  - [angie-pro-module-ndk](https://cn.angie.software//angie/docs/installation/external-modules/ndk.md#external-ndk)，至版本 v0.3.4
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，至版本 v0.39.0
  - [angie-pro-module-vts](https://cn.angie.software//angie/docs/installation/external-modules/vts.md#external-vts)，至版本 v0.2.4

2025年4月4日

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，至版本 1.7.1

2025年4月7日

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，至版本 1.7.2

<a id="angie-pro-1-8-2"></a>

### Angie PRO 1.8.2

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

<a id="security-2-1-1-1-1"></a>

#### 安全性

- 在处理带有 TLSv1.3 SNI 的虚拟服务器时验证不足，
  允许在不同的虚拟服务器中重用 SSL 会话，
  绕过客户端 SSL 证书验证（[CVE-2025-23419](https://www.cve.org/CVERecord?id=CVE-2025-23419)）；
  该修复从 nginx 1.27.4 移植而来。

<a id="bugfixes-2"></a>

#### 错误修复

- 在 `stream` 模块中使用 [upstream_probe (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream_probe.md#s-u-upstream-probe) 指令配置的主动探测可能导致工作进程崩溃。
- 从通过变量设置的单个区域检索统计值的 API 请求可能导致工作进程进入无限循环。
- HTTP/3 请求未在区域统计中计数；
  该错误出现在 1.8.0 版本中。
- 使用 QUIC 协议的 TLS 握手未在 SSL 统计中计数。
- 通过 [ACME 协议](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#id4) 进行证书续期可能对 [server_name](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#server-name) 指令中以点为前缀的服务器名称失败。

<a id="packages-2-1"></a>

#### 软件包

- 新增动态模块：
  - [angie-pro-module-auth-pam](https://github.com/sto/ngx_http_auth_pam_module)
  - [angie-pro-module-cgi](https://github.com/pjincz/nginx-cgi)

---

## 2024

<a id="angie-pro-1-8-1"></a>

### Angie PRO 1.8.1

发布日期：2024 年 12 月 28 日。

#### 错误修复

- 在 HTTP 模块的 `server` 块中使用 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#status-zone) 指令会导致在 TLS 握手时在 [access_log](https://cn.angie.software//angie/docs/configuration/modules/http/http_log.md#access-log) 中过度记录空请求；该错误出现在 1.8.0 版本中。
- HTTP/3 流中的解码错误可能会在关闭 QUIC 连接时导致工作进程崩溃；该修复从 nginx 1.27.4 移植而来。
- 发送 QUIC 协议版本协商数据包可能会导致无限数据包交换循环；该修复从 nginx 1.27.4 移植而来。
- 在某些配置中，在 [ACME 模块](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#http-acme) 中使用不带钩子的 DNS 验证可能会导致工作进程崩溃。

<a id="packages-2"></a>

#### 软件包

- 更新：
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，至版本 0.9.0

2025年1月23日

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，至版本 1.6.0

2025年1月27日

- 新增动态模块：
  - [angie-pro-module-unbrotli](https://github.com/clyfish/ngx_unbrotli)
- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，至版本 1.6.1
  - [angie-pro-module-auth-spnego](https://cn.angie.software//angie/docs/installation/external-modules/auth-spnego.md#external-auth-spnego)，至版本 v1.1.2
  - [angie-pro-module-headers-more](https://cn.angie.software//angie/docs/installation/external-modules/headers-more.md#external-headers-more)，至版本 v0.38
  - [angie-pro-module-lua](https://cn.angie.software//angie/docs/installation/external-modules/lua.md#external-lua)，至版本 0.10.28
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.8.9
  - [angie-pro-module-vts](https://cn.angie.software//angie/docs/installation/external-modules/vts.md#external-vts)，至版本 v0.2.3
  - [angie-pro-module-wasm](https://cn.angie.software//angie/docs/configuration/modules/wasm/index.md#wasm-core)，至版本 v0.2-beta2

---

<a id="angie-pro-1-8-0"></a>

### Angie PRO 1.8.0

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

<a id="features-3-1-1-1"></a>

#### 功能特性

- 通过请求外部存储为一组代理服务器实现 HTTP 会话绑定，可通过 [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 指令在 `learn` 模式下使用 `remote_action` 和 `remote_result` 参数进行配置；这允许在集群模式下配置客户端会话与负载均衡服务器的绑定，当一组负载均衡器通过共享存储统一管理时，可将一个会话内的客户端请求定向到同一台服务器，无论它们命中哪个负载均衡器。
- 通过处理来自 ACME 服务器的 DNS 查询来支持 `DNS-01` 验证，这允许自动请求任何类型的证书，包括通配符证书。
- ACME 模块中的钩子系统，可使用 [acme_hook](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-hook) 指令进行配置，允许使用外部应用程序处理域名验证，以提供与各种服务和 DNS 托管提供商的集成。
- ACME 模块记录一些额外信息：证书续期的具体原因、完整的域名列表、客户端账户 ID、长时间不活动期（例如轮询）以及正在验证的域名；这些信息简化了故障排查，并允许指定 CAA DNS 记录。
- [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 指令的 `account_key` 参数，允许为 ACME 服务器账户重用现有密钥，而不是自动生成新密钥。
- 在 stream 和 HTTP 模块的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#status-zone) 指令中支持变量，允许在单个 `location` 或 `server` 块中动态统计多个区域的数据；特别是当单个 `server` 块处理多个虚拟主机时非常有用。
- GZip HTTP 压缩模块与 `zlib-ng` 2.2.0 及更高版本的兼容性，之前可能会在错误日志中导致 `[alert] gzip filter failed to use preallocated memory` 消息。
- [max_headers](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#max-headers) 指令，用于限制 HTTP 请求头字段的数量，以更好地防御 DoS 攻击。感谢 Maxim Dounin (freenginx) 和 Maksim Yevmenkin。
- [http3_max_table_capacity](https://cn.angie.software//angie/docs/configuration/modules/http/http_v3.md#http3-max-table-capacity) 和 [proxy_http3_max_table_capacity](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-http3-max-table-capacity) 指令，用于配置 HTTP/3 动态头压缩表限制。
- 交叉编译支持 - 构建系统现在可以使用包装脚本来运行自动测试，这使得可以在不直接在目标平台上运行测试程序的情况下准备构建。
- [nginx 1.27.3](https://nginx.org/en/CHANGES) 的所有功能。

#### 错误修复

- 使用 `0-RTT` 时 HTTP/3 客户端可能超时；该错误在 1.7.0 版本中从 nginx 继承而来。
- 在 [proxy_pass](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-pass) 指令中使用变量且未指定 `upstream` 块的情况下使用 HTTP/3 代理可能导致工作进程崩溃。
- 使用动态表的 HTTP/3 上游如果与缓存一起使用可能导致工作进程崩溃。
- 某些 SSL 握手可能未在 `stream` 模块的统计信息中计数。
- 在 `http` 或 `server` 级别指定的 HTTP/3 代理设置可能被忽略。
- 启用 NTLS 支持时，通过 HTTP/3 代理时 [proxy_ssl_certificate](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-certificate) 指令不起作用。

<a id="changes-2-1-1-1-1-1"></a>

#### 变更

- 在优雅关闭旧工作进程时，保持活动连接现在仅在 [lingering_timeout](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#lingering-timeout) 指令指定的超时时间到期后才关闭；此行为允许避免在此时接收响应时可能出现的客户端错误。感谢 Maxim Dounin (freenginx)。
- 禁用了 `stream` 模块变量 [$ssl_server_name](https://cn.angie.software//angie/docs/configuration/modules/http/http_ssl.md#v-ssl-server-name)、[$ssl_server_cert_type](https://cn.angie.software//angie/docs/configuration/modules/http/http_ssl.md#v-ssl-server-cert-type)、[$ssl_preread_protocol](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_ssl_preread.md#v-ssl-preread-protocol) 和 [$ssl_preread_server_name](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_ssl_preread.md#v-ssl-preread-server-name) 的缓存，这允许在使用虚拟服务器时获取实际值。

#### 软件包

- 新增动态模块：
  - [angie-pro-module-http-auth-radius](https://github.com/ten0s/ngx_http_auth_radius_module)
- 更新：
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，至版本 0.8.0
  - [angie-pro-module-jwt](https://cn.angie.software//angie/docs/installation/external-modules/jwt.md#external-jwt)，至版本 3.4.2
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，至版本 0.8.8
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，至版本 0.38.0
  - [angie-pro-module-wasm](https://cn.angie.software//angie/docs/configuration/modules/wasm/index.md#wasm-core)，至版本 0.1-beta5

<a id="angie-pro-1-7-0"></a>

### Angie PRO 1.7.0

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

<a id="features-3-1-1"></a>

#### 功能特性

- 当代理服务器从组中移除时，强制关闭所有到该服务器的连接；可通过 [proxy_connection_drop](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-connection-drop)、
  [grpc_connection_drop](https://cn.angie.software//angie/docs/configuration/modules/http/http_grpc.md#grpc-connection-drop)、[fastcgi_connection_drop](https://cn.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#fastcgi-connection-drop)、
  [scgi_connection_drop](https://cn.angie.software//angie/docs/configuration/modules/http/http_scgi.md#scgi-connection-drop) 和 [uwsgi_connection_drop](https://cn.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#uwsgi-connection-drop) 指令进行配置，
  其值可通过 [API 请求](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#api-config-methods) 的 `connection_drop` 参数在移除服务器时局部覆盖。
- 解析器统计 API 中的已发送 DNS 查询类型计数器，通过 [resolver](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#resolver) 指令的 `status_zone` 参数收集。
- [feedback (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-feedback) 负载均衡现在可在 `stream` 模块中使用；它根据指定变量分配 TCP/UDP 会话，
  该变量可从代理的上游服务器或对外部服务的定期请求中获取。
  这允许根据代理服务器的任意指标（如资源消耗、CPU/内存利用率和队列长度）进行动态负载均衡。
- [feedback (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-feedback) 指令的 `last_byte` 选项，允许在接收到完整响应后处理上游服务器反馈，
  而不仅仅是响应头。
- [feedback (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-feedback) 负载均衡方法现在接受浮点数作为变量值。
- [least_time (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-least-time) 指令的 `account` 参数，允许使用变量指定哪些请求被考虑用于
  `least_time` 负载均衡，包括仅考虑 [upstream_probe (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe) 请求。
- [least_time (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-least-time) 指令的 `factor` 参数，允许为 `least_time` 负载均衡器指定可调的平滑因子，
  并覆盖用于统计收集的 [response_time_factor (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-response-time-factor) 的值。
- `drain` 模式，将代理的 stream 服务器切换到新的 `draining` 状态，
  此时只有使用 [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 模块绑定的请求才会发送到该服务器。
- [$ssl_server_cert_type](https://cn.angie.software//angie/docs/configuration/modules/http/http_ssl.md#v-ssl-server-cert-type) 变量，包含为接收的 TLS 连接选择的证书类型。
- 通过 [pid](https://cn.angie.software//angie/docs/configuration/modules/core.md#pid) 指令的 `off` 参数禁用 PID 文件的创建，
  这在使用不可变镜像和由服务管理器直接控制时可能有用。感谢 Maxim Dounin (freenginx)。
- 通过中间临时文件使 PID 文件的创建具有原子性，
  这消除了文件已在目录中但仍为空的时刻，
  并允许外部程序更轻松、更可靠地处理它。
- 现在，在重新配置期间，如果 [pid](https://cn.angie.software//angie/docs/configuration/modules/core.md#pid) 指令中的名称已更改但通过符号链接指向同一文件，
  则不会尝试重新创建 PID 文件；特别是，这允许避免在从 `/var/run/angie.pid` 迁移到
  `/run/angie.pid` 的系统上出现问题。感谢 Maxim Dounin (freenginx)。
- [Syslog 日志记录](https://cn.angie.software//angie/docs/configuration/processing.md#syslog-logging) 错误现在每秒最多报告一次；
  这有助于避免在 syslog 服务器宕机或过载时用此类消息淹没日志。感谢 Maxim Dounin (freenginx)。
- 在邮件代理模块中，通过 [max_commands](https://cn.angie.software//angie/docs/configuration/modules/mail/index.md#max-commands) 指令配置的身份验证期间的最大命令数受到限制，
  以更好地防御 DoS 攻击。感谢 Maxim Dounin (freenginx)。
- **./configure** 脚本的 [--feature-cache](https://cn.angie.software//angie/docs/installation/sourcebuild.md#configure) 选项，
  用于缓存其结果以在构建多个模块或交叉编译时进行优化。
- [nginx 1.27.1](https://nginx.org/en/CHANGES) 的所有功能。

#### 错误修复

- 由 [queue (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-queue) 指令配置的排队请求的等待超时可能导致工作进程崩溃。
- 使用 **systemd** 启动时可能出现 `PID file ... not readable (yet?) after start` 和
  `Failed to parse PID from file...` 错误。感谢 Maxim Dounin (freenginx)。

<a id="changes-2-1-1-1-1"></a>

#### 变更

- 根据 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](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#client-max-body-size) 指令限制，
  以更好地防御 DoS 攻击。感谢 Maxim Dounin (freenginx) 和 Bartek Nowotarski。
- `mime.types` 配置文件中的 MIME 类型已更改为：
  `bmp` 扩展名对应 `image/bmp`，
  `rar` 扩展名对应 `application/vnd.rar`；
  `deb` 和 `udeb` 扩展名设置为 `application/vnd.debian.binary-package`。
  感谢 Yuriy Izorkin。

#### 软件包

- 更新：
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，更新至版本 0.36.0
  - [angie-pro-module-lua](https://cn.angie.software//angie/docs/installation/external-modules/lua.md#external-lua)，更新至版本 0.10.27

2024 年 10 月 24 日

- 为 [SberLinux](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-yum-pro) 添加了软件包。

---

<a id="angie-pro-1-6-2"></a>

### Angie PRO 1.6.2

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

<a id="security-2-1-1-1"></a>

#### 安全性

- 使用 [ngx_http_mp4_module](https://cn.angie.software//angie/docs/configuration/modules/http/http_mp4.md#http-mp4) 处理特制的 MP4 文件可能导致工作进程崩溃
  ([CVE-2024-7347](https://nvd.nist.gov/vuln/detail/CVE-2024-7347))；
  修复已从 nginx 1.27.1 移植。

---

<a id="angie-pro-1-6-1"></a>

### Angie PRO 1.6.1

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

<a id="features-3-1"></a>

#### 功能特性

- [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/stream/index.md#s-status-zone) 指令配置的
  [API 统计](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#api-status-stream-server-zones) 区域中新增 `passed` 计数器，
  用于跟踪使用 [pass](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_pass.md#s-pass) 指令传递到其他监听套接字的连接。

#### 错误修复

- 在 [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块中使用虚拟服务器或 [pass](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_pass.md#s-pass) 指令时，
  连接可能在统计 API 中计数不正确。
- 在配置了 5 个或更多 ACME 客户端时，工作进程可能崩溃；该错误出现在 1.6.0 版本中。
- 处理带有 `X-Accel-Redirect` 头的缓存响应可能导致工作进程崩溃。
  感谢 Maxim Dounin (freenginx) 和 Jiří Setnička。

#### 软件包

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-console-light-pro)，更新至版本 1.4.0
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，更新至版本 0.35.3
  - [angie-pro-module-zstd](https://cn.angie.software//angie/docs/installation/external-modules/zstd.md#external-zstd)，更新至修订版 `f4ba115`

---

<a id="angie-pro-1-6-0"></a>

### Angie PRO 1.6.0

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

<a id="features-3"></a>

#### 功能特性

- 基于指定变量值的 HTTP 请求负载均衡，
  该变量可从代理服务器或对外部服务的定期轮询中获取，
  通过 [upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-upstream) 块中的 [feedback](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-feedback) 指令配置；
  这允许根据代理服务器的任意指标动态重新分配负载：
  各种资源消耗、CPU/内存利用率、队列长度等。
- [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块的 [upstream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-upstream) 块中的
  [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 指令及相关设置，
  允许配置会话持久性模式，
  其中会话内的所有连接都路由到同一服务器。
- 使用 [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块的 [rdp_preread](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_rdp_preread.md#s-rdp-preread) 指令
  从 RDP 连接中提取 Cookie 值到 [$rdp_cookie](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_rdp_preread.md#v-rdp-cookie) 和
  [$rdp_cookie_NAME](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_rdp_preread.md#id5) 变量，
  这允许在负载均衡时记录日志并将 RDP 客户端会话绑定到同一服务器。
- [upstream_probe](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe) 指令的 `persistent` 选项，
  允许在配置重新加载后避免等待 `essential` 探测通过，
  对于之前健康的服务器。
- 支持在单个 [server](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#server) 块中使用多个 [acme](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#id4) 指令，
  这允许在该虚拟服务器内同时配置获取两种类型的证书。
- 命令行选项 `-m` 和 `-M`，用于显示内置和已加载模块的列表。
- [$upstream_probe](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#v-upstream-probe) 变量，
  包含由 [upstream_probe](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe) 发出的当前活动探测的名称。
- [ACME](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#http-acme) 模块中支持 [BoringSSL](https://www.chromium.org/Home/chromium-security/boringssl/)。
- [nginx 1.27.0](https://nginx.org/en/CHANGES) 的所有功能，
  包括 [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块中的虚拟服务器支持
  和 `pass` 指令，
  允许将接受的连接传递给其他监听套接字进行处理，
  包括 [HTTP](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-http) 和 [Mail](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-mail) 模块。

#### 错误修复

- 在某些配置上，活动 [upstream_probe](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe) 探测可能无法工作，
  同时记录类似 `[alert] getsockname() failed (9: Bad file descriptor)` 的错误消息。
- 在某些配置上，通过 ACME 协议请求证书可能失败，
  并记录类似 `[alert] getsockname() failed (9: Bad file descriptor)` 的日志消息。
- 通过 ACME 协议请求包含大量域名的证书可能失败，
  并记录类似 `[error] JSON parser error` 的日志消息。
- 在配置了多个 [error_log](https://cn.angie.software//angie/docs/configuration/modules/core.md#error-log) 指令的情况下，
  ACME 客户端可能将消息输出到错误的日志。

#### 软件包

- 更新：
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，更新至版本 0.7.0
  - [angie-pro-module-auth-ldap](https://cn.angie.software//angie/docs/installation/external-modules/auth-ldap.md#external-ldap)，更新至修订版 `241200e`
  - [angie-pro-module-jwt](https://cn.angie.software//angie/docs/installation/external-modules/jwt.md#external-jwt)，更新至版本 3.4.1
  - [angie-pro-module-keyval](https://cn.angie.software//angie/docs/installation/external-modules/keyval.md#external-keyval)，更新至版本 0.3.0
  - [angie-pro-module-lua](https://cn.angie.software//angie/docs/installation/external-modules/lua.md#external-lua)：
    `stream_lua_module`，更新至修订版 `bea8a0c`
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，更新至版本 0.8.5

---

<a id="angie-pro-1-5-2"></a>

### Angie PRO 1.5.2

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

<a id="security-2-1-1"></a>

#### 安全性

- 使用 HTTP/3 时，处理特制的 QUIC 会话可能导致工作进程崩溃，在 MTU 大于 4096 字节的系统上可能导致工作进程内存泄露，或有其他影响（[CVE-2024-32760](https://nvd.nist.gov/vuln/detail/CVE-2024-32760)，
  [CVE-2024-31079](https://nvd.nist.gov/vuln/detail/CVE-2024-31079)，
  [CVE-2024-35200](https://nvd.nist.gov/vuln/detail/CVE-2024-35200)，
  [CVE-2024-34161](https://nvd.nist.gov/vuln/detail/CVE-2024-34161)）；
  修复已从 nginx 1.26.1 移植。

#### 软件包

- 更新：
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，更新至版本 0.35.2

---

<a id="angie-pro-1-5-1"></a>

### Angie PRO 1.5.1

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

#### 错误修复

- 当通过 API 编辑一组代理服务器时，`proxy_next_upstream` 机制未能正常工作，
  并且当在 [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 块中的 [server](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-server) 指令使用
  [resolve](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#reresolve) 选项时，如果解析的 IP 地址数量与指定服务器的数量不同。
- 在通过 ACME 协议请求证书时，可能会在工作进程中发生段错误。
- 在 `learn` 模式下的 [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 指令在 `lookup` 和 `create`
  变量数量不同的情况下可能会不正确地工作。
- 在 [stream](https://cn.angie.software//angie/docs/configuration/modules/index.md#modules-stream) 模块中代理 TCP 连接时，
  [slow_start](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-slow-start) 机制未能正常工作。
- 如果以 TLS 1.3 早期数据的形式接收，HTTP/3 请求可能失败；该错误出现在 1.4.0 版本中。
- 在使用 QUIC 的 0-RTT 时，HTTP/3 连接可能会被过早关闭。
- 从快速连接读取请求体时，可能会长时间读取。感谢 Maxim Dounin (freenginx)。

<a id="changes-2-1-1-1"></a>

#### 变更

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

#### 软件包

2024 年 5 月 27 日

- 为 [Alpine](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-alpine-pro) 3.20 添加了软件包。

---

<a id="angie-pro-1-5-0"></a>

### Angie PRO 1.5.0

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

#### 功能特性

- 初步支持使用 [ACME 协议](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#http-acme) 自动获取和更新证书，
  可通过 [acme_client](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#acme-client) 和 [acme](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#id4) 指令进行配置，
  以及形如 [$acme_cert_=](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#v-acme-cert-name) 和
  [$acme_cert_key_=](https://cn.angie.software//angie/docs/configuration/modules/http/http_acme.md#v-acme-cert-key-name) 的变量。
- `drain` 模式，将代理的 HTTP 服务器切换到新的 `draining` 状态，
  此时只有使用 [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 模块绑定的请求才会发送到该服务器。
- 通过 [auto_redirect](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#auto-redirect) 指令配置自动重定向，为请求 URI 添加尾部斜杠。
- 在 Prometheus 中使用 Unix 时间戳格式而非 ISO 8601 格式输出包含日期的 [指标](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#metrics)，
  并且在使用 `?date-epoch` 参数请求时也在 JSON API 中使用。
- 现在 `-V` 选项也会显示相关的 nginx 版本，
  这对于与第三方工具（特别是 **certbot**）的兼容性很有用。
  感谢 [AdvTechnoKing](https://github.com/webserver-llc/angie/commit/eb914d43aa6a2231d7321c808cb4180abb013ca0)。
- [nginx 1.25.4](https://nginx.org/en/CHANGES) 的所有功能。

#### 错误修复

- 如果使用 SSL 会话重用机制 ([proxy_ssl_session_reuse](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-session-reuse))，
  则在动态更新代理服务器列表时，
  可能会在为相应 `upstream` 块配置的共享内存区域 (`zone`) 中发生泄漏。

#### 软件包

- 为 [FreeBSD 13](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-freebsd-pro) (arm64) 和
  [RED OS 8](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-yum-pro) (x86-64) 添加了软件包。
- 新增动态模块：
  - [angie-pro-module-otel](https://github.com/nginxinc/nginx-otel)
- 更新：
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，更新至版本 0.34.0

2024 年 3 月 28 日

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#pro-packages)，更新至版本 1.3.0

2024 年 4 月 16 日

- 新增动态模块：
  - [angie-pro-module-zstd](https://github.com/tokers/zstd-nginx-module)
- 更新：
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，更新至版本 0.8.4

2024 年 4 月 25 日

- 新增动态模块：
  - angie-pro-module-vts：包含
    [module-vts](https://github.com/vozlt/nginx-module-vts)、
    [module-sts](https://github.com/vozlt/nginx-module-sts)、
    [module-stream-sts](https://github.com/vozlt/nginx-module-stream-sts)

---

<a id="angie-pro-1-4-1"></a>

### Angie PRO 1.4.1

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

<a id="security-2-1"></a>

#### 安全性

- 使用 HTTP/3 时，处理特制的 QUIC 会话可能在工作进程中发生段错误
  ([CVE-2024-24989](https://nvd.nist.gov/vuln/detail/CVE-2024-24989))；
  请注意，Angie PRO 自 1.4.0 起已不再易受
  [CVE-2024-24990](https://nvd.nist.gov/vuln/detail/CVE-2024-24990) 的影响。

#### 软件包

- 新增动态模块：
  - [angie-pro-module-dynamic-limit-req](https://github.com/limithit/ngx_dynamic_limit_req_module)
- 更新：
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，更新至版本 0.8.3
  - [angie-pro-module-vod](https://cn.angie.software//angie/docs/installation/external-modules/vod.md#external-vod)，更新至版本 1.33

## 2023

<a id="angie-pro-1-4-0"></a>

### Angie PRO 1.4.0

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

#### 功能特性

- 支持在 [HTTP 代理模块](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#http-proxy) 中建立到上游服务器的 [HTTP/3](https://cn.angie.software//angie/docs/configuration/modules/http/http_v3.md#http-v3) 连接，
  同时允许客户端使用任意 HTTP 版本。通过 [proxy_http_version](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-http-version) 指令
  以及一组 `proxy_quic_` 和 `proxy_http3_` 指令进行配置。
- [upstream_probe (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream_probe.md#s-u-upstream-probe) 指令，用于通过定期创建测试连接或发送数据报
  来检查 [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 模块中服务器的健康状况。
- [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 指令的附加 `learn` 模式，
  用于将会话绑定到代理服务器，允许发现会话并将其保存在服务器的共享内存中。
- 等待队列用于无法首次尝试负载均衡的请求，
  通过在 [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 `upstream` 块中使用 [queue (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-queue) 指令配置。
- HTTP RESTful [JSON 接口](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#api-config-stream-upstreams-servers)，
  用于在 [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 模块的 `upstream` 块中重新配置、添加或删除服务器，
  以及用于持久化这些更改的 [state](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-state) 指令。
- 通过平均建立连接时间、接收响应的第一个或最后一个字节的时间，
  对代理的 [stream upstream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 服务器进行负载均衡，
  使用 [least_time (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-least-time) 和 [response_time_factor (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-response-time-factor) 指令
  在 `upstream` 块中进行可调平滑因子。
- 通过 [api](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api) 指令提供的接口，
  获取代理的 [stream upstream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 服务器的
  平均建立连接时间、接收响应的第一个和最后一个字节的统计信息，
  并能够通过 `upstream` 块的 [response_time_factor (PRO)](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-response-time-factor) 指令调整平均平滑因子。
- 使用 `slow_start` 选项，
  在 `upstream` 块中的 [server](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-server) 指令中平滑地将代理服务器上线，经过故障后。
- [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#stream-mqtt-preread) 模块中的 [mqtt_preread](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#s-mqtt-preread) 指令，
  允许从 MQTT 协议的 CONNECT 数据包中提取用户名和客户端 ID 到
  [$mqtt_preread_username](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#v-mqtt-preread-username) 和
  [$mqtt_preread_clientid](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#v-mqtt-preread-clientid) 变量中。
- 通过 [mp4_limit_rate](https://cn.angie.software//angie/docs/configuration/modules/http/http_mp4.md#mp4-limit-rate) 和 [mp4_limit_rate_after](https://cn.angie.software//angie/docs/configuration/modules/http/http_mp4.md#mp4-limit-rate-after) 指令，
  按比特率限制传输到客户端的 MP4 文件的响应速率，从而减少带宽负载。
- [nginx 1.25.3](https://nginx.org/en/CHANGES) 的所有功能。

#### 错误修复

- 如果代理服务器是组中的唯一服务器，
  可能会在 [统计 API](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#metrics) 中错误地报告为 `unavailable`，即使在恢复后也是如此。

<a id="changes-2-1-1"></a>

#### 变更

- 现在代理服务器处于 `checking` 状态的时间不计入 `downtime`。
- 标准 [prometheus_all.conf](https://cn.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#prometheus-all) 模板包括所有额外的 Prometheus 指标
  和仅由 PRO 版本公开的可能 `state` 值。

#### 软件包

- 为 [Alpine](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-alpine-pro) 3.19 添加了软件包。
- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#pro-packages)，更新至版本 1.2.0
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，更新至版本 0.4.0
  - [angie-pro-module-headers-more](https://cn.angie.software//angie/docs/installation/external-modules/headers-more.md#external-headers-more)，更新至版本 0.36
  - [angie-pro-module-ndk](https://cn.angie.software//angie/docs/installation/external-modules/ndk.md#external-ndk)，更新至版本 0.3.3
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，更新至版本 0.33.0

2023 年 12 月 25 日

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#pro-packages)，更新至版本 1.2.1

2024 年 1 月 22 日

- 新增动态模块：
  - [angie-pro-module-zip](https://github.com/evanmiller/mod_zip)
- 更新：
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，更新至版本 0.6.0
  - [angie-pro-module-headers-more](https://cn.angie.software//angie/docs/installation/external-modules/headers-more.md#external-headers-more)，更新至版本 0.37
  - [angie-pro-module-lua](https://cn.angie.software//angie/docs/installation/external-modules/lua.md#external-lua)：
    `http_lua_module`，更新至版本 0.10.26；
    `stream_lua_module`，更新至版本 0.0.14

---

<a id="angie-pro-1-3-2"></a>

### Angie PRO 1.3.2

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

#### 错误修复

- 带有 `essential` 标志的主动 [健康探测](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe)
  在初始检查失败时未正确处理服务器从 `checking` 到 `unhealthy` 的转换，
  导致用户请求被路由到故障服务器。
- [Prometheus](https://cn.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#id3) 输出中使用 `$p8s_value` 以外的变量作为值的指标
  可能出现不正确的值；实际上该问题可能出现在标准 `prometheus_all.conf` 模板中的
  `angie_http_upstreams_peers_state` 和 `angie_stream_upstreams_peers_state`。
- 如果某些连接上游服务器的尝试立即失败，可能未在 [统计 API](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api) 中正确计数；
  该错误出现在 1.3.0 版本中。

#### 软件包

2023 年 12 月 4 日

- 新增动态模块：
  - [angie-pro-module-modsecurity](https://github.com/owasp-modsecurity/ModSecurity-nginx)

2023 年 12 月 7 日

- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#pro-packages)，更新至版本 1.1.1

2023 年 12 月 12 日

- 新增动态模块：
  - [angie-pro-module-auth-ldap](https://github.com/kvspb/nginx-auth-ldap)
- 更新：
  - [angie-pro-module-auth-jwt](https://cn.angie.software//angie/docs/installation/external-modules/auth-jwt.md#external-auth-jwt)，更新至版本 0.4.0
  - [angie-pro-module-headers-more](https://cn.angie.software//angie/docs/installation/external-modules/headers-more.md#external-headers-more)，更新至版本 0.36
  - [angie-pro-module-ndk](https://cn.angie.software//angie/docs/installation/external-modules/ndk.md#external-ndk)，更新至版本 0.3.3
  - [angie-pro-module-opentracing](https://cn.angie.software//angie/docs/installation/external-modules/opentracing.md#external-opentracing)，更新至版本 0.33.0

---

<a id="angie-pro-1-3-1"></a>

### Angie PRO 1.3.1

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

<a id="security-2"></a>

#### 安全性

- 为 HTTP/2 流处理添加了额外的限制，以更好地防御被称为 "HTTP/2 Rapid Reset" 的 DoS 攻击
  ([CVE-2023-44487](https://nvd.nist.gov/vuln/detail/CVE-2023-44487))。

#### 软件包

2023 年 10 月 26 日

- 新增动态模块：
  - [angie-pro-module-opentracing](https://github.com/opentracing-contrib/nginx-opentracing/)

2023 年 11 月 13 日

- 新增动态模块：
  - [angie-pro-module-testcookie](https://github.com/kyprizel/testcookie-nginx-module/)
- 更新：
  - [angie-pro-console-light](https://cn.angie.software//angie/docs/installation/pro_packages.md#pro-packages)，更新至版本 1.1.0
  - [angie-pro-module-headers-more](https://cn.angie.software//angie/docs/installation/external-modules/headers-more.md#external-headers-more)，更新至版本 0.35
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs)，更新至版本 0.8.2
  - [angie-pro-module-vod](https://cn.angie.software//angie/docs/installation/external-modules/vod.md#external-vod)，更新至版本 1.32

---

<a id="angie-pro-1-3-0"></a>

### Angie PRO 1.3.0

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

#### 功能特性

- 能够在 `location` 指令中指定多个匹配模式,
  允许 [组合](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#combined-locations) 多个具有相似设置的 `location` 块,
  从而通过减少重复来简化配置。
- 根据从代理 HTTP 服务器接收响应头或完整响应的平均时间进行负载均衡,
  具有可调的平滑因子,使用 `upstream` 块中的
  [least_time (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-least-time) 和 [response_time_factor (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-response-time-factor) 指令。
- 以 Prometheus 格式导出各种统计指标,使用新的 [prometheus](https://cn.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#id3) 和
  [prometheus_template](https://cn.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#prometheus-template) 指令进行灵活的模板配置。
- 在 [api](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api) 指令提供的接口中显示代理 HTTP 服务器接收响应头和完整响应的平均时间统计,
  能够通过 `upstream` 块的 [response_time_factor (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-response-time-factor) 指令调整平均平滑因子。
- 在 [api](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api) 指令提供的统计接口中显示 stream 上游服务器组的详细信息和
  [指标](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#api-status-stream-upstreams)。
- [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 模块的 `upstream` 块中
  `server` 指令的 [resolve](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-reresolve) 选项,
  允许监控与域名对应的 IP 地址列表的变化,并自动更新它而无需重新加载配置。
- [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 模块的 `upstream` 块中
  `server` 指令的 [service](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-reresolve) 选项,
  允许从 DNS SRV 记录中检索地址列表,并提供基本的优先级支持。
- 支持使用 [http](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 `upstream` 块中的
  [bind_conn (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-bind-conn) 指令将客户端连接绑定到后端服务器连接,
  特别适用于代理使用 NT LAN Manager (NTLM) 身份验证的连接。
- 通过 [api](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api) 指令提供的接口访问当前工作进程使用的配置文件内容,
  需要启用 [api_config_files](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api-config-files) 指令。
- 在进程标题中显示 [配置代数](https://cn.angie.software//angie/docs/configuration/runtime.md#control-config-change) 编号,
  允许使用 `ps` 工具监控配置重新加载的成功情况以及先前工作进程代数的数量。
- [nginx 1.25.2](https://nginx.org/en/CHANGES) 的所有功能。

<a id="changes-2-1"></a>

#### 变更

- 现在在加载 OpenSSL 配置时使用应用名称 `angie`。

#### 软件包

- 更新:
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs),更新至版本 0.8.1

---

<a id="angie-pro-1-2-0"></a>

### Angie PRO 1.2.0

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

#### 功能特性

- 用于重新配置、添加或删除 [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 [upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-upstream)
  块中服务器的 [HTTP RESTful JSON 接口](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#api-config),
  以及用于持久化这些更改的 [state](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-state) 指令。
- [upstream_probe (PRO)](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe) 指令,通过定期发送探测请求来检查
  [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 [upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-upstream) 块中服务器的健康状况。
- [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#http-proxy) 代理模块中的缓存分片支持,
  可以根据任意响应参数将响应缓存到不同的目录(驱动器)中,
  通过 [proxy_cache](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-cache) 指令的新 `path-` 选项使用变量进行配置。
- 在使用 [TongSuo](https://github.com/Tongsuo-Project/Tongsuo) TLS 库时,
  [HTTP](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#stream-ssl) 模块中的 NTLS 支持;
  可以通过 `‑‑with‑ntls` 构建时选项启用该支持,
  并使用相应的 [ssl_ntls](https://cn.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-ntls) 和 [proxy_ssl_ntls](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-ntls) 指令进行配置。
- 在 [HTTP](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_proxy.md#stream-proxy) 代理模块中,
  能够使用 [proxy_ssl_certificate](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-certificate) 和 [proxy_ssl_certificate_key](https://cn.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-certificate-key) 指令
  指定多个不同类型(RSA 和 ECDSA)的证书及相应的密钥。
- 在 `master` 进程标题中显示版本和构建名称,
  这允许使用 `ps` 工具获取正在运行的服务器实例的此信息。
- [gzip](https://cn.angie.software//angie/docs/configuration/modules/http/http_gzip.md#http-gzip) 模块能够压缩 "207 Multi-Status" 响应。
  感谢 [DBotThePony](https://github.com/webserver-llc/angie/pull/26)。
- [nginx 1.25.0](https://nginx.org/en/CHANGES) 的所有功能,
  包括 [HTTP/3](https://cn.angie.software//angie/docs/configuration/modules/http/http_v3.md#http-v3) 支持。

<a id="changes-2"></a>

#### 变更

- [$upstream_sticky_status](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#v-upstream-sticky-status) 变量值现在为大写,
  以与 [$upstream_cache_status](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#v-upstream-cache-status) 值的风格保持一致。

#### 软件包

- 新增动态模块:
  - [angie-pro-module-enhanced-memcached](https://github.com/bpaquet/ngx_http_enhanced_memcached_module)
  - [angie-pro-module-eval](https://github.com/openresty/nginx-eval-module)

---

<a id="angie-pro-1-1-0-p1"></a>

### Angie PRO 1.1.0-p1

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

#### 功能特性

- [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 [upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-upstream) 块中的
  [sticky](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky) 指令及相关选项,允许配置会话保持模式,
  其中会话的所有请求都路由到同一服务器。
- [$upstream_sticky_status](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#v-upstream-sticky-status) 变量,根据启用会话保持时请求相关上游服务器的成功情况,
  可以是 `NEW`、`HIT` 或 `MISS`。

---

<a id="angie-pro-1-1-0"></a>

### Angie PRO 1.1.0

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

#### 功能特性

- [api](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#a-api) 指令,提供 HTTP RESTful 接口,
  以 JSON 或 Prometheus 格式访问 Web 服务器实例的基本信息,
  以及客户端连接、共享内存区域、DNS 查询、HTTP 请求、HTTP 响应缓存、
  [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/index.md#stream-core) 模块的 TCP/UDP 会话、
  [limit_conn](https://cn.angie.software//angie/docs/configuration/modules/http/http_limit_conn.md#http-limit-conn)/[limit_req](https://cn.angie.software//angie/docs/configuration/modules/http/http_limit_req.md#http-limit-req) 模块的区域
  和 [HTTP 上游服务器组](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 的 [指标](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#metrics)。
- [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 [upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-upstream) 块中
  [server](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-server) 指令的 [resolve](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#reresolve) 选项,
  允许监控与域名对应的 IP 地址列表的变化,并自动更新它而无需重新加载配置。
- [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream) 模块的 [upstream](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-upstream) 块中
  [server](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-server) 指令的 [service](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#reresolve) 选项,
  允许从 DNS SRV 记录中检索地址列表,并提供基本的优先级支持。
- [HTTP](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#http-core) 模块中的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#status-zone) 指令,
  用于在 [server](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#server) 和 [location](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#location) 上下文中指定区域以收集请求指标。
- [stream](https://cn.angie.software//angie/docs/configuration/modules/stream/index.md#stream-core) 模块中的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/stream/index.md#s-status-zone) 指令,
  用于指定区域以收集 TCP/UDP 会话指标。
- [resolver](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#resolver) 指令的 [status_zone](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#resolver-status) 参数,
  用于指定区域以收集 DNS 查询指标。
- [autoindex](https://cn.angie.software//angie/docs/configuration/modules/http/http_autoindex.md#id3) 对目录列表使用自然排序顺序。
- 通过 [server_tokens](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#server-tokens) 指令任意配置默认错误页面上的签名和
  `Server` 响应头字段。
- [$angie_version](https://cn.angie.software//angie/docs/configuration/modules/http/index.md#v-angie-version) 变量,包含 Angie 的版本。
- [nginx 1.23.3](https://nginx.org/en/CHANGES) 的所有功能。

#### 软件包

2023 年 4 月 7 日

- 新增 [ALT](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-alt-pro) Linux 软件包。

2023 年 5 月 12 日

- 新增 [FreeBSD](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-freebsd-pro) 软件包。
- 新增动态模块:
  - [angie-pro-module-subs](https://github.com/yaoweibin/ngx_http_substitutions_filter_module)
  - [angie-pro-module-upload](https://github.com/fdintino/nginx-upload-module)
  - [angie-pro-module-vod](https://github.com/kaltura/nginx-vod-module)

2023 年 5 月 26 日

- 新增 [Astra](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-astrase-pro) Linux Special Edition 软件包。

2023 年 6 月 13 日

- 新增 [Debian 12 "Bookworm"](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-deb-pro) 和
  [AlmaLinux](https://cn.angie.software//angie/docs/installation/pro_packages.md#install-yum-pro) 软件包。

2023 年 7 月 12 日

- 新增动态模块:
  - [angie-pro-module-cache-purge](https://github.com/nginx-modules/ngx_cache_purge)
  - [angie-pro-module-echo](https://github.com/openresty/echo-nginx-module)
  - [angie-pro-module-keyval](https://github.com/kjdev/nginx-keyval)
  - [angie-pro-module-postgres](https://github.com/FRiCKLE/ngx_postgres)
- 更新:
  - [angie-pro-module-njs](https://cn.angie.software//angie/docs/installation/external-modules/njs.md#external-njs),更新至版本 0.8.0

2023 年 7 月 31 日

- 新增动态模块:
  - [angie-pro-module-auth-jwt](https://github.com/kjdev/nginx-auth-jwt)
