637 lines
17 KiB
Markdown
637 lines
17 KiB
Markdown
# 快速部署指南
|
||
|
||
Academic Search Proxy 提供两种部署方案,适合不同使用场景。
|
||
|
||
**部署方式:**
|
||
- **方式 A:使用 Wrangler CLI**(推荐,快速)
|
||
- **方式 B:在 Cloudflare Dashboard 手动部署**(无需命令行)
|
||
|
||
---
|
||
|
||
## 📋 方案对比
|
||
|
||
| 方案 | 适用场景 | API Key 位置 | 认证要求 | 安全性 |
|
||
|------|---------|-------------|---------|--------|
|
||
| **方案一:透传模式** | 个人使用/分享给他人 | 客户端 | 可选 | ⭐⭐⭐⭐⭐ |
|
||
| **方案二:共享密钥模式** | 团队内部/受控环境 | Worker | **必须** | ⭐⭐⭐ |
|
||
|
||
---
|
||
|
||
## 🎯 方案一:透传模式(推荐)
|
||
|
||
**适合:**
|
||
- ✅ 个人使用
|
||
- ✅ 分享给他人使用(用户自带 API Key)
|
||
- ✅ 最安全(你的 Key 不会泄露)
|
||
|
||
### A. 使用 Wrangler CLI 部署
|
||
|
||
#### 1. 部署 Worker
|
||
|
||
```bash
|
||
cd workers/academic-search-proxy
|
||
npx wrangler deploy
|
||
```
|
||
|
||
记录输出的 URL,例如:
|
||
```
|
||
https://academic-search-proxy.your-subdomain.workers.dev
|
||
```
|
||
|
||
#### 2. 配置 Worker(透传模式)
|
||
|
||
编辑 `wrangler.toml`:
|
||
|
||
```toml
|
||
[vars]
|
||
# 认证(可选,不强制)
|
||
ENABLE_AUTH = "false"
|
||
|
||
# 允许的来源(根据需要调整)
|
||
ALLOWED_ORIGINS = "*"
|
||
|
||
# 速率限制
|
||
RATE_LIMIT_ENABLED = "true"
|
||
RATE_LIMIT_TPS = "10"
|
||
RATE_LIMIT_TPM = "300"
|
||
RATE_LIMIT_PER_IP_TPS = "5"
|
||
RATE_LIMIT_PER_IP_TPM = "100"
|
||
RATE_LIMIT_PUBMED_TPS = "3"
|
||
RATE_LIMIT_SEMANTICSCHOLAR_TPS = "5"
|
||
RATE_LIMIT_SEMANTICSCHOLAR_TPM = "20"
|
||
```
|
||
|
||
**不设置任何 Secrets**(不配置 API Key):
|
||
```bash
|
||
# 不需要运行这些命令
|
||
# npx wrangler secret put SEMANTIC_SCHOLAR_API_KEY ← 跳过
|
||
# npx wrangler secret put PUBMED_API_KEY ← 跳过
|
||
```
|
||
|
||
重新部署:
|
||
```bash
|
||
npx wrangler deploy
|
||
```
|
||
|
||
---
|
||
|
||
### B. 在 Cloudflare Dashboard 手动部署
|
||
|
||
#### 1. 创建 Worker
|
||
|
||
1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com)
|
||
2. 进入 **Workers & Pages**
|
||
3. 点击 **Create Application** → **Create Worker**
|
||
4. 命名:`academic-search-proxy`
|
||
5. 点击 **Deploy**
|
||
|
||
#### 2. 上传代码
|
||
|
||
1. 在 Worker 页面,点击 **Edit Code**
|
||
2. 删除默认代码
|
||
3. 复制 `workers/academic-search-proxy/src/index.js` 的全部内容
|
||
4. 粘贴到编辑器
|
||
5. 点击 **Save and Deploy**
|
||
|
||
#### 3. 配置环境变量(透传模式)
|
||
|
||
在 Worker 页面:
|
||
|
||
1. 点击 **Settings** 选项卡
|
||
2. 滚动到 **Variables** 部分
|
||
3. 点击 **Add variable**
|
||
|
||
**添加以下变量:**
|
||
|
||
| 变量名 | 类型 | 值 | 说明 |
|
||
|-------|------|---|------|
|
||
| `ENABLE_AUTH` | Text | `false` | 不启用认证(透传模式) |
|
||
| `ALLOWED_ORIGINS` | Text | `*` | 允许所有来源(或填入你的域名) |
|
||
| `RATE_LIMIT_ENABLED` | Text | `true` | 启用速率限制 |
|
||
| `RATE_LIMIT_TPS` | Text | `10` | 全局每秒请求数 |
|
||
| `RATE_LIMIT_TPM` | Text | `300` | 全局每分钟请求数 |
|
||
| `RATE_LIMIT_PER_IP_TPS` | Text | `5` | 每IP每秒请求数 |
|
||
| `RATE_LIMIT_PER_IP_TPM` | Text | `100` | 每IP每分钟请求数 |
|
||
| `RATE_LIMIT_PUBMED_TPS` | Text | `3` | PubMed每秒请求数 |
|
||
| `RATE_LIMIT_PUBMED_TPM` | Text | `180` | PubMed每分钟请求数 |
|
||
| `RATE_LIMIT_SEMANTICSCHOLAR_TPS` | Text | `5` | S2每秒请求数 |
|
||
| `RATE_LIMIT_SEMANTICSCHOLAR_TPM` | Text | `20` | S2每分钟请求数 |
|
||
|
||
**注意:** 全部选择 **Text** 类型(不是 Secret)
|
||
|
||
4. 点击 **Save and Deploy**
|
||
|
||
#### 4. 获取 Worker URL
|
||
|
||
在 Worker 页面顶部,复制你的 Worker URL:
|
||
```
|
||
https://academic-search-proxy.your-subdomain.workers.dev
|
||
```
|
||
|
||
#### 5. 测试
|
||
|
||
访问健康检查端点:
|
||
```
|
||
https://academic-search-proxy.your-subdomain.workers.dev/health
|
||
```
|
||
|
||
应该返回:
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"services": { ... },
|
||
"rateLimit": { "enabled": true, ... }
|
||
}
|
||
```
|
||
|
||
#### 3. 客户端配置
|
||
|
||
**方式 A:通过 UI 配置**(推荐)
|
||
|
||
在设置界面:
|
||
```
|
||
代理地址: https://academic-search-proxy.your-subdomain.workers.dev
|
||
Semantic Scholar API Key: [用户自己的 Key]
|
||
PubMed API Key: [用户自己的 Key]
|
||
```
|
||
|
||
**方式 B:通过 localStorage**
|
||
|
||
```javascript
|
||
localStorage.setItem('academicSearchSettings', JSON.stringify({
|
||
proxyEnabled: true,
|
||
proxyUrl: 'https://academic-search-proxy.your-subdomain.workers.dev',
|
||
proxyAuthKey: null, // 透传模式不需要
|
||
semanticScholarApiKey: 'your-s2-api-key', // 用户自己的
|
||
pubmedApiKey: 'your-pubmed-api-key' // 用户自己的
|
||
}));
|
||
```
|
||
|
||
#### 4. 客户端透传实现(已实现)
|
||
|
||
在 `reference-doi-resolver.js` 中:
|
||
|
||
```javascript
|
||
// Semantic Scholar 查询
|
||
const headers = {};
|
||
const userApiKey = getUserApiKey('semanticscholar'); // 从设置读取
|
||
if (userApiKey) {
|
||
headers['X-Api-Key'] = userApiKey; // 透传给 Worker
|
||
}
|
||
|
||
const response = await fetch(proxyUrl, { headers });
|
||
```
|
||
|
||
Worker 会自动将客户端的 `X-Api-Key` 转发给上游 API。
|
||
|
||
---
|
||
|
||
## 🔐 方案二:共享密钥模式
|
||
|
||
**适合:**
|
||
- ⚠️ 团队内部使用
|
||
- ⚠️ 信任的用户群体
|
||
- ⚠️ 你愿意分享你的 API Key
|
||
|
||
**⚠️ 警告:**
|
||
- **必须启用认证**(否则任何人都能用你的 Key)
|
||
- **必须设置强密码**
|
||
- **定期监控用量**
|
||
|
||
### A. 使用 Wrangler CLI 部署
|
||
|
||
#### 1. 部署 Worker
|
||
|
||
```bash
|
||
cd workers/academic-search-proxy
|
||
npx wrangler deploy
|
||
```
|
||
|
||
#### 2. 配置 Worker(共享密钥模式)
|
||
|
||
编辑 `wrangler.toml`:
|
||
|
||
```toml
|
||
[vars]
|
||
# ⚠️ 必须启用认证
|
||
ENABLE_AUTH = "true"
|
||
|
||
# 限制来源(推荐)
|
||
ALLOWED_ORIGINS = "https://yourdomain.com,https://trusted-domain.com"
|
||
|
||
# 更严格的速率限制(保护你的 API Key)
|
||
RATE_LIMIT_ENABLED = "true"
|
||
RATE_LIMIT_TPS = "5" # 降低全局限制
|
||
RATE_LIMIT_TPM = "200"
|
||
RATE_LIMIT_PER_IP_TPS = "2" # 每个 IP 更严格
|
||
RATE_LIMIT_PER_IP_TPM = "50"
|
||
RATE_LIMIT_PUBMED_TPS = "3"
|
||
RATE_LIMIT_SEMANTICSCHOLAR_TPS = "3"
|
||
RATE_LIMIT_SEMANTICSCHOLAR_TPM = "20"
|
||
```
|
||
|
||
#### 3. 设置 Secrets
|
||
|
||
```bash
|
||
# ⚠️ 必须:设置认证密钥(强密码)
|
||
npx wrangler secret put AUTH_SECRET
|
||
# 输入:例如 "xK9$mP2#vL8@nR5%qW3^tY7&zH4!"
|
||
|
||
# 可选:你的 Semantic Scholar API Key
|
||
npx wrangler secret put SEMANTIC_SCHOLAR_API_KEY
|
||
# 输入:你的 S2 Key
|
||
|
||
# 可选:你的 PubMed API Key
|
||
npx wrangler secret put PUBMED_API_KEY
|
||
# 输入:你的 PubMed Key
|
||
```
|
||
|
||
重新部署:
|
||
```bash
|
||
npx wrangler deploy
|
||
```
|
||
|
||
---
|
||
|
||
### B. 在 Cloudflare Dashboard 手动部署
|
||
|
||
#### 1. 创建 Worker
|
||
|
||
1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com)
|
||
2. 进入 **Workers & Pages**
|
||
3. 点击 **Create Application** → **Create Worker**
|
||
4. 命名:`academic-search-proxy`
|
||
5. 点击 **Deploy**
|
||
|
||
#### 2. 上传代码
|
||
|
||
1. 在 Worker 页面,点击 **Edit Code**
|
||
2. 删除默认代码
|
||
3. 复制 `workers/academic-search-proxy/src/index.js` 的全部内容
|
||
4. 粘贴到编辑器
|
||
5. 点击 **Save and Deploy**
|
||
|
||
#### 3. 配置环境变量(共享密钥模式)
|
||
|
||
在 Worker 页面:
|
||
|
||
1. 点击 **Settings** 选项卡
|
||
2. 滚动到 **Variables** 部分
|
||
|
||
**3.1 添加普通变量(Text):**
|
||
|
||
点击 **Add variable**,添加以下变量(类型选择 **Text**):
|
||
|
||
| 变量名 | 类型 | 值 | 说明 |
|
||
|-------|------|---|------|
|
||
| `ENABLE_AUTH` | Text | `true` | ⚠️ 必须启用认证 |
|
||
| `ALLOWED_ORIGINS` | Text | `https://yourdomain.com` | 限制来源域名 |
|
||
| `RATE_LIMIT_ENABLED` | Text | `true` | 启用速率限制 |
|
||
| `RATE_LIMIT_TPS` | Text | `5` | 全局每秒请求数(更严格) |
|
||
| `RATE_LIMIT_TPM` | Text | `200` | 全局每分钟请求数 |
|
||
| `RATE_LIMIT_PER_IP_TPS` | Text | `2` | 每IP每秒请求数(更严格) |
|
||
| `RATE_LIMIT_PER_IP_TPM` | Text | `50` | 每IP每分钟请求数 |
|
||
| `RATE_LIMIT_PUBMED_TPS` | Text | `3` | PubMed每秒请求数 |
|
||
| `RATE_LIMIT_PUBMED_TPM` | Text | `180` | PubMed每分钟请求数 |
|
||
| `RATE_LIMIT_SEMANTICSCHOLAR_TPS` | Text | `3` | S2每秒请求数 |
|
||
| `RATE_LIMIT_SEMANTICSCHOLAR_TPM` | Text | `20` | S2每分钟请求数 |
|
||
|
||
**3.2 添加加密变量(Secret):**
|
||
|
||
⚠️ **重要:这些是敏感信息,必须使用 Secret 类型!**
|
||
|
||
点击 **Add variable**,**勾选 "Encrypt"**,添加:
|
||
|
||
| 变量名 | 类型 | 值 | 说明 |
|
||
|-------|------|---|------|
|
||
| `AUTH_SECRET` | **Secret** ✅ | `xK9$mP2#vL8@nR5%qW3^tY7&zH4!` | ⚠️ 认证密钥(强密码,至少32字符) |
|
||
| `SEMANTIC_SCHOLAR_API_KEY` | **Secret** ✅ | `your-s2-api-key` | (可选)你的 S2 API Key |
|
||
| `PUBMED_API_KEY` | **Secret** ✅ | `your-pubmed-api-key` | (可选)你的 PubMed API Key |
|
||
|
||
**如何添加 Secret:**
|
||
1. 点击 **Add variable**
|
||
2. 输入变量名(如 `AUTH_SECRET`)
|
||
3. **勾选 "Encrypt"** 复选框 ⚠️
|
||
4. 输入值(如 `xK9$mP2#vL8@nR5%qW3^tY7&zH4!`)
|
||
5. 点击 **Save**
|
||
|
||
**验证 Secret 已加密:**
|
||
- Secret 变量显示为 `••••••••`
|
||
- 保存后无法查看原始值
|
||
|
||
4. 点击 **Save and Deploy**
|
||
|
||
#### 4. 生成强密码(AUTH_SECRET)
|
||
|
||
**推荐方法:**
|
||
|
||
```bash
|
||
# Linux/Mac
|
||
openssl rand -base64 32
|
||
|
||
# 或在线生成器
|
||
# https://www.random.org/passwords/?num=1&len=32&format=plain
|
||
```
|
||
|
||
示例强密码:
|
||
```
|
||
xK9$mP2#vL8@nR5%qW3^tY7&zH4!aB6*cD1%
|
||
```
|
||
|
||
#### 5. 测试
|
||
|
||
访问健康检查(需要带 Auth Key):
|
||
|
||
```bash
|
||
curl -H "X-Auth-Key: xK9$mP2#vL8@nR5%qW3^tY7&zH4!" \
|
||
https://academic-search-proxy.your-subdomain.workers.dev/health
|
||
```
|
||
|
||
应该返回:
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"authentication": { "required": true }
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 环境变量完整列表
|
||
|
||
### 通用变量(Text 类型)
|
||
|
||
| 变量名 | 默认值 | 说明 | 方案一 | 方案二 |
|
||
|-------|-------|------|-------|-------|
|
||
| `ENABLE_AUTH` | `"false"` | 是否启用认证 | `false` | ⚠️ `true` |
|
||
| `ALLOWED_ORIGINS` | `"*"` | 允许的来源(CORS) | `"*"` | 特定域名 |
|
||
| `RATE_LIMIT_ENABLED` | `"true"` | 启用速率限制 | `true` | `true` |
|
||
| `RATE_LIMIT_TPS` | `"10"` | 全局每秒请求数 | `10` | `5` |
|
||
| `RATE_LIMIT_TPM` | `"300"` | 全局每分钟请求数 | `300` | `200` |
|
||
| `RATE_LIMIT_PER_IP_TPS` | `"5"` | 每IP每秒请求数 | `5` | `2` |
|
||
| `RATE_LIMIT_PER_IP_TPM` | `"100"` | 每IP每分钟请求数 | `100` | `50` |
|
||
| `RATE_LIMIT_PUBMED_TPS` | `"3"` | PubMed每秒请求数 | `3` | `3` |
|
||
| `RATE_LIMIT_PUBMED_TPM` | `"180"` | PubMed每分钟请求数 | `180` | `180` |
|
||
| `RATE_LIMIT_SEMANTICSCHOLAR_TPS` | `"5"` | S2每秒请求数 | `5` | `3` |
|
||
| `RATE_LIMIT_SEMANTICSCHOLAR_TPM` | `"20"` | S2每分钟请求数 | `20` | `20` |
|
||
|
||
### 加密变量(Secret 类型)⚠️
|
||
|
||
| 变量名 | 方案一 | 方案二 | 说明 |
|
||
|-------|-------|-------|------|
|
||
| `AUTH_SECRET` | 不设置 | ⚠️ **必须设置** | 认证密钥(强密码) |
|
||
| `SEMANTIC_SCHOLAR_API_KEY` | 不设置 | 可选 | 你的 S2 API Key |
|
||
| `PUBMED_API_KEY` | 不设置 | 可选 | 你的 PubMed API Key |
|
||
|
||
---
|
||
|
||
## 🎨 Dashboard 配置截图说明
|
||
|
||
### 添加 Text 变量
|
||
|
||
```
|
||
Settings → Variables → Add variable
|
||
┌─────────────────────────────────┐
|
||
│ Variable name │
|
||
│ ENABLE_AUTH │
|
||
├─────────────────────────────────┤
|
||
│ Value │
|
||
│ false │
|
||
├─────────────────────────────────┤
|
||
│ □ Encrypt │ ← 不勾选
|
||
└─────────────────────────────────┘
|
||
[Save]
|
||
```
|
||
|
||
### 添加 Secret 变量
|
||
|
||
```
|
||
Settings → Variables → Add variable
|
||
┌─────────────────────────────────┐
|
||
│ Variable name │
|
||
│ AUTH_SECRET │
|
||
├─────────────────────────────────┤
|
||
│ Value │
|
||
│ xK9$mP2#vL8@nR5%qW3^tY7&zH4! │
|
||
├─────────────────────────────────┤
|
||
│ ☑ Encrypt │ ← 必须勾选!
|
||
└─────────────────────────────────┘
|
||
[Save]
|
||
```
|
||
|
||
保存后显示为:
|
||
```
|
||
AUTH_SECRET: •••••••• (encrypted)
|
||
```
|
||
|
||
#### 4. 分发给用户
|
||
|
||
**给用户提供:**
|
||
1. Worker URL: `https://academic-search-proxy.your-subdomain.workers.dev`
|
||
2. Auth Key: `xK9$mP2#vL8@nR5%qW3^tY7&zH4!` ⚠️(保密分享)
|
||
|
||
**用户配置:**
|
||
|
||
```javascript
|
||
localStorage.setItem('academicSearchSettings', JSON.stringify({
|
||
proxyEnabled: true,
|
||
proxyUrl: 'https://academic-search-proxy.your-subdomain.workers.dev',
|
||
proxyAuthKey: 'xK9$mP2#vL8@nR5%qW3^tY7&zH4!', // ⚠️ 你提供的
|
||
// 不需要配置 API Key,Worker 会用你的
|
||
}));
|
||
```
|
||
|
||
#### 5. 监控和保护
|
||
|
||
**定期检查用量:**
|
||
```bash
|
||
# Cloudflare Dashboard
|
||
# Workers & Pages → academic-search-proxy → Analytics
|
||
```
|
||
|
||
**如果发现滥用:**
|
||
```bash
|
||
# 立即更换认证密钥
|
||
npx wrangler secret put AUTH_SECRET
|
||
# 输入新密码
|
||
|
||
# 通知用户新密钥
|
||
```
|
||
|
||
**设置告警:**
|
||
- Cloudflare Dashboard → Workers → academic-search-proxy
|
||
- 设置请求数告警(如超过 10,000/天)
|
||
|
||
---
|
||
|
||
## 📊 两种方案对比详解
|
||
|
||
### 方案一:透传模式
|
||
|
||
```
|
||
用户浏览器
|
||
├─ 用户的 S2 Key
|
||
└─ 用户的 PubMed Key
|
||
↓ (通过 X-Api-Key 头)
|
||
你的 Worker (无 Key)
|
||
↓ (转发 X-Api-Key)
|
||
Semantic Scholar / PubMed
|
||
```
|
||
|
||
**优点:**
|
||
- ✅ 你的 Key 不会泄露
|
||
- ✅ 每个用户用自己的限额
|
||
- ✅ 无需担心滥用
|
||
- ✅ 可以公开分享
|
||
|
||
**缺点:**
|
||
- ⚠️ 用户需要自己申请 API Key
|
||
|
||
---
|
||
|
||
### 方案二:共享密钥模式
|
||
|
||
```
|
||
用户浏览器
|
||
└─ Auth Key (xK9$mP2#...)
|
||
↓
|
||
你的 Worker
|
||
├─ 你的 S2 Key (在 Worker 中)
|
||
└─ 你的 PubMed Key (在 Worker 中)
|
||
↓
|
||
Semantic Scholar / PubMed
|
||
```
|
||
|
||
**优点:**
|
||
- ✅ 用户无需申请 Key
|
||
- ✅ 即开即用
|
||
|
||
**缺点:**
|
||
- ⚠️ 所有人共享你的 Key 限额
|
||
- ⚠️ 必须启用认证
|
||
- ⚠️ Auth Key 泄露 = 你的 API Key 被滥用
|
||
- ⚠️ 需要监控用量
|
||
|
||
---
|
||
|
||
## 🎯 选择建议
|
||
|
||
| 场景 | 推荐方案 |
|
||
|------|---------|
|
||
| 个人使用 | **方案一** |
|
||
| 开源项目 | **方案一** |
|
||
| 公开分享 | **方案一** |
|
||
| 小团队(< 5人) | 方案二(谨慎) |
|
||
| 大团队 | **方案一** |
|
||
| 商业产品 | **方案一** |
|
||
|
||
**默认推荐:方案一(透传模式)** ✅
|
||
|
||
---
|
||
|
||
## ⚡ 一键部署脚本
|
||
|
||
### 方案一(透传模式)
|
||
|
||
```bash
|
||
# 1. 进入目录
|
||
cd workers/academic-search-proxy
|
||
|
||
# 2. 确认配置(wrangler.toml)
|
||
cat wrangler.toml
|
||
|
||
# 3. 部署
|
||
npx wrangler deploy
|
||
|
||
# 4. 测试
|
||
curl https://your-worker.workers.dev/health
|
||
|
||
# 完成!分享 Worker URL 给用户
|
||
```
|
||
|
||
### 方案二(共享密钥模式)
|
||
|
||
```bash
|
||
# 1. 进入目录
|
||
cd workers/academic-search-proxy
|
||
|
||
# 2. 修改配置
|
||
# 编辑 wrangler.toml,设置 ENABLE_AUTH = "true"
|
||
|
||
# 3. 设置密钥
|
||
npx wrangler secret put AUTH_SECRET
|
||
# 输入强密码(至少 32 字符)
|
||
|
||
# 可选:添加你的 API Keys
|
||
npx wrangler secret put SEMANTIC_SCHOLAR_API_KEY
|
||
npx wrangler secret put PUBMED_API_KEY
|
||
|
||
# 4. 部署
|
||
npx wrangler deploy
|
||
|
||
# 5. 测试
|
||
curl https://your-worker.workers.dev/health
|
||
|
||
# 6. 分发给用户
|
||
echo "Worker URL: https://your-worker.workers.dev"
|
||
echo "Auth Key: [你设置的密码]"
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 故障排查
|
||
|
||
### Worker 健康检查失败
|
||
|
||
```bash
|
||
# 检查部署状态
|
||
npx wrangler deployments list
|
||
|
||
# 查看日志
|
||
npx wrangler tail
|
||
|
||
# 重新部署
|
||
npx wrangler deploy
|
||
```
|
||
|
||
### 认证失败(方案二)
|
||
|
||
```bash
|
||
# 检查 Secret 是否设置
|
||
npx wrangler secret list
|
||
|
||
# 重新设置
|
||
npx wrangler secret put AUTH_SECRET
|
||
```
|
||
|
||
### 速率限制触发
|
||
|
||
```toml
|
||
# 编辑 wrangler.toml,调高限制
|
||
RATE_LIMIT_TPS = "20"
|
||
RATE_LIMIT_TPM = "600"
|
||
```
|
||
|
||
```bash
|
||
# 重新部署
|
||
npx wrangler deploy
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 更多资源
|
||
|
||
- [完整文档](./README.md)
|
||
- [详细部署指南](./DEPLOY.md)
|
||
- [Cloudflare Workers 文档](https://developers.cloudflare.com/workers/)
|
||
- [Wrangler CLI 文档](https://developers.cloudflare.com/workers/wrangler/)
|
||
|
||
## 💡 最佳实践
|
||
|
||
1. **优先使用方案一**(透传模式)
|
||
2. **定期检查 Worker 使用量**
|
||
3. **设置合理的速率限制**
|
||
4. **方案二必须启用认证**
|
||
5. **定期轮换 Auth Key**(方案二)
|
||
6. **监控 Cloudflare Dashboard**
|