更新日志
3.9.10
发布日期:2026-04-22
不兼容变更
插件
-
升级说明
OpenAPI2MCP 服务不再内置于网关镜像中,现作为独立 sidecar 容器(
api7/openapi-to-mcp)运行,网关镜像体积因此减少约 150 MB。如果你使用了openapi-to-mcp或mcp-tools-acl插件,需要在网关旁部署 OpenAPI2MCP sidecar 容器。Kubernetes 环境中,在网关 Helm chart 中启用openapiToMcp.enabled=true。Docker Compose 环境中,将api7/openapi-to-mcp容器与网关置于同一网络命名空间下。
新功能
插件
- AI Proxy
- 新增
override.request_body支持按协议深度合并请求体覆盖,以及override.llm_options提供感知提供商的max_tokens映射。运维人员可通过request_body_force_override标志将协议特定参数(如max_tokens、stop_sequences)设置为默认值或强制值。优先级顺序:model options → LLM options(始终强制)→ request body(按协议深度合并)。 - 新增
max_stream_duration_ms和max_response_bytes安全限制,防止无界限的 LLM 流式响应导致 worker 进程 CPU 占用过高。超出任一限制时,流将被优雅终止并返回相应错误信号。 - 网关现在可在流式传输过程中检测客户端断开连接,并立即停止从 LLM 上游读取数据,释放 worker 资源并避免不必要的 API 配额消耗。
- 新增
- Prometheus、OpenTelemetry、Zipkin
- 新增
response_source标签(Prometheus)和apisix.response_sourcespan 属性(OpenTelemetry、Zipkin),用于分类每个响应的来源:"apisix"(由 APISIX 生成,如插件拒绝或路由未找到)、"nginx"(NGINX 代理错误,如连接被拒绝或上游超时)或"upstream"(来自上游服务的真实响应)。这使得在监控面板和告警中可以更精确地归因错误来源。
- 新增
控制面
- 新增 Consul 服务发现支持。网关现在可以发现注册在 Consul 中的上游服务,支持基于元数据的过滤和健康检查感知的节点选择。
- 控制面现在可通过心跳动态推送遥测配置(如追踪采样率和导出端点)至数据面,无需重启网关。
- SSL/SNI 配置新增
skip_mtls_uri_regex字段,允许指定的 URI 模式跳过 mTLS 客户端证书校验,同时对其他所有 URI 保持 mTLS 强制校验。 - 新增
POST /apisix/admin/configs/validate批量配置校验接口。运维人员可在应用配置前校验路由、服务、上游和插件配置,在不影响线上流量的情况下捕获 schema 错误。 - DP Manager 现在在 7943 端口通过 cmux 支持原生 gRPC etcd 协议,为数据面在现有 HTTP etcd 协议基础上提供额外的连接选项。
encrypt_fields机制现在支持嵌套和复杂字段结构,包括任意深度的点分路径、数组和 map。包含深层嵌套敏感字段的插件配置(如auth.gcp.service_account_key)现在可以正确加密存储。
控制台(Dashboard)
- Key Auth 和 Basic Auth 插件新增表单模式配置,支持可视化凭证设置,无需手动编辑 JSON。
- 新增 OpenID Connect 快速启动预设模板,为常见身份提供商提供预填充的配置模板,简化 OIDC 插件初始配置。
- 上游配置界面新增 Consul 作为可选的服务发现类型。
缺陷修复
插件
- AI Proxy
- 修复问题:当 LLM 提供商每秒发送大量小型 SSE 数据块(如单字符推理 token)时,单个流式请求可能导致 worker 进程 CPU 占用率达到 100%,影响该 worker 上所有其他流量的可用性。
- 修复问题:当协议转换器处于活跃状态(例如 Anthropic 转 OpenAI)且上游返回了格式不兼容的 SSE 事件时,网关返回 500 错误而非 502。现在当上游响应格式与配置的协议转换不兼容时,网关正确返回 502 Bad Gateway。
- 修复问题:当 LLM 提供商在可空响应字段(如
prompt_tokens_details或usage)中返回 JSONnull时,网关崩溃,因为 JSON null 哨兵值通过了 Lua 真值检查但无法作为 table 索引。
- AI Rate Limiting
- 修复问题:上游提供的用量键(来自 LLM 响应用量数据)与保留的表达式环境名称(如
math或abs)冲突时,可能遮蔽内置函数,导致限速表达式求值异常或绕过限制。
- 修复问题:上游提供的用量键(来自 LLM 响应用量数据)与保留的表达式环境名称(如
控制面
- 修复问题:通过开发者门户使用 OIDC 类型的 DCR 提供者创建 OAuth 凭证时,在要求
client_name字段的身份提供者(如 Keycloak)上失败。client_name现已包含在 DCR 注册和更新请求中,使用应用名称作为值。
Ingress Controller
- 修复问题:Ingress Controller 在翻译 ApisixRoute 资源时同时在 Route 和 Service 上设置了
hosts。对于不支持路由级 hosts 的后端,这会导致每个同步周期产生虚假差异,触发不必要的 PUT 请求并产生大量审计日志。在一个生产环境中,这导致了 8 GB / 420 万条冗余的UpdateService审计日志记录。
控制台(Dashboard)
- 修复问题:服务发现请求失败时,加载指示器持续显示不消失。
- 修复问题:在上游配置中切换 Nacos 服务时,服务元数据未刷新。
- 修复问题:切换登录选项提供者类型时,上一个提供者的配置字段未清除,导致表单中残留旧值。
- 修复问题:IAM 策略语句编辑器在策略数据尚未加载时因空引用错误而崩溃。
- 修复问题:InviteUser 和 ResetPassword 操作在 API 调用失败时未显示错误信息,导致无法判断操作失败原因。
- 修复问题:登录选项名称唯一性检查不必要地加载了完整的登录选项列表,现改为轻量级 API 调用。
3.9.9
发布日期:2026-04-10
新功能
控制面
- Upstream 标签现在可通过 API 正确持久化和返回。此前,通过 ADC 或 Ingress Controller 设置的 upstream 标签在持久化过程中被静默丢弃,导致每次同步周期产生虚假差异和不必要的审计日志增长。
- 文件服务器地址现在可通过 Dashboard 系统设置页面动态配置,与 DP Manager 地址和 Admin API 地址使用相同的双数据源模式。