refactor(app): 改用 Servers[0] 替代旧版 Server 配置引用
将 cfg.Server 改为 cfg.Servers[0],适配多服务器配置格式。 HTTP/2、HTTP/3 等子模块配置同步更新。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
39371c7f06
commit
2bc13dd03b
@ -178,7 +178,7 @@ func (a *App) Run() int {
|
||||
})
|
||||
}
|
||||
} else {
|
||||
a.logger.LogStartup("监听地址", map[string]string{"listen": a.cfg.Server.Listen})
|
||||
a.logger.LogStartup("监听地址", map[string]string{"listen": a.cfg.Servers[0].Listen})
|
||||
}
|
||||
|
||||
// 创建 DNS 解析器(如果启用)
|
||||
@ -243,7 +243,7 @@ func (a *App) Run() int {
|
||||
}
|
||||
|
||||
// 创建并启动 HTTP/3 服务器(如果启用)
|
||||
if a.cfg.HTTP3.Enabled && a.cfg.Server.SSL.Cert != "" {
|
||||
if a.cfg.HTTP3.Enabled && a.cfg.Servers[0].SSL.Cert != "" {
|
||||
tlsConfig, err := a.srv.GetTLSConfig()
|
||||
if err != nil {
|
||||
a.logger.Error().Err(err).Msg("获取 TLS 配置失败,跳过 HTTP/3")
|
||||
@ -263,21 +263,21 @@ func (a *App) Run() int {
|
||||
}
|
||||
|
||||
// 创建并启动 HTTP/2 服务器(如果启用且配置了 TLS)
|
||||
if a.cfg.Server.SSL.HTTP2.Enabled && a.cfg.Server.SSL.Cert != "" {
|
||||
if a.cfg.Servers[0].SSL.HTTP2.Enabled && a.cfg.Servers[0].SSL.Cert != "" {
|
||||
tlsConfig, err := a.srv.GetTLSConfig()
|
||||
if err != nil {
|
||||
a.logger.Error().Err(err).Msg("获取 TLS 配置失败,跳过 HTTP/2")
|
||||
} else {
|
||||
// 创建 HTTP/2 服务器,共享同一个 handler
|
||||
a.http2Srv, err = http2.NewServer(&a.cfg.Server.SSL.HTTP2, a.srv.GetHandler(), tlsConfig)
|
||||
a.http2Srv, err = http2.NewServer(&a.cfg.Servers[0].SSL.HTTP2, a.srv.GetHandler(), tlsConfig)
|
||||
if err != nil {
|
||||
a.logger.Error().Err(err).Msg("创建 HTTP/2 服务器失败")
|
||||
} else {
|
||||
go func() {
|
||||
a.logger.LogStartup("HTTP/2 服务器启动中", map[string]string{
|
||||
"listen": a.cfg.Server.Listen,
|
||||
"max_concurrent_streams": fmt.Sprintf("%d", a.cfg.Server.SSL.HTTP2.MaxConcurrentStreams),
|
||||
"push_enabled": fmt.Sprintf("%t", a.cfg.Server.SSL.HTTP2.PushEnabled),
|
||||
"listen": a.cfg.Servers[0].Listen,
|
||||
"max_concurrent_streams": fmt.Sprintf("%d", a.cfg.Servers[0].SSL.HTTP2.MaxConcurrentStreams),
|
||||
"push_enabled": fmt.Sprintf("%t", a.cfg.Servers[0].SSL.HTTP2.PushEnabled),
|
||||
})
|
||||
// HTTP/2 服务器使用与主服务器相同的监听器
|
||||
// 通过 ALPN 协商自动处理协议选择
|
||||
|
||||
@ -246,7 +246,7 @@ func TestRun(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Errorf("读取生成的配置文件失败: %v", err)
|
||||
} else if !strings.Contains(string(data), "servers:") {
|
||||
t.Errorf("生成的配置文件应包含 'server:', 实际内容: %s", string(data)[:100])
|
||||
t.Errorf("生成的配置文件应包含 'servers:', 实际内容: %s", string(data)[:100])
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -420,8 +420,8 @@ func TestHandleSignal_SIGHUP(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
cfgPath := filepath.Join(tmpDir, "config.yaml")
|
||||
cfgContent := `
|
||||
server:
|
||||
listen: ":8080"
|
||||
servers:
|
||||
- listen: ":8080"
|
||||
logging:
|
||||
error:
|
||||
level: "info"
|
||||
@ -525,8 +525,8 @@ func TestReloadConfig_Success(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
cfgPath := filepath.Join(tmpDir, "config.yaml")
|
||||
cfgContent := `
|
||||
server:
|
||||
listen: ":9090"
|
||||
servers:
|
||||
- listen: ":9090"
|
||||
logging:
|
||||
error:
|
||||
level: "debug"
|
||||
@ -691,8 +691,8 @@ func TestReloadConfig_WithValidConfig(t *testing.T) {
|
||||
// 创建第一个配置
|
||||
cfgPath1 := filepath.Join(tmpDir, "config1.yaml")
|
||||
cfgContent1 := `
|
||||
server:
|
||||
listen: ":8080"
|
||||
servers:
|
||||
- listen: ":8080"
|
||||
logging:
|
||||
error:
|
||||
level: "info"
|
||||
@ -704,8 +704,8 @@ logging:
|
||||
// 创建第二个配置
|
||||
cfgPath2 := filepath.Join(tmpDir, "config2.yaml")
|
||||
cfgContent2 := `
|
||||
server:
|
||||
listen: ":9090"
|
||||
servers:
|
||||
- listen: ":9090"
|
||||
logging:
|
||||
error:
|
||||
level: "debug"
|
||||
@ -741,8 +741,8 @@ func TestHandleSignal_AllSignals(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
cfgPath := filepath.Join(tmpDir, "config.yaml")
|
||||
cfgContent := `
|
||||
server:
|
||||
listen: ":8080"
|
||||
servers:
|
||||
- listen: ":8080"
|
||||
logging:
|
||||
error:
|
||||
level: "info"
|
||||
|
||||
@ -127,7 +127,7 @@ func (a *App) Run() int {
|
||||
}
|
||||
|
||||
a.logger.LogStartup("配置加载成功", map[string]string{"config_path": a.cfgPath})
|
||||
a.logger.LogStartup("监听地址", map[string]string{"listen": a.cfg.Server.Listen})
|
||||
a.logger.LogStartup("监听地址", map[string]string{"listen": a.cfg.Servers[0].Listen})
|
||||
|
||||
if a.cfg.Resolver.Enabled {
|
||||
a.resv = resolver.New(&a.cfg.Resolver)
|
||||
@ -175,7 +175,7 @@ func (a *App) Run() int {
|
||||
}
|
||||
|
||||
// HTTP/3 服务器
|
||||
if a.cfg.HTTP3.Enabled && a.cfg.Server.SSL.Cert != "" {
|
||||
if a.cfg.HTTP3.Enabled && a.cfg.Servers[0].SSL.Cert != "" {
|
||||
tlsConfig, err := a.srv.GetTLSConfig()
|
||||
if err != nil {
|
||||
a.logger.Error().Err(err).Msg("获取 TLS 配置失败,跳过 HTTP/3")
|
||||
@ -195,20 +195,20 @@ func (a *App) Run() int {
|
||||
}
|
||||
|
||||
// HTTP/2 服务器
|
||||
if a.cfg.Server.SSL.HTTP2.Enabled && a.cfg.Server.SSL.Cert != "" {
|
||||
if a.cfg.Servers[0].SSL.HTTP2.Enabled && a.cfg.Servers[0].SSL.Cert != "" {
|
||||
tlsConfig, err := a.srv.GetTLSConfig()
|
||||
if err != nil {
|
||||
a.logger.Error().Err(err).Msg("获取 TLS 配置失败,跳过 HTTP/2")
|
||||
} else {
|
||||
a.http2Srv, err = http2.NewServer(&a.cfg.Server.SSL.HTTP2, a.srv.GetHandler(), tlsConfig)
|
||||
a.http2Srv, err = http2.NewServer(&a.cfg.Servers[0].SSL.HTTP2, a.srv.GetHandler(), tlsConfig)
|
||||
if err != nil {
|
||||
a.logger.Error().Err(err).Msg("创建 HTTP/2 服务器失败")
|
||||
} else {
|
||||
go func() {
|
||||
a.logger.LogStartup("HTTP/2 服务器启动中", map[string]string{
|
||||
"listen": a.cfg.Server.Listen,
|
||||
"max_concurrent_streams": fmt.Sprintf("%d", a.cfg.Server.SSL.HTTP2.MaxConcurrentStreams),
|
||||
"push_enabled": fmt.Sprintf("%t", a.cfg.Server.SSL.HTTP2.PushEnabled),
|
||||
"listen": a.cfg.Servers[0].Listen,
|
||||
"max_concurrent_streams": fmt.Sprintf("%d", a.cfg.Servers[0].SSL.HTTP2.MaxConcurrentStreams),
|
||||
"push_enabled": fmt.Sprintf("%t", a.cfg.Servers[0].SSL.HTTP2.PushEnabled),
|
||||
})
|
||||
listeners := a.srv.GetListeners()
|
||||
if len(listeners) > 0 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user