From 85553bf5d95d4263332b6553da095f6549f09d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 23 May 2022 19:59:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=BA=90=E7=AB=99=E6=9C=89?= =?UTF-8?q?=E4=B8=93=E5=B1=9E=E5=9F=9F=E5=90=8D=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E7=9A=84=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/serverconfigs/reverse_proxy_config.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkg/serverconfigs/reverse_proxy_config.go b/pkg/serverconfigs/reverse_proxy_config.go index 237282b..a65a657 100644 --- a/pkg/serverconfigs/reverse_proxy_config.go +++ b/pkg/serverconfigs/reverse_proxy_config.go @@ -65,6 +65,7 @@ func (this *ReverseProxyConfig) Init() error { // 将源站分组 this.schedulingGroupMap = map[string]*SchedulingGroup{} + var hasDomainGroups = false for _, origin := range this.PrimaryOrigins { if len(origin.Domains) == 0 { group, ok := this.schedulingGroupMap[""] @@ -77,6 +78,7 @@ func (this *ReverseProxyConfig) Init() error { } group.PrimaryOrigins = append(group.PrimaryOrigins, origin) } else { + hasDomainGroups = true for _, domain := range origin.Domains { group, ok := this.schedulingGroupMap[domain] if !ok { @@ -102,6 +104,7 @@ func (this *ReverseProxyConfig) Init() error { } group.BackupOrigins = append(group.BackupOrigins, origin) } else { + hasDomainGroups = true for _, domain := range origin.Domains { group, ok := this.schedulingGroupMap[domain] if !ok { @@ -116,6 +119,23 @@ func (this *ReverseProxyConfig) Init() error { } } + // 再次分解 + if hasDomainGroups { + defaultGroup, ok := this.schedulingGroupMap[""] + if ok { + delete(this.schedulingGroupMap, "") + + for _, group := range this.schedulingGroupMap { + for _, origin := range defaultGroup.PrimaryOrigins { + group.PrimaryOrigins = append(group.PrimaryOrigins, origin) + } + for _, origin := range defaultGroup.BackupOrigins { + group.BackupOrigins = append(group.BackupOrigins, origin) + } + } + } + } + // 初始化分组 for _, group := range this.schedulingGroupMap { err := group.Init()