359 字
1 分钟
CLI Proxy API 部署
鉴于 CPA 的文档在 Docker 部署和反向代理的部分过于简陋,且配合 CPAMP 使用时部署存在一些问题,为避免额度盗刷,这里通过实测案例进行一些补充部署记录。
WARNING
Docker 统一部署
services: cli-proxy-api: image: eceasy/cli-proxy-api:latest container_name: cli-proxy-api ports: - "127.0.0.1:8317:8317" volumes: # CPA 配置文件 - ./config.yaml:/CLIProxyAPI/config.yaml # 凭证目录 - ./auth-dir:/root/.cli-proxy-api # 插件 - ./plugins:/CLIProxyAPI/plugins restart: unless-stopped
cpa-manager-plus: image: seakee/cpa-manager-plus:latest restart: unless-stopped ports: - '127.0.0.1:18317:18317' volumes: - ./cpa-manager-plus-data:/data depends_on: - cli-proxy-api上述 docker compose 文件中,映射端口全部指定了 host 为 127.0.0.1,防止通过 公网IP:Port 访问到相关服务。
NGINX 反向代理
NOTE
首先,在 NGINX 的 http 块中加入如下配置,以支持正确处理 WebSocket 等需要 HTTP 协议升级(Upgrade)的反向代理请求:
# 其他配置...
http { # 其他配置 ...
# 添加如下部分 map $http_upgrade $connection_upgrade { default upgrade; '' close; }}然后,在 NGINX 配置文件目录 conf.d 下新增 cpa.conf:
# 指定后端别名upstream cpa_api { server 127.0.0.1:8317;}
upstream cpamp { server 127.0.0.1:18317;}
# http 默认跳转server { listen 80; server_name your.cpa.domain;
return 301 https://$host$request_uri;}
server { listen 443 ssl; server_name your.cpa.domain; http2 on;
# SSL 证书配置 ssl_certificate xxx; ssl_certificate_key xxx;
ssl_protocols TLSv1.2 TLSv1.3;
client_max_body_size 64m;
proxy_http_version 1.1; proxy_read_timeout 3600s; proxy_send_timeout 3600s; proxy_buffering off;
proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade;
# 默认进入 CPAMP 面板 location = / { return 302 /management.html; }
# ===== CPA Manager Plus =====
location = /management.html { proxy_pass http://cpamp; } location = /health { proxy_pass http://cpamp; } location = /status { proxy_pass http://cpamp; } location = /setup { proxy_pass http://cpamp; }
# CPAMP 兼容接口与运行时接口 location ^~ /usage-service/ { proxy_pass http://cpamp; }
# /v0/management/* 先进入 CPAMP: # - 用量 / 模型价格 / API 密钥别名 / 仪表盘 / 请求监控 / # Codex 账号巡检 / 导入导出 等由 CPAMP 自己处理 # - 其他 CPA 管理接口由 CPAMP 使用服务端保存的 CPA Management Key 继续代理到 CPA # # 注意:不要只配置 location = /v0/management # 应使用带尾斜杠的前缀匹配 /v0/management/ location ^~ /v0/management/ { proxy_pass http://cpamp; }
# CPAMP 插件页面资源。缺少此规则时,插件页面可能打开空白或资源 404。 location ^~ /v0/resource/plugins/ { proxy_pass http://cpamp; }
# /models 由 CPAMP 提供兼容代理 # 如果 CPAMP 尚未完成 setup,访问此路径可能返回 412 location = /models { proxy_pass http://cpamp; }
# ===== CPA / CLI Proxy API =====
# OpenAI / Claude Code / Codex 等实际 API 请求应直接走 CPA location ^~ /v1/ { proxy_pass http://cpa_api; } location ^~ /v1beta/ { proxy_pass http://cpa_api; } location ^~ /backend-api/codex/ { proxy_pass http://cpa_api; } location ^~ /api/ { proxy_pass http://cpa_api; }
# CPA 特殊路由与 OAuth 回调 location = /v1internal:method { proxy_pass http://cpa_api; } location = /healthz { proxy_pass http://cpa_api; } location = /anthropic/callback { proxy_pass http://cpa_api; } location = /codex/callback { proxy_pass http://cpa_api; } location = /google/callback { proxy_pass http://cpa_api; } location = /antigravity/callback { proxy_pass http://cpa_api; }
# 兜底给 CPA # 用于 CPA 根路径、Amp 路由以及未来新增接口 location / { proxy_pass http://cpa_api; }}上述配置完成后,无需在防火墙开放 8317/18317 端口,保持关闭即可。
配置连接信息
首次启动后,在 docker logs <container_id> 中可以看到 camp_xxx 字样的密钥,复制保存。该密钥为登录 CPAMP 面板的密钥。CPA 的密钥根据面板提示逐步设置。如果已经存在正在使用的 CPA,会自动接入对应信息。
需注意,CPA 地址在本文档的部署情况下,即 CPA 和 CPAMP 部署于同一 Docker 网络下,请填写 NGINX 中配置的后端名称:http://cli-proxy-api:8317
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
CLI Proxy API 部署
https://blog.085404.xyz/posts/cli-proxy-api-部署/ 部分信息可能已经过时
相关文章 智能推荐




