Step 1: init.txt → services.yaml - 新增 InitParser (yaml-cpp), 支持 YAML/TXT 双模式解析, 向后兼容 init.txt - 新增 services.yaml 声明式服务配置 (name/cmd/args/depends_on/sleep_before) - 改造 pmc_mtd.cpp 集成 InitParser, 支持目录/.yaml/.txt 三种路径模式 - Makefile 添加 InitParser 编译目标 + -lyaml-cpp 链接 - setup 脚本添加 libyaml-cpp-dev / yaml-cpp-devel 依赖 - core/_run.sh 改为 -i . (目录模式, 自动查找 services.yaml → init.txt) Step 2: 11 个 _run.sh 统一参数透传 - 8 个脚本改动: 追加 "$@" / 移除 sleep / 修引号 - waf 保留 -c config.yaml 作为脚本默认值 - services.yaml waf args 改为 [] 避免重复传递 - 开发方案文档: docs/reports/core_services_yaml_dev_doc.md
redirect80 — HTTP→HTTPS 重定向服务
基于 Python 内置 http.server 的极简 HTTP 重定向服务,监听 80 端口,将所有 HTTP 请求重定向到 HTTPS (443),实现浏览器和搜索引擎友好的 HTTP→HTTPS 无缝升级。
设计
- 零 Web 框架依赖:纯 Python 标准库
http.server+ThreadingMixIn多线程并发 - 智能重定向:GET/HEAD → 301(搜索引擎友好永久重定向),POST/PUT/DELETE/PATCH → 308(保留方法和 body)
- Host 保留:读取请求
Host头构造重定向 URL(剥离端口),回退用配置的监听地址 - 日志集成:通过
log_client.py异步批量推送运行日志到db:8005的 Logs 表(fail-safe) - 配置分层:confs 强依赖 → 环境变量覆盖(
REDIRECT80_*),confs 不可用时直接退出不做本地回退
配置
配置通过 confs 统一配置服务分发(confs/configs/redirect80.ini),启动时经 pymsg 阻塞等待拉取(retry_on_refused),confs 不可用时进程直接退出。环境变量优先级最高。
| 配置项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
host |
REDIRECT80_HOST |
0.0.0.0 |
监听地址 |
port |
REDIRECT80_PORT |
80 |
监听端口 |
redirect_port |
REDIRECT80_REDIRECT_PORT |
443 |
重定向目标 HTTPS 端口 |
redirect_code |
REDIRECT80_REDIRECT_CODE |
301 |
非 GET/HEAD 重定向状态码(308 vs 307) |
安装 & 运行
cd redirect80
bash _set.sh # 创建 venv 并安装依赖
bash _run.sh # 运行(尝试自动设置 cap_net_bind_service)
端口权限
80 端口是 Linux 特权端口(<1024),需要 CAP_NET_BIND_SERVICE 能力或 root 权限。_run.sh 会自动尝试:
sudo setcap 'cap_net_bind_service=+ep' venv/bin/python3
如果 setcap 不可用或失败,建议使用 systemd 的 AmbientCapabilities=CAP_NET_BIND_SERVICE:
[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/opt/micro_servers/redirect80/_run.sh
在 core 的 init.txt 中
bash /opt/micro_servers/redirect80/_run.sh
建议放在 waf 之前:
bash /opt/micro_servers/db/_run.sh
bash /opt/micro_servers/confs/_run.sh
bash /opt/micro_servers/redirect80/_run.sh # ← 80→443 重定向
bash /opt/micro_servers/waf/_run.sh
bash /opt/micro_servers/gateway/_run.sh
...
端口一览
| 端口 | 绑定地址 | 说明 |
|---|---|---|
| 80 | 0.0.0.0 | HTTP 入口,301/308 → HTTPS :443 |
许可证
MIT License