# 生产环境部署检查清单 ## 📋 部署前检查清单 ### 🔧 系统环境检查 - [ ] **服务器规格确认** - [ ] CPU: 至少2核心 - [ ] 内存: 至少2GB RAM - [ ] 存储: 至少20GB可用空间 - [ ] 网络: 稳定的互联网连接 - [ ] **操作系统配置** - [ ] Ubuntu 20.04+ 或 CentOS 8+ 或 Debian 11+ - [ ] 系统已更新到最新版本 - [ ] 时区设置正确 - [ ] NTP时间同步已启用 - [ ] **Docker环境** - [ ] Docker Engine 20.10+ 已安装 - [ ] Docker Compose 2.0+ 已安装 - [ ] Docker服务正常运行 - [ ] 当前用户已加入docker组 ### 🔒 安全配置检查 - [ ] **防火墙配置** - [ ] UFW或iptables已配置 - [ ] 仅开放必要端口 (22, 80, 443) - [ ] SSH端口已修改(可选但推荐) - [ ] 禁用root用户SSH登录 - [ ] **SSL/TLS证书** - [ ] SSL证书已准备(Let's Encrypt或商业证书) - [ ] 证书文件权限正确设置 - [ ] 证书有效期检查 - [ ] 自动续期配置(Let's Encrypt) - [ ] **用户权限** - [ ] 创建专用的非特权用户 - [ ] 应用目录权限正确设置 - [ ] 敏感文件权限限制 ### 📁 文件和配置检查 - [ ] **项目文件** - [ ] 源代码已上传到服务器 - [ ] 文件权限正确设置 - [ ] .env.production文件已创建并配置 - [ ] 敏感信息已从代码中移除 - [ ] **配置文件** - [ ] docker-compose.prod.yml已配置 - [ ] Nginx配置文件已准备 - [ ] 监控配置文件已准备 - [ ] 日志配置正确 ### 🗄️ 数据库准备 - [ ] **数据库配置** - [ ] 数据库连接字符串正确 - [ ] 数据库文件目录已创建 - [ ] 数据库权限正确设置 - [ ] 备份策略已制定 - [ ] **迁移脚本** - [ ] 数据库迁移脚本已准备 - [ ] 迁移脚本已测试 - [ ] 回滚方案已准备 ## 🚀 部署执行检查清单 ### 1️⃣ 环境准备 - [ ] **创建目录结构** ```bash sudo mkdir -p /opt/rust-api/{data,logs,backups,ssl,config} sudo mkdir -p /opt/rust-api/nginx/{conf.d,ssl} sudo mkdir -p /opt/rust-api/monitoring/{prometheus,grafana} ``` - [ ] **设置权限** ```bash sudo useradd -r -s /bin/false -m -d /opt/rust-api apiuser sudo chown -R apiuser:apiuser /opt/rust-api sudo chmod 750 /opt/rust-api ``` - [ ] **复制项目文件** ```bash sudo cp -r /path/to/project/* /opt/rust-api/ sudo chown -R apiuser:apiuser /opt/rust-api ``` ### 2️⃣ 配置文件设置 - [ ] **环境变量配置** ```bash sudo cp config/production.env.template /opt/rust-api/.env.production sudo nano /opt/rust-api/.env.production # 编辑配置 sudo chmod 600 /opt/rust-api/.env.production ``` - [ ] **SSL证书配置** ```bash sudo cp /path/to/cert.pem /opt/rust-api/ssl/ sudo cp /path/to/key.pem /opt/rust-api/ssl/ sudo chmod 600 /opt/rust-api/ssl/*.pem ``` - [ ] **Nginx配置** ```bash sudo cp nginx/nginx.conf /opt/rust-api/nginx/ sudo chown apiuser:apiuser /opt/rust-api/nginx/nginx.conf ``` ### 3️⃣ 服务启动 - [ ] **构建镜像** ```bash cd /opt/rust-api sudo docker-compose -f docker-compose.prod.yml build ``` - [ ] **启动服务** ```bash sudo docker-compose -f docker-compose.prod.yml up -d ``` - [ ] **检查服务状态** ```bash sudo docker-compose -f docker-compose.prod.yml ps sudo docker-compose -f docker-compose.prod.yml logs ``` ### 4️⃣ 功能验证 - [ ] **健康检查** ```bash curl -f http://localhost/health curl -f https://yourdomain.com/health ``` - [ ] **API端点测试** ```bash # 测试用户注册 curl -X POST https://yourdomain.com/api/auth/register \ -H "Content-Type: application/json" \ -d '{"username":"testuser","email":"test@example.com","password":"TestPass123!"}' # 测试用户登录 curl -X POST https://yourdomain.com/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"test@example.com","password":"TestPass123!"}' # 测试用户列表 curl -H "Authorization: Bearer YOUR_TOKEN" https://yourdomain.com/api/users ``` - [ ] **监控端点测试** ```bash curl https://yourdomain.com/monitoring/health curl https://yourdomain.com/monitoring/metrics/prometheus ``` ## 📊 部署后验证检查清单 ### 🔍 系统监控验证 - [ ] **服务状态检查** - [ ] 所有容器正常运行 - [ ] 内存使用率正常 (<80%) - [ ] CPU使用率正常 (<70%) - [ ] 磁盘空间充足 (>20%可用) - [ ] **网络连接检查** - [ ] HTTP重定向到HTTPS正常 - [ ] SSL证书验证通过 - [ ] 域名解析正确 - [ ] 负载均衡器配置正确(如有) - [ ] **日志检查** - [ ] 应用日志正常输出 - [ ] 错误日志无异常 - [ ] 访问日志记录正常 - [ ] 审计日志功能正常 ### 🛡️ 安全验证 - [ ] **安全扫描** - [ ] SSL Labs测试通过 (A级以上) - [ ] 安全头检查通过 - [ ] 端口扫描无异常开放端口 - [ ] 漏洞扫描无高危漏洞 - [ ] **访问控制验证** - [ ] 未授权访问被正确拒绝 - [ ] JWT令牌验证正常 - [ ] 角色权限控制正常 - [ ] 限流机制正常工作 - [ ] **数据保护验证** - [ ] 敏感数据加密存储 - [ ] 数据库访问权限正确 - [ ] 备份功能正常 - [ ] 数据恢复测试通过 ### 📈 性能验证 - [ ] **响应时间测试** - [ ] API响应时间 <200ms (95%请求) - [ ] 数据库查询时间 <100ms - [ ] 静态资源加载时间 <1s - [ ] **并发测试** - [ ] 100并发用户测试通过 - [ ] 1000并发用户测试通过(可选) - [ ] 内存泄漏检查通过 - [ ] 连接池正常工作 - [ ] **压力测试** ```bash # 使用Apache Bench进行压力测试 ab -n 1000 -c 10 https://yourdomain.com/api/users # 使用wrk进行压力测试 wrk -t12 -c400 -d30s https://yourdomain.com/api/users ``` ## 🔧 故障排除检查清单 ### 🚨 常见问题诊断 - [ ] **服务无法启动** - [ ] 检查Docker服务状态 - [ ] 检查端口占用情况 - [ ] 检查配置文件语法 - [ ] 检查文件权限 - [ ] **数据库连接失败** - [ ] 检查数据库文件权限 - [ ] 检查连接字符串配置 - [ ] 检查数据库文件是否存在 - [ ] 检查磁盘空间 - [ ] **SSL证书问题** - [ ] 检查证书文件路径 - [ ] 检查证书有效期 - [ ] 检查证书权限 - [ ] 检查域名匹配 - [ ] **性能问题** - [ ] 检查系统资源使用 - [ ] 检查数据库查询性能 - [ ] 检查网络延迟 - [ ] 检查缓存配置 ### 🔧 调试工具 - [ ] **日志查看命令** ```bash # 查看应用日志 sudo docker-compose -f docker-compose.prod.yml logs -f rust-user-api # 查看Nginx日志 sudo docker-compose -f docker-compose.prod.yml logs -f nginx # 查看系统日志 sudo journalctl -u docker -f ``` - [ ] **性能监控命令** ```bash # 查看容器资源使用 sudo docker stats # 查看系统资源 htop iotop nethogs # 查看网络连接 netstat -tulpn ss -tulpn ``` - [ ] **数据库调试** ```bash # 进入数据库容器 sudo docker-compose -f docker-compose.prod.yml exec rust-user-api sqlite3 /app/data/production.db # 检查数据库完整性 PRAGMA integrity_check; # 查看数据库统计 PRAGMA table_info(users); ``` ## 📝 部署记录 ### 部署信息记录 - **部署日期**: _______________ - **部署版本**: _______________ - **部署人员**: _______________ - **服务器信息**: _______________ - **域名**: _______________ ### 配置参数记录 - **数据库类型**: _______________ - **SSL证书类型**: _______________ - **监控配置**: _______________ - **备份策略**: _______________ ### 测试结果记录 - **功能测试**: ✅ / ❌ - **性能测试**: ✅ / ❌ - **安全测试**: ✅ / ❌ - **监控测试**: ✅ / ❌ ### 问题和解决方案 | 问题描述 | 解决方案 | 状态 | |---------|---------|------| | | | | | | | | | | | | ## 📞 应急联系信息 ### 技术支持 - **主要联系人**: _______________ - **电话**: _______________ - **邮箱**: _______________ - **备用联系人**: _______________ ### 服务商信息 - **云服务商**: _______________ - **域名注册商**: _______________ - **SSL证书提供商**: _______________ - **监控服务商**: _______________ ## 📚 相关文档 - [ ] [生产环境部署指南](production-deployment.md) - [ ] [性能优化和安全加固指南](performance-security-guide.md) - [ ] [Docker部署文档](../README-Docker.md) - [ ] [API文档](../README.md) - [ ] [故障排除指南](troubleshooting.md) --- **注意**: 1. 请按照检查清单逐项验证,确保每个步骤都已完成 2. 遇到问题时,请参考故障排除部分或联系技术支持 3. 部署完成后,请保存此检查清单作为部署记录 4. 定期审查和更新此检查清单以适应新的需求 **部署完成签名**: _______________ **日期**: _______________