# 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