跳转到主要内容

生产检查清单

  • 使用强度高且随机生成的密钥
  • 启用 HTTPS/TLS
  • 限制 CORS 允许的来源域名
  • 为敏感信息使用环境变量
  • 启用数据库加密
  • 设置防火墙规则
  • 配置连接池
  • 启用 Redis 持久化
  • 设置缓存
  • 优化数据库查询
  • 配置速率限制
  • 设置日志聚合
  • 配置健康检查
  • 启用指标采集
  • 设置告警
  • 监控错误率
  • 自动化数据库备份
  • 测试恢复程序
  • 备份配置文件
  • 文档化恢复过程

安全配置

生成安全密钥

# 数据库加密密钥 (32 字符)
openssl rand -hex 32

# JWT 密钥
openssl rand -base64 48

# Redis 密码
openssl rand -base64 32

生产环境 config.yaml

# 安全设置
DATABASE_DECRYPTION_KEY: '[生成的密钥]'
JWT_KEY: '[生成的密钥]'
REDIS_PASSWORD: '[强密码]'
PG_PASSWORD: '[强密码]'

# HTTPS URL
MCP_FRONTEND_URL: 'https://您的域名.com'
MCP_PUBLIC_URL: 'https://api.您的域名.com'
WHOOP_REDIRECT_URL: 'https://api.您的域名.com/api/v1/pulse/theta/theta_whoop/callback'

# 严格的 CORS
HTTP_HEADERS:
  Access-Control-Allow-Origin: 'https://您的域名.com'

# SSL/TLS
REDIS_SSL: true

部署架构

AWS 示例

┌─────────────────────────┐
│  Route 53 (DNS)         │
└────────┬────────────────┘

┌────────▼────────────────┐
│  CloudFront (CDN)       │
└────────┬────────────────┘

┌────────▼────────────────┐
│  ALB (负载均衡器)        │
└────┬────────────┬───────┘
     │            │
┌────▼────┐  ┌───▼─────┐
│ ECS/EC2 │  │ ECS/EC2 │
│ API 1   │  │ API 2   │
└────┬────┘  └───┬─────┘
     │           │
     └─────┬─────┘

    ┌──────▼──────────┐
    │                 │
┌───▼─────────┐  ┌───▼────────────┐
│ RDS         │  │ ElastiCache    │
│ PostgreSQL  │  │ Redis          │
└─────────────┘  └────────────────┘

环境变量

为敏感配置使用环境变量:
export DATABASE_DECRYPTION_KEY="..."
export JWT_KEY="..."
export OPENAI_API_KEY="..."
export POSTGRES_PASSWORD="..."
export REDIS_PASSWORD="..."

监控与日志

日志配置

config.yaml
LOG_LEVEL: 'INFO'
LOG_DIR: '/var/log/mirobody'

健康检查端点

# 监控应用程序健康状况
curl https://api.您的域名.com/health

需监控的指标

  • 请求延迟 (p50, p95, p99)
  • 各端点的错误率
  • 提供商同步成功率
  • 数据库连接池使用情况
  • Redis 缓存命中率
  • CPU 和内存使用率

备份策略

数据库备份

# 每日自动备份
0 2 * * * pg_dump -h localhost -U holistic_user holistic_db | gzip > /backups/mirobody-$(date +\%Y\%m\%d).sql.gz

配置备份

# 备份配置
tar -czf config-backup-$(date +%Y%m%d).tar.gz config.yaml .env

扩容

水平扩展

  • 在负载均衡器后部署多个 API 实例
  • 使用 Redis 集群进行分布式缓存
  • 为读密集型工作负载使用数据库只读副本

垂直扩展

根据负载调整资源:
# docker-compose.yml
services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G

下一步