new-api 系列(八):进阶——多实例、负载均衡与 SSO
系列目录
多实例渠道与跨区域部署
当团队规模扩大到几十人以上,或者需要覆盖不同地区的用户时,单实例 new-api + 单一渠道池可能不够。进阶做法是部署多个上游代理实例作为渠道,让 new-api 在不同实例之间做调度。
场景一:多 CLIProxyAPI 实例作为渠道
你有多个 CLIProxyAPI 实例跑在不同地区,每个实例绑定了不同地区的订阅账号:
| 渠道名 | CLIProxyAPI 地址 | 账号池 | 适用地区 |
|---|---|---|---|
| CPA-US | http://us-proxy:8317/v1 |
美区 Claude Max x3 | 北美用户 |
| CPA-HK | http://hk-proxy:8317/v1 |
港区账号 x2 | 亚太用户 |
| CPA-EU | http://eu-proxy:8317/v1 |
欧区 Claude Pro x2 | 欧洲用户 |
在 new-api 中添加三个 OpenAI 兼容渠道,配置相同的模型名,通过权重控制流量分布:
CPA-US:权重 60,优先级 1
CPA-HK:权重 30,优先级 1
CPA-EU:权重 10,优先级 1
场景二:多 Ollama 实例
公司内部有多台 GPU 服务器跑 Ollama,每台加载了不同的模型:
| 渠道名 | Ollama 地址 | 模型 |
|---|---|---|
| GPU-1 | http://gpu1:11434/v1 |
llama3:70b, qwen2.5:72b |
| GPU-2 | http://gpu2:11434/v1 |
codellama:34b, mistral:7b |
| GPU-3 | http://gpu3:11434/v1 |
llama3:70b(备份) |
llama3:70b 在 GPU-1 和 GPU-3 上都有。通过权重在两者之间做负载均衡:
GPU-1:权重 60
GPU-3:权重 40
场景三:跨区域低延迟
对于分布在不同地区的团队,可以在每个区域部署一套 new-api + 上游代理:
每个区域的 new-api 独立运行,用户连接最近的节点。如果需要统一计费,可以让所有实例共享一个 MySQL 数据库(需确保网络延迟可接受)。
OIDC / OAuth 单点登录(SSO)
如果你的团队已经在用企业微信、飞书、GitHub 等平台管理成员,可以通过 OIDC 协议让 new-api 对接这些平台的账号系统,用户不需要单独注册 new-api 账号。
支持的 SSO 方式
| 平台 | 协议 | 说明 |
|---|---|---|
| GitHub | OAuth | 用 GitHub 账号登录 |
| GitLab | OAuth | 用 GitLab 账号登录 |
| 企业微信 | OAuth | 扫码登录 |
| 飞书 | OAuth | 扫码登录 |
| 通用 OIDC | OIDC | 对接任意 OIDC Provider(如 Keycloak、Auth0) |
配置 OIDC SSO
后台 →「设置」→「通用设置」→「OIDC 设置」:
| 字段 | 说明 | 示例 |
|---|---|---|
| 启用 OIDC | 开关 | 开启 |
| Provider URL | OIDC 发现端点 | https://accounts.google.com |
| Client ID | OIDC 客户端 ID | xxx.apps.googleusercontent.com |
| Client Secret | OIDC 客户端密钥 | GOCSPX-xxx |
| 重定向 URI | 回调地址 | https://api.example.com/oidc/callback |
配置完成后,new-api 的登录页会出现「通过 SSO 登录」按钮。
SSO 用户权限
通过 SSO 首次登录的用户默认是普通用户角色。管理员可以在后台手动提升为管理员。
可以配置「SSO 自动注册」,让团队成员首次登录时自动创建 new-api 账号,无需管理员手动操作。
自定义路由策略
new-api 的默认路由逻辑是:模型名匹配 → 渠道优先级 → 渠道权重。如果你需要更复杂的路由规则,可以通过渠道组合实现。
策略一:按模型类型分组渠道
# 高成本模型走主渠道(保证质量)
gpt-4o / claude-opus-4-8 → 渠道优先级 1:OpenAI 官方 + Anthropic 官方
# 低成本模型走备份渠道(省钱)
gpt-4o-mini / claude-haiku → 渠道优先级 1:Azure(有额度折扣)
策略二:按用户级别分组
给不同等级的用户创建不同的令牌,每个令牌限制不同的模型:
免费用户令牌:模型限制 = [gpt-4o-mini, deepseek-chat, claude-haiku]
付费用户令牌:模型限制 = 全部模型
策略三:时间段路由
new-api 原生不支持按时间段路由,但可以通过外部脚本定时调整渠道权重实现。例如:
#!/bin/bash
# 白天高峰期:降低昂贵模型的渠道权重
# 夜间低谷期:恢复权重
# 通过 new-api 的管理 API(如果暴露)或直接操作数据库
如果需要复杂的路由策略,大多数场景可以通过渠道优先级 + 权重 + 令牌模型限制的组合来间接实现。
生态组合:new-api 与其他工具的配合
new-api + CLIProxyAPI = 订阅转 API 网关
这是 CLIProxyAPI 系列第六篇详细介绍过的组合,核心思路:
- CLIProxyAPI:把 Claude Pro / Gemini CLI 等 OAuth 订阅账号转成 OpenAI 兼容 API
- new-api:在 CLIProxyAPI 前面加一层用户管理、计费、限流
适合没有商业 API Key、只用订阅配额的团队。
new-api + Ollama = 本地模型统一入口
公司内部有多台 Ollama 服务器,每台加载不同模型。用 new-api 统一对外暴露,用户只需要填一个 API 地址。
new-api + LiteLLM = 双网关容灾
两个 AI 网关实例互为主备,Nginx 做健康检查和 failover:
upstream ai-backend {
server 127.0.0.1:3000 max_fails=3 fail_timeout=30s; # new-api
server 127.0.0.1:4000 max_fails=3 fail_timeout=30s; # LiteLLM(备用)
}
new-api + Cloudflare Tunnel = 零端口暴露
不想在服务器上开公网端口?用 Cloudflare Tunnel 暴露 new-api:
cloudflared tunnel create new-api
cloudflared tunnel route dns new-api api.example.com
cloudflared tunnel run --url http://127.0.0.1:3000 new-api
免去反代、HTTPS 证书的配置,Cloudflare 全包了。
高可用架构总结
当你走到「团队规模 50 人 + 对外提供 API 服务」这个级别时,推荐的完整架构:
核心原则:
- 接入层:CDN + 反代,处理 HTTPS 和基础安全
- 网关层:new-api 做主备,共享 MySQL 数据库
- 代理层:按地区和账号池分布上游代理
- 上游:商业 API + 订阅 OAuth + 本地模型,混合使用
系列导航
系列导航
- (一)认识 new-api——新一代 AI API 管理网关
- (二)安装部署——从零搭建 new-api
- (三)渠道配置——接入各类模型提供商
- (四)令牌与用户管理
- (五)计价模型与成本控制
- (六)监控、日志与告警
- (七)生产环境部署与安全加固
- (八)进阶——多实例、负载均衡与 SSO(本文)
- (九)接入国内支付——支付宝、微信与自动充值
- (十)接入国际支付——Stripe、PayPal 与海外收银
实操清单
- 添加更多 CLIProxyAPI 实例(当前只有 1 个),实现多账号轮询
- 为多渠道配置权重(
weight,当前两个渠道均为 0,即等权轮询) - 为多渠道配置优先级(
priority,当前两个渠道均为 0,即同级竞争) - 测试渠道故障自动切换:手动禁用一个渠道,确认流量转移到另一个
- 数据库规模评估:当前 SQLite 612KB,远低于瓶颈,无需迁移 MySQL
- 磁盘缓存已启用(
disk_cache_enabled = true,上限 5GB) - (可选)配置 OIDC/OAuth SSO 单点登录(系统设置 → 身份认证,当前未配置)
- (可选)部署第二个 new-api 实例 + 共享数据库,实现热备