配置模型
DBNginx 配置建议按入口、上游、身份、策略、审计、密码设备和扩展拆分,便于多人协作、版本管理和回滚。
配置对象
| 对象 | 说明 |
|---|---|
| server | 监听入口、协议、默认数据库、认证方式 |
| upstream | 主库、只读库、报表库、资源池、连接池 |
| auth | 用户、角色、应用账号、来源地址、身份映射 |
| route | 读写分离、报表分流、灰度库、故障切换 |
| policy | 权限、SQL 防火墙、重写、脱敏、水印、国密 |
| audit | 审计字段、日志目录、保存周期、导出权限 |
| crypto | 密钥引用、密码卡、密码机、HSM、KMS |
| dynamic_extension | 扩展入口、上下文、超时、失败策略、审计字段 |
配置原则
- 一个业务入口对应清晰的 server 配置。
- 上游资源按用途拆分,不把报表和批处理压到主库。
- 身份映射应尽量接近业务主体,减少对单一数据库账号的依赖。
- 策略按业务场景分文件维护。
- 审计字段在上线前确认,不应上线后再补。
- 链路动态扩展必须有灰度、超时、失败策略和回滚版本。
示例结构
conf.d/
servers/
crm-entry.conf
upstreams/
crm-primary.conf
crm-reporting.conf
auth/
crm-users.conf
policies/
crm-sensitive-fields.conf
crm-sql-firewall.conf
audit/
business-audit.conf
crypto/
sm-crypto-device.conf
extensions/
crm-context.extension.conf
上线校验
发布前应校验:
- 引用对象是否存在。
- 上游资源是否可达。
- 策略是否覆盖预期入口。
- 审计目录是否可写。
- 密码设备是否连通。
- 链路动态扩展是否可执行、可超时、可回滚。