This is an automated email from the ASF dual-hosted git repository.
guoqqqi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git
The following commit(s) were added to refs/heads/master by this push:
new 0c8404e7f29 blog: add 2026 July monthly report (#2091)
0c8404e7f29 is described below
commit 0c8404e7f2932475ebe6b434812dc6fca1f106e3
Author: Yilia Lin <[email protected]>
AuthorDate: Fri Jul 31 15:10:46 2026 +0800
blog: add 2026 July monthly report (#2091)
---
blog/en/blog/2026/07/31/2026-jul-monthly-report.md | 161 +++++++++++++++++++++
blog/zh/blog/2026/07/31/2026-jul-monthly-report.md | 161 +++++++++++++++++++++
2 files changed, 322 insertions(+)
diff --git a/blog/en/blog/2026/07/31/2026-jul-monthly-report.md
b/blog/en/blog/2026/07/31/2026-jul-monthly-report.md
new file mode 100644
index 00000000000..2211527054a
--- /dev/null
+++ b/blog/en/blog/2026/07/31/2026-jul-monthly-report.md
@@ -0,0 +1,161 @@
+---
+title: "2026 Monthly Report (July 01 - July 31)"
+keywords: ["Apache APISIX", "API Gateway", "Monthly Report", "Contributor"]
+description: Our monthly Apache APISIX community report generates insights
into the project's monthly developments. The reports provide a pathway into the
Apache APISIX community, ensuring that you stay well-informed and actively
involved.
+tags: [Community]
+image:
https://static.api7.ai/uploads/2026/07/31/zaSU1pKM_2026-july-monthly-report-cover-en.webp
+---
+
+> Recently, we've introduced and updated some new features, including semantic
AI caching and load balancing, broader AI content moderation, cross-node AI
rate limiting, safer plugin body buffering, and enhanced observability. For
more details, please read this month's newsletter.
+
+<!--truncate-->
+
+## Introduction
+
+From its inception, the Apache APISIX project has embraced the ethos of
open-source community collaboration, propelling it into the ranks of the most
active global open-source API gateway projects. The proverbial wisdom of
'teamwork makes the dream work' rings true in our way and is made possible by
the collective effort of our community.
+
+From July 1st to July 31st, 19 contributors made 151 commits to Apache APISIX.
We sincerely appreciate your contributions to Apache APISIX.
+
+## Contributor Statistics
+
+
+
+
+
+## Feature Highlights
+
+Here are the key updates from this month, grouped by capability area.
+
+### AI Gateway Caching, Routing, and Rate Limiting
+
+#### 1. Add a Semantic Cache Layer to `ai-cache`
+
+PR: https://github.com/apache/apisix/pull/13632
+
+Contributor: [janiussyafiq](https://github.com/janiussyafiq)
+
+This PR adds an optional semantic (L2) layer to `ai-cache`. After an
exact-cache miss, APISIX can embed the prompt and search a RediSearch vector
index for a sufficiently similar response, while preserving tenant and model
isolation and failing open if the embedding or vector store is unavailable.
+
+#### 2. Cache Streaming Responses in `ai-cache`
+
+PR: https://github.com/apache/apisix/pull/13644
+
+Contributor: [janiussyafiq](https://github.com/janiussyafiq)
+
+This PR extends `ai-cache` to capture complete SSE responses and replay them
with the correct content type on cache hits. Cache entries are tagged as JSON
or SSE, and shared Redis connection and error handling make both streaming and
backfill paths more resilient.
+
+#### 3. Share `ai-rate-limiting` Counters Through Redis
+
+PR: https://github.com/apache/apisix/pull/13670
+
+Contributor: [shreemaan-abhishek](https://github.com/shreemaan-abhishek)
+
+This PR adds Redis, Redis Cluster, and Redis Sentinel policies to
`ai-rate-limiting`. Centralized token counters enforce one quota across all
APISIX nodes instead of multiplying the effective allowance by the cluster
size; the existing local policy remains the default.
+
+#### 4. Add Semantic Load Balancing to `ai-proxy-multi`
+
+PR: https://github.com/apache/apisix/pull/13676
+
+Contributor: [AlinsRan](https://github.com/AlinsRan)
+
+This PR adds a `semantic` load-balancing algorithm that selects an LLM
instance according to the meaning of the incoming prompt. APISIX embeds
instance examples once, compares each request with the cached reference
vectors, and falls back to a catch-all instance if embedding or similarity
evaluation fails, enabling cost- and capability-aware routing without an
external classifier.
+
+### AI Gateway Security and Observability
+
+#### 5. Add Prometheus Metrics for AI Cache Performance
+
+PR: https://github.com/apache/apisix/pull/13659
+
+Contributor: [janiussyafiq](https://github.com/janiussyafiq)
+
+This PR adds Prometheus counters for AI cache hits, misses, and bypasses,
together with a histogram for embedding latency. The new metrics distinguish
exact and semantic hits and reuse the existing LLM label set, giving operators
a consistent view of cache effectiveness and embedding overhead.
+
+#### 6. Moderate System and Tool Content with `ai-aliyun-content-moderation`
+
+PR: https://github.com/apache/apisix/pull/13646
+
+Contributor: [AlinsRan](https://github.com/AlinsRan)
+
+This PR lets `ai-aliyun-content-moderation` inspect system prompts and, in
OpenAI-compatible formats, standalone tool-role results in addition to user
messages, covering indirect prompt-injection risks in agent and MCP workflows.
The new `request_check_roles` option defaults to `["user"]`, so existing
configurations keep their previous behavior.
+
+#### 7. Moderate LLM Responses with `ai-aws-content-moderation`
+
+PR: https://github.com/apache/apisix/pull/13735
+
+Contributor: [shreemaan-abhishek](https://github.com/shreemaan-abhishek)
+
+This PR extends `ai-aws-content-moderation` from request-only checks to
non-streaming and streaming LLM responses. Non-streaming checks can return a
provider-compatible refusal, while real-time streaming checks can replace the
remainder of a toxic stream; the default `final_packet` mode audits the
assembled stream and annotates its final SSE events with `risk_level`. Response
checks remain disabled by default.
+
+### Traffic Handling and Upstream Health
+
+#### 8. Preserve Encoded Slashes When Matching Path Parameters
+
+PR: https://github.com/apache/apisix/pull/13626
+
+Contributor: [AlinsRan](https://github.com/AlinsRan)
+
+This PR adds the opt-in `apisix.match_uri_encoded_slash` option, allowing
`%2F` to remain encoded while APISIX matches path parameters. It enables routes
such as `/v1/:id/products/:type/list` to accept identifiers containing encoded
slashes while conservatively falling back to NGINX's normalized URI for
ambiguous or unsafe paths.
+
+#### 9. Preserve Client Addresses Across Stream PROXY Protocol Hops
+
+PR: https://github.com/apache/apisix/pull/13700
+
+Contributor: [nic-6443](https://github.com/nic-6443)
+
+This PR adds `nginx_config.stream.real_ip_from`, the stream counterpart to the
existing HTTP setting. When APISIX trusts the connected load balancer, it can
use the address from an inbound PROXY protocol header for stream access logs,
IP-based policies, and the PROXY header sent to the upstream.
+
+#### 10. Set or Add Multiple Headers with the Same Name
+
+PR: https://github.com/apache/apisix/pull/13597
+
+Contributor: [AlinsRan](https://github.com/AlinsRan)
+
+This PR allows `proxy-rewrite` values under `headers.set` and `headers.add` to
be arrays. Routes can now replace or append repeated headers such as gRPC
metadata without changing the behavior of existing scalar configurations, and
each array element can still use NGINX variables and regular-expression
captures.
+
+#### 11. Customize Active Health Check Methods and Bodies
+
+PR: https://github.com/apache/apisix/pull/13726
+
+Contributor: [AlinsRan](https://github.com/AlinsRan)
+
+This PR adds `http_method` and `http_req_body` to active upstream health
checks. Operators can probe endpoints that require a realistic POST body, such
as an LLM chat-completion endpoint, while the default remains a bodyless GET
for backward compatibility.
+
+### Platform Reliability and Integrations
+
+#### 12. Increase Default Sizes for Non-Evictable Shared Dictionaries
+
+PR: https://github.com/apache/apisix/pull/13688
+
+Contributor: [nic-6443](https://github.com/nic-6443)
+
+This PR raises the default capacities of shared dictionaries used by
Prometheus, service discovery, and tracing. Because these dictionaries cannot
evict old entries, the larger defaults reduce silently dropped metrics,
unresolved upstream nodes, and lost trace spans in medium and large
deployments, while explicit user settings continue to take precedence.
+
+#### 13. Connect Kafka Logger Plugins to TLS-Enabled Brokers
+
+PR: https://github.com/apache/apisix/pull/13607
+
+Contributor: [ecsimsw](https://github.com/ecsimsw)
+
+This PR exposes TLS settings in both `kafka-logger` and `error-log-logger`,
enabling secure connections to brokers such as TLS-only AWS MSK clusters. Users
can enable TLS and certificate verification through a dedicated configuration
object designed to accommodate future mTLS support.
+
+### Gateway Security and Identity
+
+#### 14. Bound Request and Response Body Buffering in Plugins
+
+PR: https://github.com/apache/apisix/pull/13705
+
+Contributor: [shreemaan-abhishek](https://github.com/shreemaan-abhishek)
+
+This PR adds configurable request and response body size limits, defaulting to
64 MiB, to plugins that buffer entire bodies in worker memory. Oversized
requests are rejected, while response-side plugins truncate or stream data
through uncached as appropriate, reducing the risk of unbounded memory
consumption.
+
+#### 15. Forward the Raw Signed ID Token to Upstreams
+
+PR: https://github.com/apache/apisix/pull/13616
+
+Contributor: [luarx](https://github.com/luarx)
+
+This PR adds the `set_raw_id_token_header` option to `openid-connect`,
allowing the original signed ID token JWT to be forwarded through
`X-Raw-ID-Token` during the full OIDC session flow. Unlike the decoded claims
in `X-ID-Token`, the raw token can be verified against the identity provider's
JWKS, and APISIX clears any client-supplied value before setting the header;
bearer and introspection flows are not supported because they have no session.
+
+## Conclusion
+
+The [official website](https://apisix.apache.org/) and [GitHub
Issues](https://github.com/apache/apisix/issues) of Apache APISIX provide a
wealth of documentation of tutorials, and real-world use cases. If you
encounter any issues, you can refer to the documentation, search for keywords
in Issues, or participate in discussions on Issues to share your ideas and
practical experiences.
diff --git a/blog/zh/blog/2026/07/31/2026-jul-monthly-report.md
b/blog/zh/blog/2026/07/31/2026-jul-monthly-report.md
new file mode 100644
index 00000000000..523e9dc00aa
--- /dev/null
+++ b/blog/zh/blog/2026/07/31/2026-jul-monthly-report.md
@@ -0,0 +1,161 @@
+---
+title: "2026 社区月报 (07.01 - 07.31)"
+keywords: ["Apache APISIX", "API 网关", "社区月报", "贡献者"]
+description: Apache APISIX 社区的月报旨在帮助社区成员更全面地了解社区的最新动态,方便大家参与到 Apache APISIX
社区中来。
+tags: [Community]
+image:
https://static.api7.ai/uploads/2026/07/31/wT1P39iV_2026-july-monthly-report-cover-cn.webp
+---
+
+> 最近,我们引入并更新了一些新功能,包括 AI 语义缓存与语义负载均衡、更全面的 AI 内容审核、跨节点 AI
限流、更安全的插件请求与响应体缓冲,以及更丰富的可观测性指标等。有关更多细节,请阅读本期月报。
+
+<!--truncate-->
+
+## 导语
+
+Apache APISIX 项目始终秉承着开源社区协作的精神,自问世起便崭露头角,如今已经成为全球最活跃的开源 API
网关项目之一。正如谚语所言,"众人拾柴火焰高",这一辉煌成就,得益于整个社区伙伴的协同努力。
+
+从 2026.07.01 至 2026.07.31,有 19 名开发者提交了 151 个 commits,为 Apache APISIX
做出了重要贡献。感谢这些伙伴们对 Apache APISIX 的无私支持!正是因为你们的付出,才能让 Apache APISIX 项目不断改进、提升和壮大。
+
+## 贡献者统计
+
+
+
+
+
+## 近期亮点功能
+
+以下是本月的重点更新,并按功能方向进行归类。
+
+### AI 网关缓存、路由与限流
+
+#### 1. `ai-cache` 新增语义缓存层
+
+相关 PR:https://github.com/apache/apisix/pull/13632
+
+贡献者:[janiussyafiq](https://github.com/janiussyafiq)
+
+本 PR 为 `ai-cache` 新增可选的语义二级缓存。在精确缓存未命中后,APISIX 可以对提示词生成向量,并在 RediSearch
向量索引中查找相似度达标的响应;该能力支持租户与模型隔离,且在嵌入服务或向量存储异常时会自动降级,不影响请求正常处理。
+
+#### 2. `ai-cache` 支持缓存流式响应
+
+相关 PR:https://github.com/apache/apisix/pull/13644
+
+贡献者:[janiussyafiq](https://github.com/janiussyafiq)
+
+本 PR 扩展了 `ai-cache`,可在确认 SSE 流完整后缓存响应,并在缓存命中时使用正确的内容类型进行回放。缓存项会标记为 JSON 或 SSE
格式,同时通过统一的 Redis 连接与异常处理逻辑,提高流式缓存和一级缓存回填的可靠性。
+
+#### 3. `ai-rate-limiting` 支持 Redis 共享计数器
+
+相关 PR:https://github.com/apache/apisix/pull/13670
+
+贡献者:[shreemaan-abhishek](https://github.com/shreemaan-abhishek)
+
+本 PR 为 `ai-rate-limiting` 新增 Redis、Redis Cluster 和 Redis Sentinel 计数策略。集中式
Token 计数器可以在所有 APISIX 节点之间执行统一配额,避免实际限额随网关节点数增加而被放大;原有的本地策略仍是默认选项。
+
+#### 4. `ai-proxy-multi` 新增语义负载均衡
+
+相关 PR:https://github.com/apache/apisix/pull/13676
+
+贡献者:[AlinsRan](https://github.com/AlinsRan)
+
+本 PR 新增 `semantic` 负载均衡算法,可根据请求提示词的语义选择合适的 LLM 实例。APISIX
会预先生成并缓存各实例示例的向量,再将每个请求与参考向量进行比较;若嵌入或相似度计算失败,则回退到兜底实例,无需外部分类服务即可实现面向成本与能力的智能路由。
+
+### AI 网关安全与可观测性
+
+#### 5. Prometheus 新增 AI 缓存性能指标
+
+相关 PR:https://github.com/apache/apisix/pull/13659
+
+贡献者:[janiussyafiq](https://github.com/janiussyafiq)
+
+本 PR 为 AI 缓存新增命中、未命中和绕过次数等 Prometheus 指标,并增加嵌入调用延迟直方图。新指标可以区分精确缓存与语义缓存命中,并沿用现有
LLM 指标标签,便于统一观察缓存效果与向量生成开销。
+
+#### 6. `ai-aliyun-content-moderation` 支持审核 system 与 tool 内容
+
+相关 PR:https://github.com/apache/apisix/pull/13646
+
+贡献者:[AlinsRan](https://github.com/AlinsRan)
+
+本 PR 让 `ai-aliyun-content-moderation` 除用户消息外,还能审核 system 提示词,以及 OpenAI
兼容格式中独立的 tool-role 工具结果,覆盖 Agent 与 MCP 工作流中的间接提示词注入风险。新增的 `request_check_roles`
默认仍为 `["user"]`,因此现有配置的行为保持不变。
+
+#### 7. `ai-aws-content-moderation` 支持审核 LLM 响应
+
+相关 PR:https://github.com/apache/apisix/pull/13735
+
+贡献者:[shreemaan-abhishek](https://github.com/shreemaan-abhishek)
+
+本 PR 将 `ai-aws-content-moderation` 从仅审核请求扩展为同时支持非流式与流式 LLM
响应。非流式审核可以返回与上游协议兼容的拒绝内容,实时流式模式则能在检测到有害输出后替换剩余数据;默认的 `final_packet`
模式会在流结束后审核完整内容,并在最后的 SSE 数据事件中标记 `risk_level`。响应审核默认保持关闭。
+
+### 流量处理与上游健康检查
+
+#### 8. 路由匹配可保留路径参数中的编码斜杠
+
+相关 PR:https://github.com/apache/apisix/pull/13626
+
+贡献者:[AlinsRan](https://github.com/AlinsRan)
+
+本 PR 新增可选配置 `apisix.match_uri_encoded_slash`,让 APISIX 在匹配路径参数时保留 `%2F`
的编码形式。由此,`/v1/:id/products/:type/list`
等路由可以接收包含编码斜杠的标识符;对于存在歧义或安全风险的路径,系统仍会保守地回退到 NGINX 规范化后的 URI。
+
+#### 9. Stream PROXY 协议链路可保留真实客户端地址
+
+相关 PR:https://github.com/apache/apisix/pull/13700
+
+贡献者:[nic-6443](https://github.com/nic-6443)
+
+本 PR 新增 `nginx_config.stream.real_ip_from`,为 Stream 代理提供与 HTTP
对应的可信来源配置。APISIX 信任前置负载均衡器后,可以从入站 PROXY 协议头获取客户端地址,并将其用于 Stream 访问日志、IP
类策略以及发送给上游的 PROXY 协议头。
+
+#### 10. `proxy-rewrite` 支持设置或追加同名多值请求头
+
+相关 PR:https://github.com/apache/apisix/pull/13597
+
+贡献者:[AlinsRan](https://github.com/AlinsRan)
+
+本 PR 允许 `proxy-rewrite` 的 `headers.set` 与 `headers.add` 使用数组作为值。路由现在可以替换或追加
gRPC metadata 等同名多值请求头,同时保持现有标量配置的行为不变,数组中的每个元素仍支持 NGINX 变量与正则捕获结果。
+
+#### 11. 主动健康检查支持自定义 HTTP 方法与请求体
+
+相关 PR:https://github.com/apache/apisix/pull/13726
+
+贡献者:[AlinsRan](https://github.com/AlinsRan)
+
+本 PR 为上游主动健康检查新增 `http_method` 和 `http_req_body` 配置。运维人员可以使用带实际 POST 请求体的探针检查
LLM Chat Completion 等端点,同时默认行为仍是无请求体的 GET,保持向后兼容。
+
+### 平台可靠性与集成
+
+#### 12. 提高不可淘汰共享字典的默认容量
+
+相关 PR:https://github.com/apache/apisix/pull/13688
+
+贡献者:[nic-6443](https://github.com/nic-6443)
+
+本 PR 提高了
Prometheus、服务发现和链路追踪所用共享字典的默认容量。由于这些字典写满后无法自动淘汰旧数据,更大的默认值可以减少中大型部署中指标静默丢失、上游节点无法解析或追踪
Span 丢失等问题;用户显式配置的容量仍会优先生效。
+
+#### 13. Kafka 日志插件支持连接启用 TLS 的 Broker
+
+相关 PR:https://github.com/apache/apisix/pull/13607
+
+贡献者:[ecsimsw](https://github.com/ecsimsw)
+
+本 PR 为 `kafka-logger` 与 `error-log-logger` 暴露 TLS 配置,使其能够安全连接仅支持 TLS 的 AWS MSK
等 Kafka 集群。用户可以通过独立配置对象开启 TLS 与证书校验,该配置结构也为后续支持 mTLS 留出了扩展空间。
+
+### 网关安全与身份管理
+
+#### 14. 为插件请求与响应体缓冲设置容量上限
+
+相关 PR:https://github.com/apache/apisix/pull/13705
+
+贡献者:[shreemaan-abhishek](https://github.com/shreemaan-abhishek)
+
+本 PR 为会在 Worker 内存中完整缓冲请求体或响应体的插件新增可配置容量限制,默认值为 64
MiB。超限请求会被拒绝,响应侧则会根据插件场景截断内容或改为不缓存地透传,从而降低无上限内存占用带来的风险。
+
+#### 15. `openid-connect` 可向上游传递原始签名 ID Token
+
+相关 PR:https://github.com/apache/apisix/pull/13616
+
+贡献者:[luarx](https://github.com/luarx)
+
+本 PR 为 `openid-connect` 新增 `set_raw_id_token_header` 选项,可在完整 OIDC 会话流程中通过
`X-Raw-ID-Token` 向上游传递原始签名 ID Token JWT。与只包含解码后 Claims 的 `X-ID-Token` 不同,原始
Token 可以使用身份提供商的 JWKS 进行验签;APISIX 还会先清除客户端注入的同名请求头,而没有会话的 bearer 与
introspection 流程不支持该能力。
+
+## 结语
+
+Apache APISIX 的项目[官网](https://apisix.apache.org/zh/)和 GitHub 上的
[Issues](https://github.com/apache/apisix/issues)
上已经积累了比较丰富的文档教程和使用经验,如果您遇到问题可以翻阅文档,用关键词在 Issues 中搜索,也可以参与 Issues
上的讨论,提出自己的想法和实践经验。