diff --git a/pkg/nodeconfigs/node_config.go b/pkg/nodeconfigs/node_config.go index 7f939d8..9f608e4 100644 --- a/pkg/nodeconfigs/node_config.go +++ b/pkg/nodeconfigs/node_config.go @@ -100,10 +100,12 @@ func (this *NodeConfig) Init() (err error, serverErrors []*ServerError) { // servers for _, server := range this.Servers { - err = server.Init() - if err != nil { + errs := server.Init() + if len(errs) > 0 { // 这里不返回错误,而是继续往下,防止单个服务错误而影响其他服务 - serverErrors = append(serverErrors, NewServerError(server.Id, "server '"+strconv.FormatInt(server.Id, 10)+"' init failed: "+err.Error())) + for _, serverErr := range errs { + serverErrors = append(serverErrors, NewServerError(server.Id, "server '"+strconv.FormatInt(server.Id, 10)+"' init failed: "+serverErr.Error())) + } } } diff --git a/pkg/serverconfigs/server_config.go b/pkg/serverconfigs/server_config.go index 925517c..e10cff0 100644 --- a/pkg/serverconfigs/server_config.go +++ b/pkg/serverconfigs/server_config.go @@ -68,7 +68,7 @@ func NewServerConfig() *ServerConfig { return &ServerConfig{} } -func (this *ServerConfig) Init() error { +func (this *ServerConfig) Init() (results []error) { // 分解Group if this.Group != nil && this.Group.IsOn { // reverse proxy @@ -166,63 +166,63 @@ func (this *ServerConfig) Init() error { if this.HTTP != nil { err := this.HTTP.Init() if err != nil { - return err + results = append(results, err) } } if this.HTTPS != nil { err := this.HTTPS.Init() if err != nil { - return err + results = append(results, err) } } if this.TCP != nil { err := this.TCP.Init() if err != nil { - return err + results = append(results, err) } } if this.TLS != nil { err := this.TLS.Init() if err != nil { - return err + results = append(results, err) } } if this.Unix != nil { err := this.Unix.Init() if err != nil { - return err + results = append(results, err) } } if this.UDP != nil { err := this.UDP.Init() if err != nil { - return err + results = append(results, err) } } if this.ReverseProxyRef != nil { err := this.ReverseProxyRef.Init() if err != nil { - return err + results = append(results, err) } } if this.ReverseProxy != nil { err := this.ReverseProxy.Init() if err != nil { - return err + results = append(results, err) } } if this.Web != nil { err := this.Web.Init() if err != nil { - return err + results = append(results, err) } } @@ -230,7 +230,7 @@ func (this *ServerConfig) Init() error { if this.UserPlan != nil { err := this.UserPlan.Init() if err != nil { - return err + results = append(results, err) } if this.UserPlan.Plan != nil {