sub2api/docs/memorys/2026-05-26-主站测速与限速核对.md
zizi 6814fa2a62 docs(ops): record proxy-ng deployment hardening
Add deployment traces for the JPpro proxy node, RackNerd origin hosts, catproxy boundary changes, local speed checks, and Sub2API rate-limit behavior.

Keep remote secrets excluded while tracking sanitized nginx, compose, plan, and operational memory documents.
2026-05-26 23:27:41 +08:00

3.5 KiB
Raw Blame History

主站测速与限速核对

日期2026-05-26

本机链路测速结论

从当前本机网络直连测试,proxy.api.lilifamily.com 经 JPpro 的 HTTPS 轻量请求比 catproxy.lilifamily.com 直连 3c4g 更快、更稳。

测试项 直连 catproxy.lilifamily.com 经 JPpro proxy.api.lilifamily.com
/health 中位总耗时 0.763s 0.559s
/health 成功率 5/61 次 8s 超时 6/6
首页 HEAD / 中位耗时 1.817s 1.315s
ICMP 平均延迟 238ms10% 丢包 57ms30% 丢包

测试命令使用 curl --noproxy '*' -4,本机未检测到 HTTP_PROXYHTTPS_PROXYALL_PROXY 环境变量。ICMP 结果只作参考HTTPS curl 结果优先。

nginx 限速边界

  • catproxy.lilifamily.com3c4g 主站直连入口,当前没有 nginx limit_req / limit_conn,也没有 IP 白名单。
  • origin.proxy.api.lilifamily.com3c4g 回源入口,当前没有 nginx 速率限制;只允许 JPpro IP 151.242.164.72,并校验 X-Proxy-Ng-Token
  • proxy.api.lilifamily.com / jp.proxy.api.lilifamily.comJPpro 入口节点,有 nginx 按客户端 IP 的速率和并发限制。

JPpro 当前入口限制:

limit_req_zone $binary_remote_addr zone=req_per_ip:20m rate=10r/s;
limit_req_zone $binary_remote_addr zone=auth_per_ip:10m rate=10r/m;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:20m;

limit_conn conn_per_ip 50;
limit_req zone=req_per_ip burst=30 nodelay;
limit_req_status 429;

认证相关路径更严格:

limit_req zone=auth_per_ip burst=3 nodelay;
limit_conn conn_per_ip 10;

Sub2API 业务请求限速维度

Sub2API 的模型/API 网关业务请求不是按 IP 限速,而是按用户、用户+分组、API Key 额度做限制。

业务 RPM 计数 Redis key

rpm:u:{userID}:{minute}
rpm:ug:{userID}:{groupID}:{minute}

含义:

  • 用户级 rpm_limit:同一用户全局每分钟请求数上限,0 表示不限。
  • 分组级 rpm_limit:同一用户在某个分组内每分钟请求数上限,0 表示不限。
  • 用户-分组 rpm_override:管理员可给某个用户在某个分组设置专属 RPM。
  • API Key 的 rate_limit_5h / rate_limit_1d / rate_limit_7d:按费用消耗窗口限制,不是请求次数。

登录、注册、验证码等公开认证接口另有应用内 Redis 限速,维度是 c.ClientIP()

生产快照

通过 Tabby profile 个人-US-racknerd-0526-3c4g 查询 PostgreSQL 的非敏感限速字段:

  • 用户 zizi2000email@gmail.comrpm_limit = 0
  • 分组 briqtrpm_limit = 40
  • 分组 ommrpm_limit = 100
  • 分组 free日卡-20刀plus号池-使用余额free周卡-每天50刀free月卡-每天60刀rpm_limit = 20
  • 分组 pro号池-使用余额rpm_limit = 30
  • API Key briqtrate_limit_5h = 300rate_limit_1d = 500
  • API Key freerate_limit_1d = 50
  • API Key omm:窗口额度均为 0,表示不限。

后续如果用户反馈“主站请求被限速”,先判断入口:

  1. proxy.api.lilifamily.com 时,先看 JPpro nginx 是否返回 429
  2. catproxy.lilifamily.com 时,跳过 nginx IP 限速排查,直接看 Sub2API 业务层错误。
  3. 如果错误是 rate_limit_exceeded,优先查用户/分组 RPM 或 API Key 窗口额度。
  4. 如果错误来自上游模型账号 rate_limit_error,那是账号池或上游限流,不是用户/IP 限流。