Files
zjpb.net/DEPLOY_v2.6.0_QUICK.md
2026-02-06 15:54:51 +08:00

224 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ZJPB v2.6.0 快速部署指南
**版本**: v2.6.0
**部署时间**: 2026-02-06
**重要性**: ⚠️ 高(成本优化,建议立即部署)
---
## 📋 更新内容
### 主要改进
**成本优化**: API调用减少90%+大幅降低博查API费用
**安全防护**: 添加频率限制和验证码防护,防止滥用
**文档整合**: 清理根目录文档归档到docs/目录
### 技术变更
- 移除详情页自动调用博查API
- 改为用户点击按钮按需加载
- 新增频率限制每IP每小时3次
- 新增验证码防护机制
---
## 🚀 快速部署 (5分钟)
### 方式一通过1Panel + Git
1. **SSH连接服务器**
```bash
ssh root@server.zjpb.net
```
2. **进入项目目录**
```bash
cd /opt/1panel/apps/zjpb
```
3. **拉取最新代码**
```bash
git pull origin master
```
4. **安装新依赖**
```bash
source venv/bin/activate
pip install Flask-Limiter==3.5.0
# 或
pip install -r requirements.txt
```
5. **重启应用**
- **方式A**: 通过1Panel Web界面
- 登录1Panel → 找到zjpb应用 → 点击"重启"
- **方式B**: 通过命令行
```bash
supervisorctl restart zjpb
# 或
systemctl restart zjpb
```
6. **验证部署**
- 访问任意工具详情页
- 确认页面加载快了不再自动调用API
- 点击"加载资讯"按钮,确认能正常获取新闻
---
## ✅ 部署验证清单
### 功能验证
- [ ] 详情页正常打开,速度更快
- [ ] 新闻区域显示占位提示或已有新闻
- [ ] 点击"加载资讯"按钮能正常加载
- [ ] 加载后新闻正常显示
- [ ] 连续点击4次出现频率限制提示
### 错误检查
```bash
# 查看应用日志
tail -f logs/error.log
# 确认无报错
# 正常情况应该看到类似日志:
# "Rate limit triggered: 192.168.x.x" (频率限制触发)
```
### 性能对比
**部署前**: 打开详情页加载时间 2-3秒调用API
**部署后**: 打开详情页加载时间 0.5-1秒无API调用
---
## ⚙️ 可选配置
### 调整频率限制(可选)
编辑 `app.py:193` 附近:
```python
# 更宽松每小时5次
is_limited, remaining, reset_time = limiter.is_rate_limited(
client_ip,
limit=5, # 改为5
window_minutes=60
)
# 更严格每30分钟2次
is_limited, remaining, reset_time = limiter.is_rate_limited(
client_ip,
limit=2, # 改为2
window_minutes=30 # 改为30
)
```
修改后需要重启应用。
### 配置验证码(推荐)
**当前状态**: 使用简单验证(开发模式)
**生产建议**: 配置Google reCAPTCHA或hCaptcha
详见:`docs/archive/DEVELOP_v2.6.0_API_SECURITY.md`
---
## 🐛 故障排查
### 问题1: 点击按钮没反应
**检查**:
```bash
# 查看浏览器控制台是否有JavaScript错误
# 查看后端日志
tail -f logs/error.log
```
**解决**: 确认 `utils/rate_limiter.py` 文件存在
### 问题2: 提示"博查API未配置"
**检查**:
```bash
cat .env | grep BOCHA_API_KEY
```
**解决**: 确认 `.env` 中有 `BOCHA_API_KEY=xxx`
### 问题3: 导入错误 "No module named 'utils.rate_limiter'"
**解决**:
```bash
# 确认文件存在
ls utils/rate_limiter.py
# 如果不存在手动创建或从Git拉取
git checkout utils/rate_limiter.py
```
---
## 📊 成本对比
**假设场景**: 日均1000次详情页访问
| 版本 | 自动调用 | 手动加载 | 总调用 | 日成本 | 月成本 |
|------|---------|---------|--------|--------|--------|
| v2.5 | 1000次 | 0次 | 1000次 | ¥10 | ¥300 |
| v2.6 | 0次 | ~50次 | 50次 | ¥0.5 | ¥15 |
**节省**: 每月约 ¥285 💰
---
## 🔄 回滚方案
如果部署后出现问题,可以快速回滚:
```bash
cd /opt/1panel/apps/zjpb
# 回滚到v2.5
git reset --hard e71230c
# 重启应用
supervisorctl restart zjpb
```
---
## 📚 相关文档
- 完整开发文档: `docs/archive/DEVELOP_v2.6.0_API_SECURITY.md`
- 文档索引: `docs/README.md`
- 部署信息: `DEPLOY_INFO.md`
---
## 💡 下一步建议
### 立即执行
✅ 部署v2.6.0(成本优化)
✅ 验证功能正常
### 1周内执行
- [ ] 配置Redis存储持久化频率限制数据
- [ ] 配置生产环境验证码服务
- [ ] 监控API调用量变化
### 1个月内执行
- [ ] 添加API调用统计面板
- [ ] 优化验证码用户体验
- [ ] 实现白名单机制
---
**部署时间**: < 5分钟
**风险等级**: 低(可快速回滚)
**收益**: 成本优化90%+ 🎉
---
最后更新: 2026-02-06