更新代理节点配置,支持 Docker 模式下的路径管理,添加相关测试用例

This commit is contained in:
ryan
2026-03-09 23:43:33 +08:00
parent c4f314f2c5
commit ff09c2bf6c
7 changed files with 143 additions and 24 deletions
+7 -6
View File
@@ -70,11 +70,9 @@ go run .
"node_ip": "10.0.0.8",
"agent_version": "0.1.0",
"nginx_version": "1.25.5",
"nginx_path": "/opt/nginx/sbin/nginx",
"data_dir": "./data",
"nginx_container_name": "atsflare-nginx",
"nginx_docker_image": "nginx:stable-alpine",
"route_config_path": "/etc/nginx/conf.d/atsflare_routes.conf",
"state_path": "/var/lib/atsflare/agent-state.json",
"heartbeat_interval": 30000000000,
"sync_interval": 30000000000,
"request_timeout": 10000000000
@@ -85,10 +83,13 @@ go run .
- 时间字段单位是纳秒,因为当前实现直接使用 Go 的 `time.Duration` JSON 反序列化
- `agent_token` 必须与 Server 侧 `AGENT_TOKEN` 完全一致
- `route_config_path` 只应指向 ATSFlare 独立管理的路由文件
- `nginx_path` 用于显式指定独立 Nginx 可执行文件路径
- 如果未指定 `nginx_path`,Agent 会尝试通过 Docker 启动独立 Nginx 容器
- 生成资源默认统一落在 `./data`
- 如果未指定 `nginx_path`,Agent 会自动使用以下固定路径:
- `./data/etc/nginx/conf.d/atsflare_routes.conf`
- `./data/var/lib/atsflare/agent-state.json`
- 如果希望修改保存位置,可通过 `data_dir` 统一覆盖生成资源目录
- Docker 模式默认使用 `nginx_container_name` 和 `nginx_docker_image`
- `nginx_path` 仅在独立 Nginx 路径模式下使用;此时如有需要,仍可单独覆盖 `route_config_path` 和 `state_path`
### 3.2 启动 Agent
+1
View File
@@ -66,6 +66,7 @@ Agent 使用 Go 单体程序:
* 显式配置 `nginx_path` 时,直接调用该路径下的 Nginx
* 未配置 `nginx_path` 时,默认通过 Docker 运行独立 Nginx 容器
* 管理本机 Nginx 路由配置文件和 reload
* Agent 生成资源默认统一落在 `./data`,也允许通过单个基路径配置覆盖
### Nginx 管理边界
+1
View File
@@ -50,6 +50,7 @@ Agent 放在 `atsf_agent`,使用 Go 单体程序开发。
* 优先调用独立 Nginx,不依赖系统全局 Nginx
* 支持通过 `nginx_path` 显式指定独立 Nginx 可执行文件
* 未指定 `nginx_path` 时,默认通过 Docker 启动独立 Nginx 容器
* Agent 生成资源默认统一放在 `./data`,可通过 `data_dir` 统一覆盖
* 负责本机 Nginx 路由配置写入、校验、reload、状态上报
### 2.3 Nginx 配置边界