refactor(static): 删除默认配置与本地回退逻辑,confs 改为强依赖
- 配置加载从三层(内置默认值→confs→本地config.ini回退)改为两层(confs 强依赖→环境变量覆盖) - confs 连接失败直接 sys.exit(1),不再静默使用内置默认值或回退本地 config.ini - file_config 初始值改为空字符串白名单模板,移除所有内置默认值 - 新增配置完整性校验:server.host/port、directory.root、cors.allowed_origins 必须非空 - ssl 段保留合理默认(enabled=false、cert/key 默认文件名),不强制配置 - 区分错误类型:连接拒绝/RpcError/通用异常分别打印明确错误信息到 stderr - confs 连接地址改为引导配置(环境变量 CONFS_HOST/CONFS_PORT 优先,默认 127.0.0.1:8010) - 移除 --config 命令行参数(本地 config.ini 回退已删除) - 删除 static/config.ini 本地回退文件 - 更新 _run.sh 移除 --config 参数 - 更新 static/README.md 与 confs/README.md 文档 - confs 集成关系描述更新为"confs 最先启动"
This commit is contained in:
1 parent
de0e4168b2
commit
0ae107f953
5 files changed
+121
-72
No files matched your search
+42
-16
@@ -90,26 +90,52 @@ static :9200 (Flask + CORS)
|
||||
|
||||
## 配置
|
||||
|
||||
`config.ini`:
|
||||
static 已接入 confs 统一配置服务,confs 是 static 启动的**强依赖**:
|
||||
|
||||
```ini
|
||||
[server]
|
||||
host = 127.0.0.1
|
||||
port = 9200
|
||||
1. **confs 统一配置服务** — 必须成功从 confs 拉取 `static.ini`,否则 static 启动失败直接退出(exit code 1)
|
||||
2. **环境变量覆盖**(最高优先级)— Docker/部署环境通过环境变量覆盖 confs 中的值
|
||||
|
||||
[directory]
|
||||
root = ./public
|
||||
### 配置文件
|
||||
|
||||
[ssl]
|
||||
enabled = false
|
||||
cert_file = cert.pem
|
||||
key_file = key.pem
|
||||
集中托管在 [confs/configs/static.ini](../confs/configs/static.ini),由 confs 服务分发:
|
||||
|
||||
[cors]
|
||||
# 允许跨域的 Origin 白名单(逗号分隔)
|
||||
# 注意:生产环境请勿包含 localhost / 127.0.0.1 / 通配符 *
|
||||
allowed_origins = https://qsont.me,https://yhdet.top
|
||||
```
|
||||
| Section | Key | 说明 |
|
||||
|---------|-----|------|
|
||||
| `[server]` | `host` | 监听地址 |
|
||||
| `[server]` | `port` | 监听端口 |
|
||||
| `[directory]` | `root` | 静态文件根目录(相对 BASE_DIR) |
|
||||
| `[ssl]` | `enabled` | 是否启用 TLS(`true`/`false`,默认 `false`) |
|
||||
| `[ssl]` | `cert_file` | SSL 证书路径(默认 `cert.pem`) |
|
||||
| `[ssl]` | `key_file` | SSL 私钥路径(默认 `key.pem`) |
|
||||
| `[cors]` | `allowed_origins` | CORS 白名单,逗号分隔 |
|
||||
|
||||
### 引导配置(confs 连接地址)
|
||||
|
||||
confs 自身的连接地址不通过 confs 获取(避免循环依赖),通过以下方式确定(优先级从高到低):
|
||||
- 环境变量 `CONFS_HOST` / `CONFS_PORT`
|
||||
- 默认值 `127.0.0.1:8010`
|
||||
|
||||
### 环境变量(最高优先级,覆盖 confs 配置值)
|
||||
|
||||
| 变量 | 说明 |
|
||||
|------|------|
|
||||
| `LISTEN_ADDR` | 监听地址(容器内需绑定 `0.0.0.0`) |
|
||||
| `LISTEN_PORT` | 监听端口 |
|
||||
| `STATIC_ROOT` | 静态文件根目录 |
|
||||
| `CONFS_HOST` | confs 服务主机名(引导配置,Docker 环境使用服务名) |
|
||||
| `CONFS_PORT` | confs 服务端口(引导配置) |
|
||||
|
||||
### 启动顺序要求
|
||||
|
||||
**confs 必须先于 static 启动**。若 confs 不可用:
|
||||
- static 打印致命错误到 stderr(包含 confs 地址和具体错误原因),以 exit code 1 终止
|
||||
- 不会静默使用默认值或回退本地配置文件启动
|
||||
- 配置完整性校验:若 static.ini 中缺少必需的 section/key(server.host/port、directory.root、cors.allowed_origins)且无对应环境变量覆盖,同样报错退出
|
||||
- ssl 段为可选项,未配置时默认 `enabled=false`、cert/key 使用默认文件名
|
||||
|
||||
### 历史遗留:本地 config.ini 已删除
|
||||
|
||||
旧版本的 `static/config.ini` 本地回退逻辑已移除,配置统一由 confs 服务分发。
|
||||
|
||||
## 依赖
|
||||
|
||||
|
||||
Reference in new issue
Block a user