Environment_Configuration_Guide.md 6.4 KB

AI智能销售平台环境配置指南

文档信息

  • 文档版本:v1.0.0
  • 作者:Backend Developer Agent
  • 生成日期:2024-12-24
  • 引用来源:tech/Performance_Security_Plan.md, tech/Microservice_Diagram.md

1. 环境配置文件说明

1.1 配置文件结构

backend/
├── .env                    # 实际环境变量配置(不要提交到git)
├── .env.example            # 配置模板(可提交到git)
├── .env.development        # 开发环境配置
├── .env.staging           # 测试环境配置
└── .env.production        # 生产环境配置

1.2 配置文件用途

  • .env:本地开发环境配置
  • .env.example:配置模板,供团队成员参考
  • .env.development:开发服务器环境配置
  • .env.staging:测试环境配置
  • .env.production:生产环境配置

2. 密钥获取指南

2.1 JWT密钥配置

# 生成安全的JWT密钥(Linux/Mac)
openssl rand -base64 64

# 生成安全的JWT密钥(Windows PowerShell)
[System.Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64))

2.2 数据库服务密钥

MongoDB Atlas(云数据库)

  1. 访问 MongoDB Atlas
  2. 创建集群并获取连接字符串
  3. 设置数据库用户和密码

自建MongoDB

# 启动MongoDB服务
mongod --dbpath /data/db --port 27017

# 创建管理员用户
use admin
db.createUser({
  user: "admin",
  pwd: "secure-password",
  roles: ["root"]
})

2.3 Redis服务密钥

Redis Cloud

  1. 访问 Redis Cloud
  2. 创建数据库实例
  3. 获取连接URL和密码

自建Redis

# 启动Redis服务
redis-server --requirepass "your-redis-password"

2.4 第三方服务密钥

支付宝支付

  1. 访问 支付宝开放平台
  2. 创建应用并获取App ID
  3. 生成RSA密钥对
  4. 配置应用公钥和私钥

微信支付

  1. 访问 微信支付商户平台
  2. 获取商户号(MCH_ID)和API密钥
  3. 下载API证书文件

Coze AI平台

  1. 访问 Coze AI平台
  2. 创建机器人并获取API密钥
  3. 配置机器人ID和工作空间ID

阿里云OSS

  1. 访问 阿里云OSS控制台
  2. 创建存储桶(Bucket)
  3. 获取AccessKey ID和Secret

3. 环境配置步骤

3.1 开发环境配置

步骤1:复制配置模板

# 复制模板文件
cp .env.example .env

# 或者创建新的配置文件
cp .env.example .env.development

步骤2:配置基础服务

# 启动本地MongoDB
mongod --dbpath ./data/db --port 27017

# 启动本地Redis
redis-server --port 6379 --requirepass "dev-redis-password"

# 启动Parse Server
npm run parse:dev

步骤3:填入开发环境密钥

# .env.development
NODE_ENV=development
PORT=3000

# 使用本地服务
MONGODB_URI=mongodb://localhost:27017/ecommerce-ai-dev
REDIS_URL=redis://localhost:6379

# 开发环境使用测试密钥
ALIPAY_APP_ID=沙箱环境AppID
WECHAT_PAY_MCH_ID=测试商户号

3.2 生产环境配置

步骤1:创建生产环境配置

# 创建生产环境配置
cp .env.example .env.production

步骤2:配置生产环境密钥

# .env.production
NODE_ENV=production
PORT=80

# 使用生产数据库
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/ecommerce-ai
REDIS_URL=redis://:password@redis-host:6379

# 生产环境使用真实密钥
ALIPAY_APP_ID=真实AppID
WECHAT_PAY_MCH_ID=真实商户号

步骤3:安全配置

# 生成生产环境JWT密钥
JWT_SECRET=$(openssl rand -base64 64)

# 设置强密码
MONGO_ROOT_PASSWORD=$(openssl rand -base64 32)
REDIS_PASSWORD=$(openssl rand -base64 32)

4. 安全最佳实践

4.1 密钥管理

  • 🔒 不要将真实密钥提交到版本控制
  • 🔒 使用不同的密钥用于不同环境
  • 🔒 定期轮换密钥(每3-6个月)
  • 🔒 使用密钥管理服务(如AWS Secrets Manager)

4.2 访问控制

  • 🔐 最小权限原则:只授予必要的权限
  • 🔐 IP白名单:限制数据库访问来源
  • 🔐 网络隔离:生产环境使用私有网络
  • 🔐 监控告警:设置异常访问告警

4.3 备份与恢复

  • 💾 定期备份数据库
  • 💾 测试恢复流程
  • 💾 加密备份数据
  • 💾 多地备份存储

5. 故障排除

5.1 常见问题

问题1:环境变量未加载

# 检查dotenv配置
import dotenv from 'dotenv';
dotenv.config({ path: '.env' });

# 检查文件路径
console.log(process.cwd());

问题2:数据库连接失败

# 检查MongoDB服务状态
mongod --version

# 测试连接
mongosh "mongodb://localhost:27017"

问题3:Redis连接失败

# 检查Redis服务状态
redis-cli ping

# 测试认证
redis-cli -a your-password ping

5.2 调试技巧

启用详细日志

# 设置调试模式
DEBUG=app:*,api:*,db:* npm start

# 查看环境变量
console.log('Database URL:', process.env.MONGODB_URI);

环境变量验证

// 验证必需的环境变量
const requiredEnvVars = [
  'JWT_SECRET',
  'MONGODB_URI', 
  'PARSE_APP_ID',
  'PARSE_MASTER_KEY'
];

requiredEnvVars.forEach(envVar => {
  if (!process.env[envVar]) {
    throw new Error(`Missing required environment variable: ${envVar}`);
  }
});

6. 部署配置

6.1 Docker部署

# 使用环境变量文件
COPY .env.production .env

# 或者使用Docker secrets
docker secret create jwt_secret - < ./secrets/jwt_secret.txt

6.2 云平台部署

AWS部署

# 使用Parameter Store
aws ssm put-parameter --name "/ecommerce-ai/jwt-secret" --value "secret-value" --type SecureString

阿里云部署

# 使用KMS加密
aliyun kms Encrypt --KeyId key-id --Plaintext "secret-value"

7. 监控与审计

7.1 密钥使用监控

  • 📊 记录密钥访问日志
  • 📊 监控异常访问模式
  • 📊 定期审计密钥使用情况

7.2 安全扫描

# 使用安全扫描工具
npm audit
snyk test

总结

本指南提供了AI智能销售平台的环境配置完整流程。请按照步骤配置各个环境,并严格遵守安全最佳实践。如有问题,请参考故障排除章节或联系技术支持。