兼容CDN api

This commit is contained in:
2026-01-20 14:12:31 +08:00
parent 0ea68bf2b8
commit 7ef5cf629b
2 changed files with 128 additions and 13 deletions

View File

@@ -2,6 +2,32 @@
这是一个轻量级的 API 代理服务,旨在统一和简化对各种 AI 服务 API 的访问。它使用 Go 语言编写,支持 Docker 部署。
## 🚀 阿里云 ESA (边缘安全加速) 配置指南 (非常重要)
如果你使用了阿里 ESA 加速本服务,**必须**在 ESA 控制台中进行以下设置,否则会出现 `Origin Time-out` (源站超时) 或 AI 回复卡顿(打字机效果失效)的问题。
### 1. 缓存配置 (Cache)
请进入 **站点管理** -> **缓存配置**,添加以下规则:
| 配置项 | 推荐设置 | 说明 |
| :--- | :--- | :--- |
| **边缘缓存过期时间** <br> (Edge Cache TTL) | **不缓存** <br> (或设置为 0秒) | **核心设置**。必须禁止 CDN 节点缓存 AI 的接口响应,否则第二个用户会看到上一个用户的对话,或者直接报错。建议针对 API 目录(如 `/openai/*`)设置。 |
| **浏览器缓存过期时间** <br> (Browser Cache TTL) | **不缓存** | 禁止客户端浏览器缓存接口结果。 |
| **查询字符串** | **保留** (或 遵循源站) | 某些 AI API 使用 URL 参数传递版本号或签名,不可忽略。 |
### 2. 回源配置 (Origin) - 解决超时问题的关键
ESA 默认的连接超时时间较短(通常 30秒而 AI 模型(特别是推理模型)可能需要 60秒+ 才能生成第一个字。
请进入 **站点管理** -> **回源配置**
* **读超时时间 (Read Timeout)**: 修改为 **120秒****300秒**
* *说明*: 如果不改这个AI 思考超过 30秒时ESA 会认为源站挂了,直接切断连接并报 `Origin Time-out`
### 3. 开发模式 (Debug)
如果配置后仍然有问题,可以暂时开启 **“开发模式”**。这会强制所有请求绕过缓存节点直接回源,用于排查是否是缓存规则导致的问题。
---
## 功能特性
- **多平台支持**: 代理了众多流行的 AI 和聊天服务 API。
@@ -111,8 +137,35 @@ go build -o api-proxy main.go
`http://localhost:7890/claude/v1/messages`
## 🚀 阿里云 ESA (边缘安全加速) 配置指南 (非常重要)
如果你使用了阿里 ESA 加速本服务,**必须**在 ESA 控制台中进行以下设置,否则会出现 `Origin Time-out` (源站超时) 或 AI 回复卡顿(打字机效果失效)的问题。
### 1. 缓存配置 (Cache)
请进入 **站点管理** -> **缓存配置**,添加以下规则:
| 配置项 | 推荐设置 | 说明 |
| :--- | :--- | :--- |
| **边缘缓存过期时间** <br> (Edge Cache TTL) | **不缓存** <br> (或设置为 0秒) | **核心设置**。必须禁止 CDN 节点缓存 AI 的接口响应,否则第二个用户会看到上一个用户的对话,或者直接报错。建议针对 API 目录(如 `/openai/*`)设置。 |
| **浏览器缓存过期时间** <br> (Browser Cache TTL) | **不缓存** | 禁止客户端浏览器缓存接口结果。 |
| **查询字符串** | **保留** (或 遵循源站) | 某些 AI API 使用 URL 参数传递版本号或签名,不可忽略。 |
### 2. 回源配置 (Origin) - 解决超时问题的关键
ESA 默认的连接超时时间较短(通常 30秒而 AI 模型(特别是推理模型)可能需要 60秒+ 才能生成第一个字。
请进入 **站点管理** -> **回源配置**
* **读超时时间 (Read Timeout)**: 修改为 **120秒****300秒**
* *说明*: 如果不改这个AI 思考超过 30秒时ESA 会认为源站挂了,直接切断连接并报 `Origin Time-out`
### 3. 开发模式 (Debug)
如果配置后仍然有问题,可以暂时开启 **“开发模式”**。这会强制所有请求绕过缓存节点直接回源,用于排查是否是缓存规则导致的问题。
---
## 注意事项
- 本项目仅作为 API 请求的转发代理,请确保你拥有对应服务的有效 API Key。
- 代理会透传你的 Authorization 头API Key
- 首页 (`/`) 提供了一个简单的状态页面,列出所有可用路由。
- **隐私**: 本服务会自动过滤 `X-Forwarded-For``Host` 头,保护你的源站 IP。日志中会尝试解析 `Ali-Cdn-Real-Ip` 以记录真实访问者 IP。