<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[【生产级落地】基于 Docker + NewAPI + Cloudflare Workers 搭建私有高可用 AI 智能路由网关（附完整 compose.yml）]]></title><description><![CDATA[<p dir="auto">作为团队技术负责人，面对前端多款工具（Cherry Studio、Cursor、NextChat）分散调用官方 API 时，经常面临三大痛点：</p>
<ol>
<li><strong>单点限流（429 Too Many Requests）</strong>：高峰期一个员工跑大任务，全团队的 API Key 一起被限；</li>
<li><strong>Key 暴露风险</strong>：客户端直接填写官方 Key，离职或设备外借存在泄密隐患；</li>
<li><strong>账单无法精细化分摊与审计</strong>。</li>
</ol>
<p dir="auto">本文分享一套经过企业生产环境验证的私有化 AI 智能路由网关架构，实现<strong>多渠道负载均衡、故障自动秒级降级与细粒度配额管理</strong>。</p>
<hr />
<h3>1. 架构拓扑设计</h3>
<pre><code class="language-text">[本地客户端: Cursor / Cherry Studio]
                 │
                 ▼ (HTTPS / 边缘防护)
   [Cloudflare Workers 反代鉴权]
                 │
                 ▼ (内网专线 / 反代域名)
   [自建 VPS: NewAPI 网关服务]
     ├── Redis 缓存层 (Token 流式分发 + 会话保持)
     └── MySQL 数据库 (渠道权重 + 用户账单消费记录)
                 │
        ┌────────┴────────┐
        ▼                 ▼
[主力渠道: 官方 API]   [兜底渠道: 9AIB 便宜官转 / Bedrock]
 (权重 80%, 超时重试)     (权重 20%, 触发 429 自动无感漂移)
</code></pre>
<hr />
<h3>2. 生产级 <code>docker-compose.yml</code> 完整配置</h3>
<p dir="auto">在 VPS 上创建目录 <code>mkdir -p /opt/newapi &amp;&amp; cd /opt/newapi</code>，保存以下文件：</p>
<pre><code class="language-yaml">version: '3.8'

services:
  new-api:
    image: calciumion/new-api:latest
    container_name: new-api
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - ./data:/data
      - ./logs:/app/logs
    environment:
      - SQL_DSN=newapi_user:SecurePasswd888@tcp(mysql:3306)/newapi?charset=utf8mb4&amp;parseTime=True&amp;loc=Local
      - REDIS_CONN_STRING=redis://default:RedisPasswd999@redis:6379/0
      - SESSION_SECRET=c2VjdXJlX3Nlc3Npb25fa2V5XzIwMjY=
      - NODE_TYPE=master
      - SYNC_FREQUENCY=60
      - BATCH_UPDATE_ENABLED=true
    depends_on:
      - mysql
      - redis
    networks:
      - newapi-net

  mysql:
    image: mysql:8.0
    container_name: newapi-mysql
    restart: always
    environment:
      - MYSQL_DATABASE=newapi
      - MYSQL_USER=newapi_user
      - MYSQL_PASSWORD=SecurePasswd888
      - MYSQL_ROOT_PASSWORD=RootSecurePasswd999
    volumes:
      - ./mysql-data:/var/lib/mysql
    networks:
      - newapi-net

  redis:
    image: redis:7-alpine
    container_name: newapi-redis
    restart: always
    command: redis-server --requirepass RedisPasswd999 --maxmemory 512mb --maxmemory-policy allkeys-lru
    volumes:
      - ./redis-data:/data
    networks:
      - newapi-net

networks:
  newapi-net:
    driver: bridge
</code></pre>
<hr />
<h3>3. 高可用配置实战要点</h3>
<ol>
<li><strong>设置渠道重试（Channel Retry）</strong>：<br />
在 NewAPI 后台“设置” -&gt; “通用设置”中，将“失败重试次数”设为 <strong>3</strong>，并在渠道中配置备用通道。当主力渠道响应超时（&gt;15s）或返回 429/502 时，网关会在同一请求生命周期内自动尝试下一个可用渠道，客户端完全无感；</li>
<li><strong>Model Mapping（模型映射解耦）</strong>：<br />
前端统一请求标准模型名 <code>claude-3-5-sonnet-20241022</code>，后台可灵活映射至 AWS Bedrock <code>anthropic.claude-3-5-sonnet-20241022-v2:0</code> 或官方 API，随时根据汇率与成本动态切换；</li>
<li><strong>开启流式缓冲优化（SSE Chunk Optimization）</strong>：<br />
利用 Redis 的 <code>allkeys-lru</code> 策略缓存高频 Prompt 响应，节省多达 30% 重复调用成本！</li>
</ol>
]]></description><link>https://9aib.com/community/topic/58/生产级落地-基于-docker-newapi-cloudflare-workers-搭建私有高可用-ai-智能路由网关-附完整-compose-yml</link><generator>RSS for Node</generator><lastBuildDate>Fri, 23 Oct 2026 07:32:56 GMT</lastBuildDate><atom:link href="https://9aib.com/community/topic/58.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Oct 2026 09:58:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 【生产级落地】基于 Docker + NewAPI + Cloudflare Workers 搭建私有高可用 AI 智能路由网关（附完整 compose.yml） on Fri, 02 Oct 2026 11:32:31 GMT]]></title><description><![CDATA[<p dir="auto">高质量硬核干货，已加入社区【精选技术折腾】置顶合集，期待更多实战分享！</p>
]]></description><link>https://9aib.com/community/post/112</link><guid isPermaLink="true">https://9aib.com/community/post/112</guid><dc:creator><![CDATA[admin]]></dc:creator><pubDate>Fri, 02 Oct 2026 11:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to 【生产级落地】基于 Docker + NewAPI + Cloudflare Workers 搭建私有高可用 AI 智能路由网关（附完整 compose.yml） on Fri, 02 Oct 2026 11:13:59 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/community/user/prompt%E6%9E%B6%E6%9E%84%E5%B8%88" aria-label="Profile: Prompt架构师">@<bdi>Prompt架构师</bdi></a> 哈哈，批量更新（Batch Update）是高并发的关键，不然每次 Token 扣减都直接写 MySQL，磁盘 I/O 很快就会挂掉。配合 Redis 做异步落盘是标准生产解法。</p>
]]></description><link>https://9aib.com/community/post/111</link><guid isPermaLink="true">https://9aib.com/community/post/111</guid><dc:creator><![CDATA[NewAPI折腾狂]]></dc:creator><pubDate>Fri, 02 Oct 2026 11:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to 【生产级落地】基于 Docker + NewAPI + Cloudflare Workers 搭建私有高可用 AI 智能路由网关（附完整 compose.yml） on Fri, 02 Oct 2026 10:41:59 GMT]]></title><description><![CDATA[<p dir="auto">太强了！这篇文章解了我燃眉之急！之前我们自建的 OneAPI 经常因为并发稍微一高就导致 MySQL 连接池被打满，看了你的配置把 <code>BATCH_UPDATE_ENABLED=true</code> 和 Redis 缓冲配上，实测 QPS 翻了 3 倍！</p>
]]></description><link>https://9aib.com/community/post/110</link><guid isPermaLink="true">https://9aib.com/community/post/110</guid><dc:creator><![CDATA[Prompt架构师]]></dc:creator><pubDate>Fri, 02 Oct 2026 10:41:59 GMT</pubDate></item></channel></rss>