更新 README.md 中阿里云 ESA 配置指南,优化缓存设置说明;修复 main.go 中流式传输的错误处理逻辑

This commit is contained in:
2026-01-20 14:20:35 +08:00
parent fe2202fe99
commit 92f1947a22
2 changed files with 5 additions and 5 deletions

View File

@@ -112,7 +112,7 @@ go build -o api-proxy main.go
`http://localhost:7890/claude/v1/messages` `http://localhost:7890/claude/v1/messages`
## 🚀 阿里云 ESA (边缘安全加速) 配置指南 (非常重要) ## 阿里云 ESA (边缘安全加速) 配置指南
如果你使用了阿里 ESA 加速本服务,**必须**在 ESA 控制台中进行以下设置,否则会出现 `Origin Time-out` (源站超时) 或 AI 回复卡顿(打字机效果失效)的问题。 如果你使用了阿里 ESA 加速本服务,**必须**在 ESA 控制台中进行以下设置,否则会出现 `Origin Time-out` (源站超时) 或 AI 回复卡顿(打字机效果失效)的问题。
@@ -121,8 +121,8 @@ go build -o api-proxy main.go
| 配置项 | 推荐设置 | 说明 | | 配置项 | 推荐设置 | 说明 |
| :--- | :--- | :--- | | :--- | :--- | :--- |
| **边缘缓存过期时间** <br> (Edge Cache TTL) | **不缓存** <br> (或设置为 0秒) | **核心设置**。必须禁止 CDN 节点缓存 AI 的接口响应,否则第二个用户会看到上一个用户的对话,或者直接报错。建议针对 API 目录(如 `/openai/*`)设置。 | | **边缘缓存过期时间** <br> (Edge Cache TTL) | **优先遵循源站缓存策略** <br> (如果存在),否则不缓存 | **由于你在这个站点下还有其他服务**,请选择此项。本代理服务会自动发送 `Cache-Control: no-cache`CDN 看到后就不会缓存 API 响应,而你站点下的其他静态资源则可以正常缓存。 |
| **浏览器缓存过期时间** <br> (Browser Cache TTL) | **不缓存** | 禁止客户端浏览器缓存接口结果。 | | **浏览器缓存过期时间** <br> (Browser Cache TTL) | **优先遵循源站** | 同上,让客户端遵循源站的指令。 |
| **查询字符串** | **保留** (或 遵循源站) | 某些 AI API 使用 URL 参数传递版本号或签名,不可忽略。 | | **查询字符串** | **保留** (或 遵循源站) | 某些 AI API 使用 URL 参数传递版本号或签名,不可忽略。 |
### 2. 回源配置 (Origin) - 解决超时问题的关键 ### 2. 回源配置 (Origin) - 解决超时问题的关键

View File

@@ -317,8 +317,8 @@ func init() {
res.Header.Set("Pragma", "no-cache") res.Header.Set("Pragma", "no-cache")
res.Header.Set("Expires", "0") res.Header.Set("Expires", "0")
// 针对流式传输的额外强化 return nil
if strings.Contains(res.Header.Get("Content-Type"), "event-stream") { }
// Optional: Custom error handler // Optional: Custom error handler
proxy.ErrorHandler = func(w http.ResponseWriter, r *http.Request, err error) { proxy.ErrorHandler = func(w http.ResponseWriter, r *http.Request, err error) {