更新日志
3.10.3
发布日期:2026-07-14
升级须知
多个数据面共享内存(lua_shared_dict)默认值被调高,因此在默认配置下,3.10.3 网关启动时预留的共享内存比 3.10.2 约多 365 MiB:
| 共享字典 | 3.10.2 默认值 | 3.10.3 默认值 |
|---|---|---|
prometheus-metrics(高级指标) | 15 MiB | 128 MiB |
kubernetes、nacos、nacos-stream、consul(服务发现) | 各 20 MiB | 各 64 MiB |
tracing_buffer(SkyWalking) | 10 MiB | 32 MiB |
api-calls-for-portal | 10 MiB | 64 MiB |
这些字典在网关启动时分配,无论对应功能是否被使用,因此该增长适用于每一个 3.10.3 网关。升级前,请调高网关容器的内存 requests 和 limits(在 Kubernetes 中还应检查节点的内存压力与驱逐阈值),避免网关被 OOM 杀死。如果你未使用某项功能——例如某种未配置的服务发现类型——可以通过网关配 置或 Helm chart 的共享字典值把对应字典调回原先的大小。
内置 Dashboard 用户现在会在连续密码登录失败后被临时锁定。默认策略为启用状态,同一用户和来源 IP 连续失败 5 次后锁定 15 分钟。管理员可以通过新的登录失败限制系统设置调整或关闭该策略。升级后新密码和被修改的密码也必须至少 12 个字符,并继续满足原有复杂度要求。已有密码在登录时不会重新校验长度。
如果内置用户启用了双因素认证(2FA),该用户的 HTTP Basic Auth 会被拒绝,因为 Basic Auth 无法携带第二因素。程序化集成请改用 Token 认证;Token 通过 X-API-KEY 请求头传入,不需要携带 2FA 验证码。
网关现在通过 apisix.trusted_addresses 判断是否信任客户 端传入的 X-Forwarded-* 和 RFC 7239 Forwarded 请求头。当未配置 trusted_addresses,或请求来自不可信地址时,网关会在转发上游前用自身观测到的值覆盖 X-Forwarded-Proto、X-Forwarded-Host 和 X-Forwarded-Port,并清除 Forwarded 请求头。如果上游应用依赖可信负载均衡器或反向代理传入的原始转发协议、host 或端口,请将该代理的 IP 或 CIDR 配置到 trusted_addresses。
openid-connect 插件不再默认把 refresh_session_interval 设为 900 秒。现在只有显式配置 refresh_session_interval 时才会执行周期性静默重认证。如果你的部署依赖此前 900 秒刷新一次的行为,请在升级前或升级过程中显式设置 refresh_session_interval: 900。
对于使用 SQL Server 的部署,控制面现在会先创建并准备数据库,再让其他组件连接,并启用 READ_COMMITTED_SNAPSHOT,避免网关配置读取被写事务阻塞。若既有 SQL Server 数据库尚未启用该设置,首次启动会以 ROLLBACK IMMEDIATE 应用该数据库级变更;正在进行的数据库事务和连接可能会被断开一次,之后连接池会重新连接,后续启动不会重复执行该操作。
控制面现在会在存储时加密更多保存凭证的插件字段。由于 API7 EE 升级时先升级控制面、再升级数据面,在升级间隙中,3.10.3 的控制面会加密这些字段,而仍为 3.10.2 的旧数据面无法解密,可能导致相关插件失效,直到数据面也完成升级。
本次新增加密的字段,按插件列出如下:
- ai-cache:
semantic.embedding.openai.api_key、semantic.embedding.azure_openai.api_key
如果你使用了上述插件的相关字段,请在控制面升级后尽快将数据面升级到 3.10.3,并在两侧都升级到 3.10.3 之前避免编辑这些插件。