重构 Nginx 执行器,支持通过 Docker 启动独立 Nginx 容器,更新配置结构,完善相关文档和测试用例

This commit is contained in:
ryan
2026-03-09 23:35:34 +08:00
parent 65817ac9b6
commit c4f314f2c5
10 changed files with 288 additions and 30 deletions
+23 -14
View File
@@ -9,18 +9,21 @@ import (
)
type Config struct {
ServerURL string `json:"server_url"`
AgentToken string `json:"agent_token"`
NodeName string `json:"node_name"`
NodeIP string `json:"node_ip"`
AgentVersion string `json:"agent_version"`
NginxVersion string `json:"nginx_version"`
RouteConfigPath string `json:"route_config_path"`
StatePath string `json:"state_path"`
NginxBinary string `json:"nginx_binary"`
HeartbeatInterval time.Duration `json:"heartbeat_interval"`
SyncInterval time.Duration `json:"sync_interval"`
RequestTimeout time.Duration `json:"request_timeout"`
ServerURL string `json:"server_url"`
AgentToken string `json:"agent_token"`
NodeName string `json:"node_name"`
NodeIP string `json:"node_ip"`
AgentVersion string `json:"agent_version"`
NginxVersion string `json:"nginx_version"`
NginxPath string `json:"nginx_path"`
NginxContainerName string `json:"nginx_container_name"`
NginxDockerImage string `json:"nginx_docker_image"`
DockerBinary string `json:"docker_binary"`
RouteConfigPath string `json:"route_config_path"`
StatePath string `json:"state_path"`
HeartbeatInterval time.Duration `json:"heartbeat_interval"`
SyncInterval time.Duration `json:"sync_interval"`
RequestTimeout time.Duration `json:"request_timeout"`
}
func Load(path string) (*Config, error) {
@@ -49,8 +52,14 @@ func applyDefaults(cfg *Config) {
if cfg.StatePath == "" {
cfg.StatePath = filepath.Clean("./atsf_agent_state.json")
}
if cfg.NginxBinary == "" {
cfg.NginxBinary = "nginx"
if cfg.NginxContainerName == "" {
cfg.NginxContainerName = "atsflare-nginx"
}
if cfg.NginxDockerImage == "" {
cfg.NginxDockerImage = "nginx:stable-alpine"
}
if cfg.DockerBinary == "" {
cfg.DockerBinary = "docker"
}
if cfg.HeartbeatInterval <= 0 {
cfg.HeartbeatInterval = 30 * time.Second