# 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密钥配置 ```bash # 生成安全的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](https://www.mongodb.com/cloud/atlas) 2. 创建集群并获取连接字符串 3. 设置数据库用户和密码 #### 自建MongoDB ```bash # 启动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](https://redis.com/redis-enterprise-cloud/) 2. 创建数据库实例 3. 获取连接URL和密码 #### 自建Redis ```bash # 启动Redis服务 redis-server --requirepass "your-redis-password" ``` ### 2.4 第三方服务密钥 #### 支付宝支付 1. 访问 [支付宝开放平台](https://open.alipay.com/) 2. 创建应用并获取App ID 3. 生成RSA密钥对 4. 配置应用公钥和私钥 #### 微信支付 1. 访问 [微信支付商户平台](https://pay.weixin.qq.com/) 2. 获取商户号(MCH_ID)和API密钥 3. 下载API证书文件 #### Coze AI平台 1. 访问 [Coze AI平台](https://www.coze.cn/) 2. 创建机器人并获取API密钥 3. 配置机器人ID和工作空间ID #### 阿里云OSS 1. 访问 [阿里云OSS控制台](https://oss.console.aliyun.com/) 2. 创建存储桶(Bucket) 3. 获取AccessKey ID和Secret ## 3. 环境配置步骤 ### 3.1 开发环境配置 #### 步骤1:复制配置模板 ```bash # 复制模板文件 cp .env.example .env # 或者创建新的配置文件 cp .env.example .env.development ``` #### 步骤2:配置基础服务 ```bash # 启动本地MongoDB mongod --dbpath ./data/db --port 27017 # 启动本地Redis redis-server --port 6379 --requirepass "dev-redis-password" # 启动Parse Server npm run parse:dev ``` #### 步骤3:填入开发环境密钥 ```bash # .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:创建生产环境配置 ```bash # 创建生产环境配置 cp .env.example .env.production ``` #### 步骤2:配置生产环境密钥 ```bash # .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:安全配置 ```bash # 生成生产环境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:环境变量未加载 ```bash # 检查dotenv配置 import dotenv from 'dotenv'; dotenv.config({ path: '.env' }); # 检查文件路径 console.log(process.cwd()); ``` #### 问题2:数据库连接失败 ```bash # 检查MongoDB服务状态 mongod --version # 测试连接 mongosh "mongodb://localhost:27017" ``` #### 问题3:Redis连接失败 ```bash # 检查Redis服务状态 redis-cli ping # 测试认证 redis-cli -a your-password ping ``` ### 5.2 调试技巧 #### 启用详细日志 ```bash # 设置调试模式 DEBUG=app:*,api:*,db:* npm start # 查看环境变量 console.log('Database URL:', process.env.MONGODB_URI); ``` #### 环境变量验证 ```typescript // 验证必需的环境变量 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部署 ```dockerfile # 使用环境变量文件 COPY .env.production .env # 或者使用Docker secrets docker secret create jwt_secret - < ./secrets/jwt_secret.txt ``` ### 6.2 云平台部署 #### AWS部署 ```bash # 使用Parameter Store aws ssm put-parameter --name "/ecommerce-ai/jwt-secret" --value "secret-value" --type SecureString ``` #### 阿里云部署 ```bash # 使用KMS加密 aliyun kms Encrypt --KeyId key-id --Plaintext "secret-value" ``` ## 7. 监控与审计 ### 7.1 密钥使用监控 - 📊 **记录密钥访问日志** - 📊 **监控异常访问模式** - 📊 **定期审计密钥使用情况** ### 7.2 安全扫描 ```bash # 使用安全扫描工具 npm audit snyk test ``` --- ## 总结 本指南提供了AI智能销售平台的环境配置完整流程。请按照步骤配置各个环境,并严格遵守安全最佳实践。如有问题,请参考故障排除章节或联系技术支持。