项目配置文档
1. 项目概述
1.1 项目结构
本项目采用微服务架构,分为管理系统与API系统两部分:
- 管理系统:提供后台管理功能,包括系统配置、用户管理、数据监控、权限控制等
- API系统:提供对外接口服务,处理客户端请求,实现业务逻辑
1.2 技术栈
- 后端语言:Go 语言
- 数据库:MySQL
- 缓存:Redis
- 文件存储:支持 S3 协议的对象存储
- 认证:JWT (JSON Web Token)
- 权限控制:Casbin
2. 核心配置项
2.1 基本服务配置
yaml
# 服务基本信息
Name: upgradelink-admin # 服务名称,用于标识不同的服务实例
Host: 0.0.0.0 # 服务监听地址,0.0.0.0表示监听所有网络接口
Port: 9110 # 服务监听端口
# 服务性能配置
Timeout: 300000 # 请求超时时间(毫秒)
MaxBytes: 1073741824 # 最大请求体大小(字节),此处为1GB2.2 运行环境配置
yaml
Mode: dev # 运行模式:dev(开发)、test(测试)、prod(生产)2.3 文件存储配置
文件存储支持 S3 协议的对象存储服务,配置完成后可在后台系统(云文件管理 -> 上传)进行测试上传。
yaml
UploadConf:
Bucket: # 存储桶名称
SecretID: # 存储桶访问密钥ID
SecretKey: # 存储桶访问密钥
Endpoint: # 存储桶endpoint
Folder: # 存储桶文件夹
Region: # 存储桶区域
CdnUrl: # CDN域名,配置后会替换对象存储URL前缀注意:配置
CdnUrl后,系统会自动将对象存储的 URL 前缀替换为 CDN 域名,并将替换后的 URL 存入数据库,从而使用 CDN 加速文件访问。
2.4 认证配置
yaml
Auth:
AccessSecret: jS6VKDtsJf3z1n2VKDtsJf3z # JWT访问密钥,用于签名和验证令牌
AccessExpire: 259200 # JWT令牌过期时间(秒),此处为3天2.5 跨域配置
yaml
CROSConf:
Address: '*' # 允许的跨域来源,*表示允许所有来源2.6 日志配置
yaml
Log:
ServiceName: UpgradeLink-admin # 日志服务名称
Mode: file # 日志输出模式:console(控制台)或file(文件)
Encoding: json # 日志编码格式:json或console
TimeFormat: "2006-01-02 15:04:05.000" # 日志时间格式
Path: "./logs" # 日志文件存储路径
Level: debug # 日志级别:debug, info, warn, error
KeepDays: 3 # 日志文件保留天数
Rotation: daily # 日志轮转方式:daily(按天)或size(按大小)2.7 权限控制配置
使用 Casbin 实现基于 RBAC (基于角色的访问控制) 的权限管理:
yaml
CasbinConf:
ModelText: |
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = r.sub == p.sub && keyMatch2(r.obj,p.obj) && r.act == p.act2.8 数据库配置
yaml
DatabaseConf:
Type: mysql # 数据库类型
Host: 127.0.0.1 # 数据库主机地址
Port: 3306 # 数据库端口
DBName: upgrade # 数据库名称
Username: root # 数据库用户名
Password: Rootroot123! # 数据库密码
MaxOpenConn: 100 # 最大打开连接数
SSLMode: disable # SSL模式:disable(禁用)或require(要求)
CacheTime: 5 # 缓存时间(秒)
MysqlConfig: "&loc=Asia%2FShanghai" # MySQL额外配置,此处设置时区为上海2.9 Redis配置
yaml
RedisConf:
Host: 127.0.0.1:6379 # Redis主机地址和端口
Db: 0 # Redis数据库编号
Pass: a123456 # Redis密码3. 配置管理最佳实践
3.1 环境分离
- 开发环境:使用本地数据库和Redis,开启详细日志
- 测试环境:使用测试数据库,模拟生产环境配置
- 生产环境:使用正式数据库,关闭调试日志,增强安全配置
3.2 安全注意事项
- 敏感信息(如密码、密钥)不应硬编码在配置文件中,建议使用环境变量或配置中心
- 生产环境应使用 HTTPS 协议
- 定期更新密钥和密码
- 限制数据库和Redis的访问范围
3.3 性能优化
- 根据服务负载调整
MaxOpenConn参数 - 合理设置缓存时间,减少数据库访问
- 优化日志级别,生产环境避免使用 debug 级别
- 定期清理日志文件,避免磁盘空间不足