From 8c453cbecb4cce61496637da6a4e2ac66315b0e6 Mon Sep 17 00:00:00 2001 From: traky Date: Thu, 29 Jan 2026 16:47:54 +0800 Subject: [PATCH 1/8] release notes --- .../01/31/release-apache-apisix-3.15.0.md | 148 ++++++++++++++++++ .../01/31/release-apache-apisix-3.15.0.md | 148 ++++++++++++++++++ 2 files changed, 296 insertions(+) create mode 100644 blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md create mode 100644 blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md new file mode 100644 index 0000000000000..b98660be37e40 --- /dev/null +++ b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -0,0 +1,148 @@ +--- +title: "Release Apache APISIX 3.15.0" +authors: + - name: "Abhishek Choudhary" + title: "Author" + url: "https://github.com/shreemaan-abhishek" + image_url: "https://github.com/shreemaan-abhishek.png" + - name: "Traky Deng" + title: "Technical Writer" + url: "https://github.com/kayx23" + image_url: "https://github.com/kayx23.png" +keywords: + - Apache APISIX + - API Gateway + - API Management Platform + - New Release + - Cloud Native +description: The Apache APISIX 3.15.0 version is released on Jan 31, 2026. This release includes a few changes, new features, bug fixes, and other improvements to user experiences. +tags: [Community] +--- + +We are glad to present Apache APISIX 3.15.0 with exciting new features, bug fixes, and other improvements to user experiences. + + + +This release introduces new AI providers, enhanced logging features, and multiple improvements across discovery, security, and plugin functionality. + +This release introduces one breaking change that may impact existing deployments. Please review the change and plan your upgrade accordingly. + +## Breaking Changes + +### Disallow creating duplicate plugins in global rules + +This release prevents the same plugin from being configured across multiple global rules. Previously, this could lead to undefined execution order and unpredictable behavior. + +Configurations that rely on the same plugin appearing in multiple global rules will need to be restructured. The plugin will now only execute from the first global rule where it appears, and subsequent occurrences will be logged as errors. + +For more information, see [PR #12800](https://github.com/apache/apisix/pull/12800). + +## New Features + +### New providers in AI plugins + +This release expands the provider support in `ai-proxy`, `ai-proxy-multi`, and `ai-request-rewrite`. These plugins now support Google Cloud Vertex AI, Google Gemini, Anthropic, and OpenRouter. + +For more information, see the following pull requests: + +- [PR #12933 (Google Cloud Vertex AI)](https://github.com/apache/apisix/pull/12933) +- [PR #12883 (Google Gemini)](https://github.com/apache/apisix/pull/12883) +- [PR #12881 (Anthropic)](https://github.com/apache/apisix/pull/12881) +- [PR #12878 (OpenRouter)](https://github.com/apache/apisix/pull/12878) + +### Kubernetes discovery readiness check + +Service discovery for Kubernetes now includes a readiness status query through the `/status/ready` interface, enabling better health monitoring and integration with other discovery types. + +For more information, see [PR #12852](https://github.com/apache/apisix/pull/12852). + +### Auth plugins custom `www-authenticate` header with realm + +Authentication plugins `basic-auth`, `key-auth`, `hmac-auth`, `jwt-auth`, and `ldap-auth`, now support customizing the realm value in `WWW-Authenticate` header on 401 responses, implementing RFC 7235 standards for HTTP authentication. + +For more information, see [PR #12864](https://github.com/apache/apisix/pull/12864). + +### `request-id` plugin supports `apisix_request_id` variable + +The `request-id` plugin now includes support for the `apisix_request_id` variable and records request IDs in error logs, significantly improving debugging and tracing capabilities. + +For more information, see [PR #12931](https://github.com/apache/apisix/pull/12931). + +### Rate limiting plugins support configuring Redis keepalive + +The `limit-count`, `limit-conn`, and `limit-req` plugins now support Redis connection keepalive settings, improving connection stability and reducing overhead. + +For more information, see [PR #12861](https://github.com/apache/apisix/pull/12861). + +### Logger plugins support max pending entries + +All logger plugins now support the `max_pending_entries` parameter, which sets the maximum number of unprocessed entries allowed in the batch processor. When this limit is reached, new entries will be dropped until the backlog is reduced. This helps prevent memory spikes when the logger is slow or unavailable. + +For more information, see [PR #12709](https://github.com/apache/apisix/pull/12709). + +### Logger plugins support nested log format + +Logger plugins now support hierarchical/nested log structures with a maximum depth of 5 levels, enabling more organized and readable log formats for better analysis. + +For more information, see [PR #12697](https://github.com/apache/apisix/pull/12697). + +### `file-logger` plugin metadata supports path properties + +The `file-logger` plugin now supports configuring a default log file path globally, eliminating the need to specify paths individually in each plugin configuration. + +For more information, see [PR #12825](https://github.com/apache/apisix/pull/12825). + +### `kafka-logger` plugin supports SCRAM authentication + +The `kafka-logger` plugin now supports SCRAM (Salted Challenge Response Authentication Mechanism) for secure authentication with Kafka clusters, expanding security compatibility. + +For more information, see [PR #12693](https://github.com/apache/apisix/pull/12693). + +### SSL certificate SNI matching supports wildcard + +SSL certificate matching now supports the complete wildcard `*` value, in addition to the existing exact domain and partial wildcard support. + +For more information, see [PR #12668](https://github.com/apache/apisix/pull/12668). + +### `grpc-web` plugin supports non prefix based routes + +The `grpc-web` plugin now works with routes that do not use prefix matching, expanding flexibility for gRPC-Web deployments. + +For more information, see [PR #12830](https://github.com/apache/apisix/pull/12830). + +### Add validation API to API-driven standalone mode + +The API-driven standalone mode (primarily used with ingress controller) now supports a new validation endpoint `/validate` which allows testing configurations without persisting them. + +For more information, see [PR #12718](https://github.com/apache/apisix/pull/12718). + +## Other Updates + +* Support status API in file-driven standalone mode (PR [#12810](https://github.com/apache/apisix/pull/12810)) +* Correct handling of EndpointSlices in Kubernetes service discovery (PR [#12634](https://github.com/apache/apisix/pull/12634)) +* Relax resource name length from 100 to 256 characters to better support ingress controller name generation patterns (PR [#11822](https://github.com/apache/apisix/pull/11822)) +* Add validation and deletion protection for stream routing (PR [#12794](https://github.com/apache/apisix/pull/12794)) +* Prevent permanent quota blocking by making Redis key expiry configurable in the `limit-conn` plugin (PR [#12872](https://github.com/apache/apisix/pull/12872)) +* Improve timing accuracy by starting the timer when a route is hit in SkyWalking integration (PR [#12855](https://github.com/apache/apisix/pull/12855)) +* Improve performance by removing unnecessary deepcopy when destroying Prometheus (PR [#12905](https://github.com/apache/apisix/pull/12905)) +* Prevent data corruption by ensuring safe Redis key eviction in the `limit-req` plugin (PR [#12911](https://github.com/apache/apisix/pull/12911)) +* Improve debugging by using the meta parent to identify the plugin source in the `limit-count` plugin (PR [#12900](https://github.com/apache/apisix/pull/12900)) +* Make `protocol_name` optional and default it to `MQTT` in the MQTT plugin (PR [#12831](https://github.com/apache/apisix/pull/12831)) +* Ensure the number of sub-responses matches the sub-request count in the `batch-requests` plugin (PR [#12779](https://github.com/apache/apisix/pull/12779)) +* Correct the logging schema key in the `ai-proxy-multi` plugin (PR [#12795](https://github.com/apache/apisix/pull/12795)) +* Fix initialization and querying issues for `enable_data_encryption` in plugin metadata (PR [#12624](https://github.com/apache/apisix/pull/12624)) +* Add a `X-Request-Id` header when the incoming request contains an empty value (PR [#12837](https://github.com/apache/apisix/pull/12837)) +* Adjust directory permissions to allow APISIX to run on OpenShift without the `anyuid` command (PR [#12824](https://github.com/apache/apisix/pull/12824)) +* Fix pre- and post-hook typos in Kubernetes discovery and improve cleanup safety (PR [#12288](https://github.com/apache/apisix/pull/12288)) +* Improve performance by moving the IPv6 check to schema validation (PR [#12714](https://github.com/apache/apisix/pull/12714)) +* Refactor cache logic to use the secret URI as the cache key and improve LRU cache implementation (PR [#12682](https://github.com/apache/apisix/pull/12682)) +* Ensure `node_version` is maintained for independent upstreams (PR [#12856](https://github.com/apache/apisix/pull/12856)) +* Fix request failures during reload when any Eureka node becomes unavailable (PR [#12906](https://github.com/apache/apisix/pull/12906)) +* Add retry logic for Nacos service discovery requests after failures (PR [#12734](https://github.com/apache/apisix/pull/12734)) +* Remove `lua-resty-worker-events` from core dependencies (PR [#12930](https://github.com/apache/apisix/pull/12930)) +* Upgrade `lua-resty-logger-socket` dependency (PR [#12898](https://github.com/apache/apisix/pull/12898)) +* Upgrade `lua-resty-dns-client` dependency (PR [#12851](https://github.com/apache/apisix/pull/12851)) + +## Changelog + +For a complete list of changes in this release, please see [CHANGELOG](https://github.com/apache/apisix/blob/master/CHANGELOG.md#3150). diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md new file mode 100644 index 0000000000000..7bf6e1c2a9d1c --- /dev/null +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -0,0 +1,148 @@ +--- +title: "Apache APISIX 3.15.0 正式发布" +authors: + - name: "Abhishek Choudhary" + title: "Author" + url: "https://github.com/shreemaan-abhishek" + image_url: "https://github.com/shreemaan-abhishek.png" + - name: "Traky Deng" + title: "Technical Writer" + url: "https://github.com/kayx23" + image_url: "https://github.com/kayx23.png" +keywords: +- Apache APISIX +- API Gateway +- API Management Platform +- New Release +- Cloud Native +description: Apache APISIX 3.15.0 版本于 2026 年 1 月 31 日发布。该版本带来了一系列新功能、修复、以及相关用户体验优化。 +tags: [Community] +--- + +我们很高兴地宣布 Apache APISIX 3.15.0 版本已经发布。该版本带来了一系列新功能、修复、以及相关用户体验优化。 + + + +本次版本新增了对多种 AI 提供商的支持,增强了日志记录能力,并在服务发现、安全性和插件功能等方面进行了多项改进。 + +此外,该版本还包含了一些重要的变更。如果您发现这些变更会对您的使用产生影响,请进行相应的计划升级。 + +## 重大变更 + +### 禁止在 global rules 中创建重复插件 + +此版本禁止在多个 global rules 中配置同一个插件。此前,这可能导致执行顺序未定义和不可预测的行为。 + +依赖于同一插件出现在多个 global rules 中的配置需要进行重构。现在,该插件只会从它出现的第一个全局规则开始执行,后续出现的插件将被记录为错误。 + +更多信息,请参阅 [PR #12800](https://github.com/apache/apisix/pull/12800)。 + +## 新功能 + +### AI 插件新增提供商 + +本次更新扩展了 `ai-proxy`、`ai-proxy-multi` 和 `ai-request-rewrite` 的提供商支持。这些插件现在支持 Google Cloud Vertex AI、Google Gemini、Anthropic 和 OpenRouter。 + +更多信息,请参阅以下 PRs: + +- [PR #12933 (Google Cloud Vertex AI)](https://github.com/apache/apisix/pull/12933) +- [PR #12883 (Google Gemini)](https://github.com/apache/apisix/pull/12883) +- [PR #12881 (Anthropic)](https://github.com/apache/apisix/pull/12881) +- [PR #12878 (OpenRouter)](https://github.com/apache/apisix/pull/12878) + +### Kubernetes 服务发现就绪状态检查 + +Kubernetes 服务发现现在通过 `/status/ready` 接口提供就绪状态查询,从而实现更完善的健康状况监控并与其他服务发现类型更好地集成。 + +更多信息,请参阅 [PR #12852](https://github.com/apache/apisix/pull/12852)。 + +### 身份验证插件自定义带有 realm 的 `www-authenticate` 标头 + +身份验证插件 `basic-auth`、`key-auth`、`hmac-auth`、`jwt-auth` 和 `ldap-auth` 现在支持在 401 响应中自定义 `WWW-Authenticate` 标头中的 realm 值,从而实现 HTTP 身份验证的 RFC 7235 标准。 + +更多信息,请参阅 [PR #12864](https://github.com/apache/apisix/pull/12864)。 + +### `request-id` 插件支持 `apisix_request_id` 变量 + +`request-id` 插件现在支持 `apisix_request_id` 变量,并将请求 ID 记录到错误日志中,从而显著提升调试和追踪能力。 + +更多信息,请参阅 [PR #12931](https://github.com/apache/apisix/pull/12931)。 + +### 速率限制插件支持配置 Redis keepalive + +`limit-count`、`limit-conn` 和 `limit-req` 插件现在支持 Redis 连接 keepalive 设置,从而提升连接稳定性并降低系统开销。 + +更多信息,请参阅 [PR #12861](https://github.com/apache/apisix/pull/12861)。 + +### 日志插件支持最大待处理条目数 + +所有日志插件现在都支持 `max_pending_entries` 参数,该参数用于设置批处理处理器中允许的最大未处理条目数。当达到此限制时,新条目将被丢弃,直到积压的条目减少为止。这有助于防止日志记录器运行缓慢或不可用时出现内存峰值。 + +更多信息,请参阅 [PR #12709](https://github.com/apache/apisix/pull/12709)。 + +### 日志插件支持嵌套日志格式 + +日志插件现在支持最大深度为 5 层的分层/嵌套日志结构,从而实现更清晰易读的日志格式,便于分析。 + +更多信息,请参阅 [PR #12697](https://github.com/apache/apisix/pull/12697)。 + +### `file-logger` 插件元数据支持路径属性 + +`file-logger` 插件现在支持全局配置默认日志文件路径,无需在每个插件配置中单独指定路径。 + +更多信息,请参阅 [PR #12825](https://github.com/apache/apisix/pull/12825)。 + +### `kafka-logger` 插件支持 SCRAM 身份验证 + +`kafka-logger` 插件现在支持 SCRAM(加盐质询响应身份验证机制),用于与 Kafka 集群进行安全身份验证,从而扩展了安全性兼容性。 + +更多信息,请参阅 [PR #12693](https://github.com/apache/apisix/pull/12693)。 + +### SSL 证书 SNI 匹配支持通配符 + +SSL 证书匹配现在除了支持精确域名和部分通配符外,还支持完整的通配符 `*` 值。 + +更多信息,请参阅 [PR #12668](https://github.com/apache/apisix/pull/12668)。 + +### `grpc-web` 插件支持非前缀路由 + +`grpc-web` 插件现在可以处理不使用前缀匹配的路由,从而增强了 gRPC-Web 部署的灵活性。 + +更多信息,请参阅 [PR #12830](https://github.com/apache/apisix/pull/12830)。 + +### 为 API 驱动的独立模式添加验证 API + +API 驱动的独立模式(主要用于 Ingress 控制器)现在支持新的验证端点 `/validate`,允许在不持久化配置的情况下测试配置。 + +更多信息,请参阅 [PR #12718](https://github.com/apache/apisix/pull/12718)。 + +## 其他更新 + +* 支持 file-driven standalone 模式下的状态 API (PR [#12810](https://github.com/apache/apisix/pull/12810)) +* 正确处理 Kubernetes 服务发现中的 EndpointSlices (PR [#12634](https://github.com/apache/apisix/pull/12634)) +* 将资源名称长度从 100 个字符放宽至 256 个字符,以更好地支持入口控制器名称生成模式 (PR [#11822](https://github.com/apache/apisix/pull/11822)) +* 为流路由添加验证和删除保护 (PR [#12794](https://github.com/apache/apisix/pull/12794)) +* 通过在 `limit-conn` 插件中配置 Redis 密钥过期时间来防止永久配额阻塞 (PR [#12872](https://github.com/apache/apisix/pull/12872)) +* 通过在 SkyWalking 集成中路由命中时启动计时器来提高计时精度 (PR [#12855](https://github.com/apache/apisix/pull/12855)) +* 通过在销毁 Prometheus 时移除不必要的深拷贝来提高性能 (PR [#12905](https://github.com/apache/apisix/pull/12905)) +* 通过在 `limit-req` 插件中确保安全的 Redis 键驱逐来防止数据损坏 (PR [#12911](https://github.com/apache/apisix/pull/12911)) +* 通过在 `limit-count` 插件中使用元父级来识别插件源来改进调试 (PR [#12900](https://github.com/apache/apisix/pull/12900)) +* 在 MQTT 插件中,将 `protocol_name` 设置为可选,并将其默认值设为 `MQTT` (PR [#12831](https://github.com/apache/apisix/pull/12831)) +* 在 `batch-requests` 插件中,确保子响应的数量与子请求的数量匹配 (PR [#12779](https://github.com/apache/apisix/pull/12779)) +* 修正 `ai-proxy-multi` 插件中的日志模式键 (PR [#12795](https://github.com/apache/apisix/pull/12795)) +* 修复插件元数据中 `enable_data_encryption` 的初始化和查询问题 (PR [#12624](https://github.com/apache/apisix/pull/12624)) +* 当传入请求包含空值时,添加 `X-Request-Id` 标头 (PR [#12837](https://github.com/apache/apisix/pull/12837)) +* 调整目录权限,允许 APISIX 在 OpenShift 上运行而无需使用 `anyuid` 命令 (PR [#12824](https://github.com/apache/apisix/pull/12824)) +* 修复 Kubernetes 服务发现中的前置和后置钩子拼写错误,并提高清理安全性 (PR [#12288](https://github.com/apache/apisix/pull/12288)) +* 通过将 IPv6 检查移至模式验证来提高性能 (PR [#12714](https://github.com/apache/apisix/pull/12714)) +* 重构缓存逻辑,使用密钥 URI 作为缓存键,并改进 LRU 缓存实现 (PR [#12682](https://github.com/apache/apisix/pull/12682)) +* 确保独立上游的 `node_version` 得到维护 (PR [#12856](https://github.com/apache/apisix/pull/12856)) +* 修复当任何 Eureka 节点不可用时,重新加载期间的请求失败问题 (PR [#12906](https://github.com/apache/apisix/pull/12906)) +* 为 Nacos 服务发现请求失败后添加重试逻辑 (PR [#12734](https://github.com/apache/apisix/pull/12734)) +* 移除从核心依赖项中移除 `lua-resty-worker-events`(PR [#12930](https://github.com/apache/apisix/pull/12930)) +* 升级 `lua-resty-logger-socket` 依赖项(PR [#12898](https://github.com/apache/apisix/pull/12898)) +* 升级 `lua-resty-dns-client` 依赖项(PR [#12851](https://github.com/apache/apisix/pull/12851)) + +## 更新日志 + +此版本的完整更新列表,请参阅 [CHANGELOG](https://github.com/apache/apisix/blob/master/CHANGELOG.md#3150)。 From ebc86bc22cae29cd8c2a7f30661817ec88fbc0ba Mon Sep 17 00:00:00 2001 From: traky Date: Thu, 29 Jan 2026 16:55:17 +0800 Subject: [PATCH 2/8] lint --- .../01/31/release-apache-apisix-3.15.0.md | 52 +++++++++---------- .../01/31/release-apache-apisix-3.15.0.md | 48 ++++++++--------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md index b98660be37e40..4ed357000df03 100644 --- a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -47,8 +47,8 @@ For more information, see the following pull requests: - [PR #12933 (Google Cloud Vertex AI)](https://github.com/apache/apisix/pull/12933) - [PR #12883 (Google Gemini)](https://github.com/apache/apisix/pull/12883) -- [PR #12881 (Anthropic)](https://github.com/apache/apisix/pull/12881) -- [PR #12878 (OpenRouter)](https://github.com/apache/apisix/pull/12878) +- [PR #12881 (Anthropic)](https://github.com/apache/apisix/pull/12881) +- [PR #12878 (OpenRouter)](https://github.com/apache/apisix/pull/12878) ### Kubernetes discovery readiness check @@ -118,30 +118,30 @@ For more information, see [PR #12718](https://github.com/apache/apisix/pull/1271 ## Other Updates -* Support status API in file-driven standalone mode (PR [#12810](https://github.com/apache/apisix/pull/12810)) -* Correct handling of EndpointSlices in Kubernetes service discovery (PR [#12634](https://github.com/apache/apisix/pull/12634)) -* Relax resource name length from 100 to 256 characters to better support ingress controller name generation patterns (PR [#11822](https://github.com/apache/apisix/pull/11822)) -* Add validation and deletion protection for stream routing (PR [#12794](https://github.com/apache/apisix/pull/12794)) -* Prevent permanent quota blocking by making Redis key expiry configurable in the `limit-conn` plugin (PR [#12872](https://github.com/apache/apisix/pull/12872)) -* Improve timing accuracy by starting the timer when a route is hit in SkyWalking integration (PR [#12855](https://github.com/apache/apisix/pull/12855)) -* Improve performance by removing unnecessary deepcopy when destroying Prometheus (PR [#12905](https://github.com/apache/apisix/pull/12905)) -* Prevent data corruption by ensuring safe Redis key eviction in the `limit-req` plugin (PR [#12911](https://github.com/apache/apisix/pull/12911)) -* Improve debugging by using the meta parent to identify the plugin source in the `limit-count` plugin (PR [#12900](https://github.com/apache/apisix/pull/12900)) -* Make `protocol_name` optional and default it to `MQTT` in the MQTT plugin (PR [#12831](https://github.com/apache/apisix/pull/12831)) -* Ensure the number of sub-responses matches the sub-request count in the `batch-requests` plugin (PR [#12779](https://github.com/apache/apisix/pull/12779)) -* Correct the logging schema key in the `ai-proxy-multi` plugin (PR [#12795](https://github.com/apache/apisix/pull/12795)) -* Fix initialization and querying issues for `enable_data_encryption` in plugin metadata (PR [#12624](https://github.com/apache/apisix/pull/12624)) -* Add a `X-Request-Id` header when the incoming request contains an empty value (PR [#12837](https://github.com/apache/apisix/pull/12837)) -* Adjust directory permissions to allow APISIX to run on OpenShift without the `anyuid` command (PR [#12824](https://github.com/apache/apisix/pull/12824)) -* Fix pre- and post-hook typos in Kubernetes discovery and improve cleanup safety (PR [#12288](https://github.com/apache/apisix/pull/12288)) -* Improve performance by moving the IPv6 check to schema validation (PR [#12714](https://github.com/apache/apisix/pull/12714)) -* Refactor cache logic to use the secret URI as the cache key and improve LRU cache implementation (PR [#12682](https://github.com/apache/apisix/pull/12682)) -* Ensure `node_version` is maintained for independent upstreams (PR [#12856](https://github.com/apache/apisix/pull/12856)) -* Fix request failures during reload when any Eureka node becomes unavailable (PR [#12906](https://github.com/apache/apisix/pull/12906)) -* Add retry logic for Nacos service discovery requests after failures (PR [#12734](https://github.com/apache/apisix/pull/12734)) -* Remove `lua-resty-worker-events` from core dependencies (PR [#12930](https://github.com/apache/apisix/pull/12930)) -* Upgrade `lua-resty-logger-socket` dependency (PR [#12898](https://github.com/apache/apisix/pull/12898)) -* Upgrade `lua-resty-dns-client` dependency (PR [#12851](https://github.com/apache/apisix/pull/12851)) +- Support status API in file-driven standalone mode (PR [#12810](https://github.com/apache/apisix/pull/12810)) +- Correct handling of EndpointSlices in Kubernetes service discovery (PR [#12634](https://github.com/apache/apisix/pull/12634)) +- Relax resource name length from 100 to 256 characters to better support ingress controller name generation patterns (PR [#11822](https://github.com/apache/apisix/pull/11822)) +- Add validation and deletion protection for stream routing (PR [#12794](https://github.com/apache/apisix/pull/12794)) +- Prevent permanent quota blocking by making Redis key expiry configurable in the `limit-conn` plugin (PR [#12872](https://github.com/apache/apisix/pull/12872)) +- Improve timing accuracy by starting the timer when a route is hit in SkyWalking integration (PR [#12855](https://github.com/apache/apisix/pull/12855)) +- Improve performance by removing unnecessary deepcopy when destroying Prometheus (PR [#12905](https://github.com/apache/apisix/pull/12905)) +- Prevent data corruption by ensuring safe Redis key eviction in the `limit-req` plugin (PR [#12911](https://github.com/apache/apisix/pull/12911)) +- Improve debugging by using the meta parent to identify the plugin source in the `limit-count` plugin (PR [#12900](https://github.com/apache/apisix/pull/12900)) +- Make `protocol_name` optional and default it to `MQTT` in the MQTT plugin (PR [#12831](https://github.com/apache/apisix/pull/12831)) +- Ensure the number of sub-responses matches the sub-request count in the `batch-requests` plugin (PR [#12779](https://github.com/apache/apisix/pull/12779)) +- Correct the logging schema key in the `ai-proxy-multi` plugin (PR [#12795](https://github.com/apache/apisix/pull/12795)) +- Fix initialization and querying issues for `enable_data_encryption` in plugin metadata (PR [#12624](https://github.com/apache/apisix/pull/12624)) +- Add a `X-Request-Id` header when the incoming request contains an empty value (PR [#12837](https://github.com/apache/apisix/pull/12837)) +- Adjust directory permissions to allow APISIX to run on OpenShift without the `anyuid` command (PR [#12824](https://github.com/apache/apisix/pull/12824)) +- Fix pre- and post-hook typos in Kubernetes discovery and improve cleanup safety (PR [#12288](https://github.com/apache/apisix/pull/12288)) +- Improve performance by moving the IPv6 check to schema validation (PR [#12714](https://github.com/apache/apisix/pull/12714)) +- Refactor cache logic to use the secret URI as the cache key and improve LRU cache implementation (PR [#12682](https://github.com/apache/apisix/pull/12682)) +- Ensure `node_version` is maintained for independent upstreams (PR [#12856](https://github.com/apache/apisix/pull/12856)) +- Fix request failures during reload when any Eureka node becomes unavailable (PR [#12906](https://github.com/apache/apisix/pull/12906)) +- Add retry logic for Nacos service discovery requests after failures (PR [#12734](https://github.com/apache/apisix/pull/12734)) +- Remove `lua-resty-worker-events` from core dependencies (PR [#12930](https://github.com/apache/apisix/pull/12930)) +- Upgrade `lua-resty-logger-socket` dependency (PR [#12898](https://github.com/apache/apisix/pull/12898)) +- Upgrade `lua-resty-dns-client` dependency (PR [#12851](https://github.com/apache/apisix/pull/12851)) ## Changelog diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md index 7bf6e1c2a9d1c..3b45533639472 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -118,30 +118,30 @@ API 驱动的独立模式(主要用于 Ingress 控制器)现在支持新的 ## 其他更新 -* 支持 file-driven standalone 模式下的状态 API (PR [#12810](https://github.com/apache/apisix/pull/12810)) -* 正确处理 Kubernetes 服务发现中的 EndpointSlices (PR [#12634](https://github.com/apache/apisix/pull/12634)) -* 将资源名称长度从 100 个字符放宽至 256 个字符,以更好地支持入口控制器名称生成模式 (PR [#11822](https://github.com/apache/apisix/pull/11822)) -* 为流路由添加验证和删除保护 (PR [#12794](https://github.com/apache/apisix/pull/12794)) -* 通过在 `limit-conn` 插件中配置 Redis 密钥过期时间来防止永久配额阻塞 (PR [#12872](https://github.com/apache/apisix/pull/12872)) -* 通过在 SkyWalking 集成中路由命中时启动计时器来提高计时精度 (PR [#12855](https://github.com/apache/apisix/pull/12855)) -* 通过在销毁 Prometheus 时移除不必要的深拷贝来提高性能 (PR [#12905](https://github.com/apache/apisix/pull/12905)) -* 通过在 `limit-req` 插件中确保安全的 Redis 键驱逐来防止数据损坏 (PR [#12911](https://github.com/apache/apisix/pull/12911)) -* 通过在 `limit-count` 插件中使用元父级来识别插件源来改进调试 (PR [#12900](https://github.com/apache/apisix/pull/12900)) -* 在 MQTT 插件中,将 `protocol_name` 设置为可选,并将其默认值设为 `MQTT` (PR [#12831](https://github.com/apache/apisix/pull/12831)) -* 在 `batch-requests` 插件中,确保子响应的数量与子请求的数量匹配 (PR [#12779](https://github.com/apache/apisix/pull/12779)) -* 修正 `ai-proxy-multi` 插件中的日志模式键 (PR [#12795](https://github.com/apache/apisix/pull/12795)) -* 修复插件元数据中 `enable_data_encryption` 的初始化和查询问题 (PR [#12624](https://github.com/apache/apisix/pull/12624)) -* 当传入请求包含空值时,添加 `X-Request-Id` 标头 (PR [#12837](https://github.com/apache/apisix/pull/12837)) -* 调整目录权限,允许 APISIX 在 OpenShift 上运行而无需使用 `anyuid` 命令 (PR [#12824](https://github.com/apache/apisix/pull/12824)) -* 修复 Kubernetes 服务发现中的前置和后置钩子拼写错误,并提高清理安全性 (PR [#12288](https://github.com/apache/apisix/pull/12288)) -* 通过将 IPv6 检查移至模式验证来提高性能 (PR [#12714](https://github.com/apache/apisix/pull/12714)) -* 重构缓存逻辑,使用密钥 URI 作为缓存键,并改进 LRU 缓存实现 (PR [#12682](https://github.com/apache/apisix/pull/12682)) -* 确保独立上游的 `node_version` 得到维护 (PR [#12856](https://github.com/apache/apisix/pull/12856)) -* 修复当任何 Eureka 节点不可用时,重新加载期间的请求失败问题 (PR [#12906](https://github.com/apache/apisix/pull/12906)) -* 为 Nacos 服务发现请求失败后添加重试逻辑 (PR [#12734](https://github.com/apache/apisix/pull/12734)) -* 移除从核心依赖项中移除 `lua-resty-worker-events`(PR [#12930](https://github.com/apache/apisix/pull/12930)) -* 升级 `lua-resty-logger-socket` 依赖项(PR [#12898](https://github.com/apache/apisix/pull/12898)) -* 升级 `lua-resty-dns-client` 依赖项(PR [#12851](https://github.com/apache/apisix/pull/12851)) +- 支持 file-driven standalone 模式下的状态 API (PR [#12810](https://github.com/apache/apisix/pull/12810)) +- 正确处理 Kubernetes 服务发现中的 EndpointSlices (PR [#12634](https://github.com/apache/apisix/pull/12634)) +- 将资源名称长度从 100 个字符放宽至 256 个字符,以更好地支持入口控制器名称生成模式 (PR [#11822](https://github.com/apache/apisix/pull/11822)) +- 为流路由添加验证和删除保护 (PR [#12794](https://github.com/apache/apisix/pull/12794)) +- 通过在 `limit-conn` 插件中配置 Redis 密钥过期时间来防止永久配额阻塞 (PR [#12872](https://github.com/apache/apisix/pull/12872)) +- 通过在 SkyWalking 集成中路由命中时启动计时器来提高计时精度 (PR [#12855](https://github.com/apache/apisix/pull/12855)) +- 通过在销毁 Prometheus 时移除不必要的深拷贝来提高性能 (PR [#12905](https://github.com/apache/apisix/pull/12905)) +- 通过在 `limit-req` 插件中确保安全的 Redis 键驱逐来防止数据损坏 (PR [#12911](https://github.com/apache/apisix/pull/12911)) +- 通过在 `limit-count` 插件中使用元父级来识别插件源来改进调试 (PR [#12900](https://github.com/apache/apisix/pull/12900)) +- 在 MQTT 插件中,将 `protocol_name` 设置为可选,并将其默认值设为 `MQTT` (PR [#12831](https://github.com/apache/apisix/pull/12831)) +- 在 `batch-requests` 插件中,确保子响应的数量与子请求的数量匹配 (PR [#12779](https://github.com/apache/apisix/pull/12779)) +- 修正 `ai-proxy-multi` 插件中的日志模式键 (PR [#12795](https://github.com/apache/apisix/pull/12795)) +- 修复插件元数据中 `enable_data_encryption` 的初始化和查询问题 (PR [#12624](https://github.com/apache/apisix/pull/12624)) +- 当传入请求包含空值时,添加 `X-Request-Id` 标头 (PR [#12837](https://github.com/apache/apisix/pull/12837)) +- 调整目录权限,允许 APISIX 在 OpenShift 上运行而无需使用 `anyuid` 命令 (PR [#12824](https://github.com/apache/apisix/pull/12824)) +- 修复 Kubernetes 服务发现中的前置和后置钩子拼写错误,并提高清理安全性 (PR [#12288](https://github.com/apache/apisix/pull/12288)) +- 通过将 IPv6 检查移至模式验证来提高性能 (PR [#12714](https://github.com/apache/apisix/pull/12714)) +- 重构缓存逻辑,使用密钥 URI 作为缓存键,并改进 LRU 缓存实现 (PR [#12682](https://github.com/apache/apisix/pull/12682)) +- 确保独立上游的 `node_version` 得到维护 (PR [#12856](https://github.com/apache/apisix/pull/12856)) +- 修复当任何 Eureka 节点不可用时,重新加载期间的请求失败问题 (PR [#12906](https://github.com/apache/apisix/pull/12906)) +- 为 Nacos 服务发现请求失败后添加重试逻辑 (PR [#12734](https://github.com/apache/apisix/pull/12734)) +- 移除从核心依赖项中移除 `lua-resty-worker-events`(PR [#12930](https://github.com/apache/apisix/pull/12930)) +- 升级 `lua-resty-logger-socket` 依赖项(PR [#12898](https://github.com/apache/apisix/pull/12898)) +- 升级 `lua-resty-dns-client` 依赖项(PR [#12851](https://github.com/apache/apisix/pull/12851)) ## 更新日志 From e3212f421fbc3254ed1a8075aee26ae59686072b Mon Sep 17 00:00:00 2001 From: traky Date: Thu, 29 Jan 2026 16:58:45 +0800 Subject: [PATCH 3/8] f --- blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md | 6 +++--- blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md index 4ed357000df03..c9be42e78b279 100644 --- a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -58,7 +58,7 @@ For more information, see [PR #12852](https://github.com/apache/apisix/pull/1285 ### Auth plugins custom `www-authenticate` header with realm -Authentication plugins `basic-auth`, `key-auth`, `hmac-auth`, `jwt-auth`, and `ldap-auth`, now support customizing the realm value in `WWW-Authenticate` header on 401 responses, implementing RFC 7235 standards for HTTP authentication. +Authentication plugins `basic-auth`, `key-auth`, `hmac-auth`, `jwt-auth`, and `ldap-auth` now support customizing the realm value in `WWW-Authenticate` header on 401 responses, implementing RFC 7235 standards for HTTP authentication. For more information, see [PR #12864](https://github.com/apache/apisix/pull/12864). @@ -104,7 +104,7 @@ SSL certificate matching now supports the complete wildcard `*` value, in additi For more information, see [PR #12668](https://github.com/apache/apisix/pull/12668). -### `grpc-web` plugin supports non prefix based routes +### `grpc-web` plugin supports exact matching in route URI The `grpc-web` plugin now works with routes that do not use prefix matching, expanding flexibility for gRPC-Web deployments. @@ -131,7 +131,7 @@ For more information, see [PR #12718](https://github.com/apache/apisix/pull/1271 - Ensure the number of sub-responses matches the sub-request count in the `batch-requests` plugin (PR [#12779](https://github.com/apache/apisix/pull/12779)) - Correct the logging schema key in the `ai-proxy-multi` plugin (PR [#12795](https://github.com/apache/apisix/pull/12795)) - Fix initialization and querying issues for `enable_data_encryption` in plugin metadata (PR [#12624](https://github.com/apache/apisix/pull/12624)) -- Add a `X-Request-Id` header when the incoming request contains an empty value (PR [#12837](https://github.com/apache/apisix/pull/12837)) +- Add an `X-Request-Id` header when the incoming request contains an empty value (PR [#12837](https://github.com/apache/apisix/pull/12837)) - Adjust directory permissions to allow APISIX to run on OpenShift without the `anyuid` command (PR [#12824](https://github.com/apache/apisix/pull/12824)) - Fix pre- and post-hook typos in Kubernetes discovery and improve cleanup safety (PR [#12288](https://github.com/apache/apisix/pull/12288)) - Improve performance by moving the IPv6 check to schema validation (PR [#12714](https://github.com/apache/apisix/pull/12714)) diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md index 3b45533639472..5cc59a42576f5 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -47,8 +47,8 @@ tags: [Community] - [PR #12933 (Google Cloud Vertex AI)](https://github.com/apache/apisix/pull/12933) - [PR #12883 (Google Gemini)](https://github.com/apache/apisix/pull/12883) -- [PR #12881 (Anthropic)](https://github.com/apache/apisix/pull/12881) -- [PR #12878 (OpenRouter)](https://github.com/apache/apisix/pull/12878) +- [PR #12881 (Anthropic)](https://github.com/apache/apisix/pull/12881) +- [PR #12878 (OpenRouter)](https://github.com/apache/apisix/pull/12878) ### Kubernetes 服务发现就绪状态检查 @@ -104,7 +104,7 @@ SSL 证书匹配现在除了支持精确域名和部分通配符外,还支持 更多信息,请参阅 [PR #12668](https://github.com/apache/apisix/pull/12668)。 -### `grpc-web` 插件支持非前缀路由 +### `grpc-web` 插件支持精确匹配路由 URI `grpc-web` 插件现在可以处理不使用前缀匹配的路由,从而增强了 gRPC-Web 部署的灵活性。 @@ -139,7 +139,7 @@ API 驱动的独立模式(主要用于 Ingress 控制器)现在支持新的 - 确保独立上游的 `node_version` 得到维护 (PR [#12856](https://github.com/apache/apisix/pull/12856)) - 修复当任何 Eureka 节点不可用时,重新加载期间的请求失败问题 (PR [#12906](https://github.com/apache/apisix/pull/12906)) - 为 Nacos 服务发现请求失败后添加重试逻辑 (PR [#12734](https://github.com/apache/apisix/pull/12734)) -- 移除从核心依赖项中移除 `lua-resty-worker-events`(PR [#12930](https://github.com/apache/apisix/pull/12930)) +- 从核心依赖项中移除 `lua-resty-worker-events`(PR [#12930](https://github.com/apache/apisix/pull/12930)) - 升级 `lua-resty-logger-socket` 依赖项(PR [#12898](https://github.com/apache/apisix/pull/12898)) - 升级 `lua-resty-dns-client` 依赖项(PR [#12851](https://github.com/apache/apisix/pull/12851)) From 61725cc1bbf4fe3d7538a1059a22f434e0e1b37e Mon Sep 17 00:00:00 2001 From: Traky Deng Date: Thu, 29 Jan 2026 17:01:29 +0800 Subject: [PATCH 4/8] update zh note --- blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md index 5cc59a42576f5..d817c2cbd77b3 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -25,7 +25,7 @@ tags: [Community] 本次版本新增了对多种 AI 提供商的支持,增强了日志记录能力,并在服务发现、安全性和插件功能等方面进行了多项改进。 -此外,该版本还包含了一些重要的变更。如果您发现这些变更会对您的使用产生影响,请进行相应的计划升级。 +此外,该版本还包含了一项重大变更。如果您发现这项变更会对您的使用产生影响,请进行相应的计划升级。 ## 重大变更 From 1fc6686363277803be63a3e1367de9aa63564f4a Mon Sep 17 00:00:00 2001 From: traky Date: Fri, 30 Jan 2026 12:06:14 +0800 Subject: [PATCH 5/8] refine statement for max_pending_entries in logging plugins --- blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md | 4 ++-- blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md index c9be42e78b279..4dea1101d3cf6 100644 --- a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -74,9 +74,9 @@ The `limit-count`, `limit-conn`, and `limit-req` plugins now support Redis conne For more information, see [PR #12861](https://github.com/apache/apisix/pull/12861). -### Logger plugins support max pending entries +### Access log logging plugins support max pending entries -All logger plugins now support the `max_pending_entries` parameter, which sets the maximum number of unprocessed entries allowed in the batch processor. When this limit is reached, new entries will be dropped until the backlog is reduced. This helps prevent memory spikes when the logger is slow or unavailable. +All access log logging plugins now support the `max_pending_entries` parameter in their plugin metadata, which sets the maximum number of unprocessed entries allowed in the batch processor. When this limit is reached, new entries will be dropped until the backlog is reduced. This helps prevent memory spikes when the logger is slow or unavailable. For more information, see [PR #12709](https://github.com/apache/apisix/pull/12709). diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md index d817c2cbd77b3..df9884a66e3de 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -74,9 +74,9 @@ Kubernetes 服务发现现在通过 `/status/ready` 接口提供就绪状态查 更多信息,请参阅 [PR #12861](https://github.com/apache/apisix/pull/12861)。 -### 日志插件支持最大待处理条目数 +### 访问日志插件支持 `max_pending_entries` -所有日志插件现在都支持 `max_pending_entries` 参数,该参数用于设置批处理处理器中允许的最大未处理条目数。当达到此限制时,新条目将被丢弃,直到积压的条目减少为止。这有助于防止日志记录器运行缓慢或不可用时出现内存峰值。 +所有访问日志相关插件现在都在 plugin metadata 中支持配置 `max_pending_entries` 参数。该参数用于设置批处理处理器中允许的最大未处理条目数。当达到此限制时,新条目将被丢弃,直到积压的条目减少为止。这有助于防止日志记录器运行缓慢或不可用时出现内存峰值。 更多信息,请参阅 [PR #12709](https://github.com/apache/apisix/pull/12709)。 From 3b188a190cf65c27789a17afd4f0f241cc89173e Mon Sep 17 00:00:00 2001 From: traky Date: Fri, 30 Jan 2026 14:11:20 +0800 Subject: [PATCH 6/8] correct description for apisix_request_id --- blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md | 4 ++-- blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md index 4dea1101d3cf6..8ea0ec42e2d81 100644 --- a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -62,9 +62,9 @@ Authentication plugins `basic-auth`, `key-auth`, `hmac-auth`, `jwt-auth`, and `l For more information, see [PR #12864](https://github.com/apache/apisix/pull/12864). -### `request-id` plugin supports `apisix_request_id` variable +### Add `apisix_request_id` variable for request identification -The `request-id` plugin now includes support for the `apisix_request_id` variable and records request IDs in error logs, significantly improving debugging and tracing capabilities. +This release adds `apisix_request_id` variable that logs request IDs in both access and error logs. The variable is automatically set from the built-in `$request_id` and can be updated by the `request-id` plugin when enabled. This improves debugging and log correlation capabilities. For more information, see [PR #12931](https://github.com/apache/apisix/pull/12931). diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md index df9884a66e3de..0a6fdcff819e9 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -62,9 +62,9 @@ Kubernetes 服务发现现在通过 `/status/ready` 接口提供就绪状态查 更多信息,请参阅 [PR #12864](https://github.com/apache/apisix/pull/12864)。 -### `request-id` 插件支持 `apisix_request_id` 变量 +### 添加用于请求标识的 `apisix_request_id` 变量 -`request-id` 插件现在支持 `apisix_request_id` 变量,并将请求 ID 记录到错误日志中,从而显著提升调试和追踪能力。 +此版本新增了 `apisix_request_id` 变量,用于在访问日志和错误日志中记录请求 ID。该变量由内置的 `$request_id` 自动赋值,启用后可通过 `request-id` 插件进行更新。这增强了调试和日志关联能力。 更多信息,请参阅 [PR #12931](https://github.com/apache/apisix/pull/12931)。 From e6f1588081899397de8c8603ff743b063586c7df Mon Sep 17 00:00:00 2001 From: traky Date: Fri, 30 Jan 2026 14:19:45 +0800 Subject: [PATCH 7/8] update keepalive parameters for param naming updates --- blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md | 4 ++-- blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md index 8ea0ec42e2d81..32a094f3cd2f4 100644 --- a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -70,9 +70,9 @@ For more information, see [PR #12931](https://github.com/apache/apisix/pull/1293 ### Rate limiting plugins support configuring Redis keepalive -The `limit-count`, `limit-conn`, and `limit-req` plugins now support Redis connection keepalive settings, improving connection stability and reducing overhead. +The `limit-count`, `limit-conn`, and `limit-req` plugins now support Redis connection keepalive parameters `redis_keepalive_timeout` and `redis_keepalive_pool`, improving connection stability and reducing overhead. -For more information, see [PR #12861](https://github.com/apache/apisix/pull/12861). +For more information, see [PR #12861](https://github.com/apache/apisix/pull/12861) and [PR #12955](https://github.com/apache/apisix/pull/12955). ### Access log logging plugins support max pending entries diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md index 0a6fdcff819e9..b826bff0fe975 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md @@ -70,9 +70,9 @@ Kubernetes 服务发现现在通过 `/status/ready` 接口提供就绪状态查 ### 速率限制插件支持配置 Redis keepalive -`limit-count`、`limit-conn` 和 `limit-req` 插件现在支持 Redis 连接 keepalive 设置,从而提升连接稳定性并降低系统开销。 +`limit-count`、`limit-conn` 和 `limit-req` 插件现在支持 Redis 连接 keepalive 参数 `redis_keepalive_timeout` 和 `redis_keepalive_pool`,从而提升连接稳定性并降低系统开销。 -更多信息,请参阅 [PR #12861](https://github.com/apache/apisix/pull/12861)。 +更多信息,请参阅 [PR #12861](https://github.com/apache/apisix/pull/12861) 和 [PR #12955](https://github.com/apache/apisix/pull/12955)。 ### 访问日志插件支持 `max_pending_entries` From 43c648072acac33bec70e2c9b49d7c6b10f80c26 Mon Sep 17 00:00:00 2001 From: traky Date: Tue, 3 Feb 2026 09:45:01 +0800 Subject: [PATCH 8/8] adjust dates --- .../blog/2026/{01/31 => 02/05}/release-apache-apisix-3.15.0.md | 2 +- .../blog/2026/{01/31 => 02/05}/release-apache-apisix-3.15.0.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename blog/en/blog/2026/{01/31 => 02/05}/release-apache-apisix-3.15.0.md (98%) rename blog/zh/blog/2026/{01/31 => 02/05}/release-apache-apisix-3.15.0.md (98%) diff --git a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/en/blog/2026/02/05/release-apache-apisix-3.15.0.md similarity index 98% rename from blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md rename to blog/en/blog/2026/02/05/release-apache-apisix-3.15.0.md index 32a094f3cd2f4..d98e8c3502f19 100644 --- a/blog/en/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/en/blog/2026/02/05/release-apache-apisix-3.15.0.md @@ -15,7 +15,7 @@ keywords: - API Management Platform - New Release - Cloud Native -description: The Apache APISIX 3.15.0 version is released on Jan 31, 2026. This release includes a few changes, new features, bug fixes, and other improvements to user experiences. +description: The Apache APISIX 3.15.0 version is released on Feb 5, 2026. This release includes a few changes, new features, bug fixes, and other improvements to user experiences. tags: [Community] --- diff --git a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md b/blog/zh/blog/2026/02/05/release-apache-apisix-3.15.0.md similarity index 98% rename from blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md rename to blog/zh/blog/2026/02/05/release-apache-apisix-3.15.0.md index b826bff0fe975..926445b7a5efa 100644 --- a/blog/zh/blog/2026/01/31/release-apache-apisix-3.15.0.md +++ b/blog/zh/blog/2026/02/05/release-apache-apisix-3.15.0.md @@ -15,7 +15,7 @@ keywords: - API Management Platform - New Release - Cloud Native -description: Apache APISIX 3.15.0 版本于 2026 年 1 月 31 日发布。该版本带来了一系列新功能、修复、以及相关用户体验优化。 +description: Apache APISIX 3.15.0 版本于 2026 年 2 月 5 日发布。该版本带来了一系列新功能、修复、以及相关用户体验优化。 tags: [Community] ---