环境配置详解
2025-12-04 22:04 更新
环境配置详解
配置文件概述
DoraCMS 采用分层配置系统,通过环境变量和配置文件实现灵活的环境管理。
配置文件层次
.env 文件(环境变量)
↓
config/env.js(环境配置解析)
↓
config/config.default.js(应用配置)
↓
config/config.{env}.js(环境特定配置)
环境变量优先级
.env.${NODE_ENV}.local # 最高优先级
.env.${NODE_ENV} # 环境特定配置
.env.local # 本地配置(不提交到版本控制)
.env # 默认配置
基础环境配置
创建配置文件
## 复制配置模板
cp server/env.example server/.env
## 或使用 Docker 配置
cp docker.env.example .env
核心配置项
运行环境
## 运行环境:development, production, test
NODE_ENV=development
## 服务器配置
PORT=8080
HOSTNAME=127.0.0.1
## Worker 进程数(生产环境建议设置为 CPU 核心数)
EGG_WORKERS=1
应用安全
## 应用密钥(必须修改为随机字符串)
APP_KEYS=your_random_secret_key_32_chars_long
## 会话密钥
SESSION_SECRET=your_session_secret_key
## JWT 密钥
JWT_SECRET=your_jwt_secret_key
生成安全密钥:
## 使用 Node.js 生成
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
## 使用 OpenSSL 生成
openssl rand -hex 32
## 使用在线工具
## https://www.random.org/strings/
数据库配置
MongoDB 配置
## 数据库类型
DATABASE_TYPE=mongodb
## MongoDB 连接配置
MONGODB_HOST=127.0.0.1
MONGODB_PORT=27017
MONGODB_DATABASE=doracms3
MONGODB_USERNAME=your_username
MONGODB_PASSWORD=your_password
## 连接选项
MONGODB_OPTIONS=authSource=admin&retryWrites=true&w=majority
## 连接池配置
MONGODB_MAX_POOL_SIZE=10
MONGODB_MIN_POOL_SIZE=2
MariaDB 配置
## 数据库类型
DATABASE_TYPE=mariadb
## MariaDB 连接配置
MARIADB_HOST=127.0.0.1
MARIADB_PORT=3306
MARIADB_DATABASE=doracms3
MARIADB_USERNAME=your_username
MARIADB_PASSWORD=your_password
## 连接池配置
MARIADB_CONNECTION_LIMIT=10
MARIADB_ACQUIRE_TIMEOUT=60000
MARIADB_TIMEOUT=60000
## 启用 Repository 模式(推荐)
REPOSITORY_ENABLED=true
Redis 配置
## Redis 配置(可选)
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
REDIS_DB=0
## Redis 连接池
REDIS_MAX_RETRIES_PER_REQUEST=3
REDIS_RETRY_DELAY_ON_FAILURE=100
安全配置
跨域设置
## CORS 允许的源
CORS_ORIGINS=http://localhost:3000,http://localhost:5173,https://your-domain.com
## 域名白名单
DOMAIN_WHITELIST=localhost,127.0.0.1,your-domain.com
## 是否允许携带凭证
CORS_CREDENTIALS=true
安全策略
## 安全头配置
SECURITY_CSP_ENABLED=true
SECURITY_HSTS_ENABLED=true
SECURITY_NOOPEN_ENABLED=true
## 请求限制
RATE_LIMIT_MAX=1000
RATE_LIMIT_DURATION=900000
## 文件上传限制
UPLOAD_MAX_FILE_SIZE=10485760
UPLOAD_MAX_FILES=10
日志配置
日志级别
## 日志级别:DEBUG, INFO, WARN, ERROR
LOG_LEVEL=INFO
## 日志输出目录
LOG_DIR=./logs
## 日志文件大小限制(MB)
LOG_MAX_FILE_SIZE=50
## 日志文件保留天数
LOG_MAX_FILES=30
日志格式
## 日志格式:json, text
LOG_FORMAT=json
## 是否输出到控制台
LOG_CONSOLE=true
## 是否输出到文件
LOG_FILE=true
邮件配置
SMTP 设置
## 邮件服务配置
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_SECURE=true
MAIL_USER=your_email@qq.com
MAIL_PASS=your_email_password
## 发件人信息
MAIL_FROM_NAME=DoraCMS
MAIL_FROM_EMAIL=your_email@qq.com
邮件模板
## 邮件模板路径
MAIL_TEMPLATE_DIR=./app/view/email
## 默认邮件模板
MAIL_DEFAULT_TEMPLATE=default
文件存储配置
本地存储
## 文件上传路径
UPLOAD_PATH=./app/public/uploads
## 静态文件访问路径
STATIC_PATH=/public
## 允许的文件类型
UPLOAD_ALLOWED_TYPES=jpg,jpeg,png,gif,pdf,doc,docx
云存储配置
阿里云 OSS
## 阿里云 OSS 配置
OSS_REGION=oss-cn-hangzhou
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
OSS_BUCKET=your_bucket_name
OSS_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
腾讯云 COS
## 腾讯云 COS 配置
COS_SECRET_ID=your_secret_id
COS_SECRET_KEY=your_secret_key
COS_REGION=ap-guangzhou
COS_BUCKET=your_bucket_name
缓存配置
内存缓存
## 内存缓存配置
CACHE_MEMORY_MAX=100
CACHE_MEMORY_TTL=3600
Redis 缓存
## Redis 缓存配置
CACHE_REDIS_TTL=3600
CACHE_REDIS_KEY_PREFIX=doracms:cache:
第三方服务配置
搜索引擎
## 百度推送配置
BAIDU_PUSH_TOKEN=your_baidu_push_token
BAIDU_PUSH_SITE=https://your-domain.com
## Google Search Console
GOOGLE_SITE_VERIFICATION=your_verification_code
社交登录
## 微信登录配置
WECHAT_APP_ID=your_wechat_app_id
WECHAT_APP_SECRET=your_wechat_app_secret
## QQ 登录配置
QQ_APP_ID=your_qq_app_id
QQ_APP_KEY=your_qq_app_key
支付配置
## 微信支付配置
WECHAT_PAY_APP_ID=your_wechat_pay_app_id
WECHAT_PAY_MCH_ID=your_mch_id
WECHAT_PAY_KEY=your_pay_key
## 支付宝配置
ALIPAY_APP_ID=your_alipay_app_id
ALIPAY_PRIVATE_KEY=your_private_key
ALIPAY_PUBLIC_KEY=your_public_key
开发环境配置
开发模式设置
## 开发环境配置
NODE_ENV=development
DEBUG=true
## 热重载
HOT_RELOAD=true
## 开发工具
DEV_TOOLS=true
## API 文档
API_DOCS_ENABLED=true
调试配置
## 调试模式
DEBUG_MODE=true
## SQL 查询日志
SQL_DEBUG=true
## 性能监控
PERFORMANCE_MONITOR=true
生产环境配置
性能优化
## 生产环境配置
NODE_ENV=production
DEBUG=false
## 集群模式
EGG_WORKERS=4
## 缓存配置
CACHE_ENABLED=true
CACHE_TTL=3600
## 压缩配置
GZIP_ENABLED=true
安全加固
## 安全配置
SECURITY_ENABLED=true
HTTPS_ONLY=true
## 访问限制
IP_WHITELIST=your_admin_ip
ADMIN_PATH_PREFIX=/admin
## 会话安全
SESSION_SECURE=true
SESSION_HTTP_ONLY=true
Docker 环境配置
Docker Compose 配置
## docker-compose.yml
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
environment:
- NODE_ENV=production
- DATABASE_TYPE=mongodb
- MONGODB_HOST=mongodb
env_file:
- .env
depends_on:
- mongodb
- redis
mongodb:
image: mongo:7.0
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGODB_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGODB_PASSWORD}
volumes:
- mongodb_data:/data/db
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
mongodb_data:
redis_data:
容器环境变量
## Docker 特定配置
DOCKER_ENV=true
CONTAINER_NAME=doracms-app
## 健康检查
HEALTH_CHECK_ENABLED=true
HEALTH_CHECK_INTERVAL=30s
配置验证
配置检查脚本
#!/bin/bash
## check-config.sh
echo "检查配置文件..."
## 检查必需的环境变量
required_vars=(
"NODE_ENV"
"APP_KEYS"
"DATABASE_TYPE"
)
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
echo "错误: 环境变量 $var 未设置"
exit 1
fi
done
echo "配置检查通过"
配置测试
// test/config.test.js
const assert = require('assert');
const config = require('../config/config.default');
describe('配置测试', () => {
it('应该有必需的配置项', () => {
assert(config.keys);
assert(config.database);
assert(config.security);
});
it('数据库配置应该正确', () => {
if (config.database.type === 'mongodb') {
assert(config.database.mongodb);
assert(config.database.mongodb.host);
}
});
});
常见问题
配置不生效
问题:修改配置后不生效
解决方案:
## 重启应用
pm2 restart doracms
## 或重新启动 Docker 容器
docker-compose restart
环境变量读取失败
问题:环境变量无法读取
解决方案:
## 检查文件路径
ls -la .env
## 检查文件权限
chmod 644 .env
## 检查文件格式(不要有 BOM)
file .env
数据库连接失败
问题:数据库连接配置错误
解决方案:
## 测试 MongoDB 连接
mongosh "mongodb://username:password@host:port/database"
## 测试 MariaDB 连接
mysql -h host -P port -u username -p database
配置最佳实践
安全建议
- 敏感信息:不要将密码等敏感信息提交到版本控制
- 密钥管理:使用强随机密钥,定期更换
- 权限控制:限制配置文件的访问权限
- 环境隔离:不同环境使用不同的配置
性能优化
- 连接池:合理配置数据库连接池大小
- 缓存策略:根据业务需求配置缓存
- 日志级别:生产环境使用适当的日志级别
- 资源限制:设置合理的资源使用限制
维护建议
- 配置备份:定期备份配置文件
- 版本管理:使用版本控制管理配置变更
- 文档更新:及时更新配置文档
- 监控告警:配置关键参数的监控告警
以上内容是否对您有帮助:
← 数据库配置指南

免费 AI IDE


更多建议: