@codelook/proxy-server
Version:
HTTP/HTTPS proxy server with Docker deployment and Cloudflare Workers support
181 lines (127 loc) • 3.06 kB
Markdown
# Cloudflare Workers 代理部署指南
## 前置要求
1. Cloudflare 账号
2. Node.js 18+
3. Wrangler CLI
## 安装步骤
### 1. 安装 Wrangler
```bash
npm install -g wrangler
```
### 2. 登录 Cloudflare
```bash
wrangler login
```
### 3. 获取账户 ID
```bash
wrangler whoami
```
将输出的 Account ID 填入 `wrangler.toml` 中的 `account_id` 字段。
### 4. 配置认证令牌
编辑 `wrangler.toml`,设置你的认证令牌:
```toml
[vars]
PROXY_AUTH_TOKEN = "pst_YOUR_SECRET_TOKEN_HERE"
```
或者使用密钥管理:
```bash
wrangler secret put PROXY_AUTH_TOKEN
```
### 5. 部署到 Cloudflare
开发环境:
```bash
wrangler publish --env development
```
生产环境:
```bash
wrangler publish --env production
```
### 6. 配置自定义域名(可选)
1. 在 Cloudflare Dashboard 中添加自定义域名
2. 更新 `wrangler.toml`:
```toml
routes = [
{ pattern = "proxy.yourdomain.com/*", custom_domain = true }
]
```
## 使用方法
### 1. 直接使用 Workers 域名
```bash
# 获取 Workers 域名
wrangler publish --dry-run
# 使用示例
curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Target-URL: https://api.anthropic.com" \
https://codelook-proxy.YOUR-SUBDOMAIN.workers.dev/
```
### 2. 在 codem 中使用
```bash
codem create myenv --proxy https://codelook-proxy.YOUR-SUBDOMAIN.workers.dev
```
### 3. 使用查询参数
```bash
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://codelook-proxy.YOUR-SUBDOMAIN.workers.dev/?target=https://api.anthropic.com"
```
## 高级配置
### 启用 KV 存储(用于速率限制)
1. 创建 KV 命名空间:
```bash
wrangler kv:namespace create "RATE_LIMIT"
```
2. 将输出的 ID 添加到 `wrangler.toml`:
```toml
[[kv_namespaces]]
binding = "RATE_LIMIT_KV"
id = "your-kv-namespace-id"
```
3. 更新 `worker.js` 中的速率限制代码
### 监控和日志
查看实时日志:
```bash
wrangler tail
```
在 Cloudflare Dashboard 中查看:
- 请求统计
- 错误日志
- 性能指标
## 限制和注意事项
1. **请求大小限制**:100MB
2. **执行时间限制**:
- 免费版:10ms CPU 时间
- 付费版:50ms CPU 时间
3. **并发请求限制**:
- 免费版:1000 请求/分钟
- 付费版:无限制
4. **不支持 WebSocket**
5. **不支持流式响应**(如 SSE)
## 成本估算
- **免费版**:每天 100,000 请求
- **付费版**:$5/月起,包含 1000 万请求/月
## 故障排除
### 1. 认证失败
检查令牌是否正确设置:
```bash
wrangler secret list
```
### 2. 部署失败
检查 `wrangler.toml` 配置:
```bash
wrangler publish --dry-run
```
### 3. 请求超时
- 优化目标服务响应时间
- 考虑使用付费版获得更长执行时间
## 最佳实践
1. **安全性**:
- 使用强认证令牌
- 限制允许的目标域名
- 启用 CORS 限制
2. **性能**:
- 使用 Cloudflare 缓存
- 启用压缩
- 优化请求路由
3. **监控**:
- 设置告警
- 定期检查日志
- 监控成本