From 8def4d9d8f4105ed47a16acf48dbbddc081e6589 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 20 Aug 2023 15:49:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E5=90=91=E4=BB=A3=E7=90=86=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=98=AF=E5=90=A6=E9=87=8D=E8=AF=9550X=E9=80=89?= =?UTF-8?q?=E9=A1=B9=EF=BC=8C=E9=BB=98=E8=AE=A4=E4=B8=BA=E5=90=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/settings/httpReverseProxy/index.go | 2 +- .../settings/httpReverseProxy/scheduling.go | 2 +- .../group/settings/httpReverseProxy/setting.go | 7 ++++--- .../group/settings/tcpReverseProxy/index.go | 2 +- .../settings/tcpReverseProxy/scheduling.go | 6 +++--- .../group/settings/tcpReverseProxy/setting.go | 7 ++++--- .../group/settings/udpReverseProxy/index.go | 2 +- .../settings/udpReverseProxy/scheduling.go | 2 +- .../group/settings/udpReverseProxy/setting.go | 4 ++-- .../settings/locations/reverseProxy/index.go | 2 +- .../locations/reverseProxy/scheduling.go | 8 ++++---- .../settings/locations/reverseProxy/setting.go | 5 +++-- .../server/settings/reverseProxy/index.go | 2 +- .../server/settings/reverseProxy/scheduling.go | 2 +- .../server/settings/reverseProxy/setting.go | 7 ++++--- .../reverseProxy/updateSchedulingPopup.go | 6 +++--- .../js/components/server/reverse-proxy-box.js | 17 +++++++++++++---- 17 files changed, 48 insertions(+), 35 deletions(-) diff --git a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/index.go b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/index.go index 20ad23b9..30c5d3f6 100644 --- a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/index.go +++ b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/index.go @@ -42,7 +42,7 @@ func (this *IndexAction) RunGet(params struct { } this.Data["reverseProxyRef"] = reverseProxyRef - var reverseProxy = &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/scheduling.go b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/scheduling.go index 1513fca9..bb4e445c 100644 --- a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/scheduling.go +++ b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/scheduling.go @@ -34,7 +34,7 @@ func (this *SchedulingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + reverseProxy := serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go index 748ae917..7c50088d 100644 --- a/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go +++ b/internal/web/actions/default/servers/groups/group/settings/httpReverseProxy/setting.go @@ -36,14 +36,14 @@ func (this *SettingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxyRef := &serverconfigs.ReverseProxyRef{} + var reverseProxyRef = &serverconfigs.ReverseProxyRef{} err = json.Unmarshal(reverseProxyResp.ReverseProxyRefJSON, reverseProxyRef) if err != nil { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -67,7 +67,7 @@ func (this *SettingAction) RunPost(params struct { // TODO 校验配置 - var reverseProxyConfig = &serverconfigs.ReverseProxyConfig{} + var reverseProxyConfig = serverconfigs.NewReverseProxyConfig() err := json.Unmarshal(params.ReverseProxyJSON, reverseProxyConfig) if err != nil { this.ErrorPage(err) @@ -110,6 +110,7 @@ func (this *SettingAction) RunPost(params struct { AddHeaders: reverseProxyConfig.AddHeaders, FollowRedirects: reverseProxyConfig.FollowRedirects, ProxyProtocolJSON: proxyProtocolJSON, + Retry50X: reverseProxyConfig.Retry50X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/index.go b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/index.go index 3d8423ce..2b8ff37c 100644 --- a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/index.go +++ b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/index.go @@ -42,7 +42,7 @@ func (this *IndexAction) RunGet(params struct { } this.Data["reverseProxyRef"] = reverseProxyRef - var reverseProxy = &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/scheduling.go b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/scheduling.go index c244033b..9a83d3d1 100644 --- a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/scheduling.go +++ b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/scheduling.go @@ -34,7 +34,7 @@ func (this *SchedulingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -42,8 +42,8 @@ func (this *SchedulingAction) RunGet(params struct { } this.Data["reverseProxyId"] = reverseProxy.Id - schedulingCode := reverseProxy.FindSchedulingConfig().Code - schedulingMap := schedulingconfigs.FindSchedulingType(schedulingCode) + var schedulingCode = reverseProxy.FindSchedulingConfig().Code + var schedulingMap = schedulingconfigs.FindSchedulingType(schedulingCode) if schedulingMap == nil { this.ErrorPage(errors.New("invalid scheduling code '" + schedulingCode + "'")) return diff --git a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go index 90e5c43e..94c619eb 100644 --- a/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go +++ b/internal/web/actions/default/servers/groups/group/settings/tcpReverseProxy/setting.go @@ -36,14 +36,14 @@ func (this *SettingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxyRef := &serverconfigs.ReverseProxyRef{} + var reverseProxyRef = &serverconfigs.ReverseProxyRef{} err = json.Unmarshal(reverseProxyResp.ReverseProxyRefJSON, reverseProxyRef) if err != nil { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -67,7 +67,7 @@ func (this *SettingAction) RunPost(params struct { // TODO 校验配置 - var reverseProxyConfig = &serverconfigs.ReverseProxyConfig{} + var reverseProxyConfig = serverconfigs.NewReverseProxyConfig() err := json.Unmarshal(params.ReverseProxyJSON, reverseProxyConfig) if err != nil { this.ErrorPage(err) @@ -110,6 +110,7 @@ func (this *SettingAction) RunPost(params struct { AddHeaders: reverseProxyConfig.AddHeaders, FollowRedirects: reverseProxyConfig.FollowRedirects, ProxyProtocolJSON: proxyProtocolJSON, + Retry50X: reverseProxyConfig.Retry50X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/index.go b/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/index.go index 05ae27dd..b14f4197 100644 --- a/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/index.go +++ b/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/index.go @@ -42,7 +42,7 @@ func (this *IndexAction) RunGet(params struct { } this.Data["reverseProxyRef"] = reverseProxyRef - var reverseProxy = &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/scheduling.go b/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/scheduling.go index f9a6e1a1..3ae936fa 100644 --- a/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/scheduling.go +++ b/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/scheduling.go @@ -34,7 +34,7 @@ func (this *SchedulingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/setting.go b/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/setting.go index ead738e8..398b60c3 100644 --- a/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/setting.go +++ b/internal/web/actions/default/servers/groups/group/settings/udpReverseProxy/setting.go @@ -43,7 +43,7 @@ func (this *SettingAction) RunGet(params struct { return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -67,7 +67,7 @@ func (this *SettingAction) RunPost(params struct { // TODO 校验配置 - reverseProxyConfig := &serverconfigs.ReverseProxyConfig{} + var reverseProxyConfig = serverconfigs.NewReverseProxyConfig() err := json.Unmarshal(params.ReverseProxyJSON, reverseProxyConfig) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/index.go b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/index.go index 3acd9d93..aa56be32 100644 --- a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/index.go +++ b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/index.go @@ -41,7 +41,7 @@ func (this *IndexAction) RunGet(params struct { } this.Data["reverseProxyRef"] = reverseProxyRef - var reverseProxy = &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/scheduling.go b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/scheduling.go index b0655c6d..5d16fd84 100644 --- a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/scheduling.go +++ b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/scheduling.go @@ -18,7 +18,7 @@ func (this *SchedulingAction) Init() { } func (this *SchedulingAction) RunGet(params struct { - ServerId int64 + ServerId int64 LocationId int64 }) { reverseProxyResp, err := this.RPC().HTTPLocationRPC().FindAndInitHTTPLocationReverseProxyConfig(this.AdminContext(), &pb.FindAndInitHTTPLocationReverseProxyConfigRequest{LocationId: params.LocationId}) @@ -26,7 +26,7 @@ func (this *SchedulingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -34,8 +34,8 @@ func (this *SchedulingAction) RunGet(params struct { } this.Data["reverseProxyId"] = reverseProxy.Id - schedulingCode := reverseProxy.FindSchedulingConfig().Code - schedulingMap := schedulingconfigs.FindSchedulingType(schedulingCode) + var schedulingCode = reverseProxy.FindSchedulingConfig().Code + var schedulingMap = schedulingconfigs.FindSchedulingType(schedulingCode) if schedulingMap == nil { this.ErrorPage(errors.New("invalid scheduling code '" + schedulingCode + "'")) return diff --git a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go index 091e9edc..0427f2da 100644 --- a/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go +++ b/internal/web/actions/default/servers/server/settings/locations/reverseProxy/setting.go @@ -34,7 +34,7 @@ func (this *SettingAction) RunGet(params struct { return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -58,7 +58,7 @@ func (this *SettingAction) RunPost(params struct { // TODO 校验配置 - var reverseProxyConfig = &serverconfigs.ReverseProxyConfig{} + var reverseProxyConfig = serverconfigs.NewReverseProxyConfig() err := json.Unmarshal(params.ReverseProxyJSON, reverseProxyConfig) if err != nil { this.ErrorPage(err) @@ -101,6 +101,7 @@ func (this *SettingAction) RunPost(params struct { AddHeaders: reverseProxyConfig.AddHeaders, FollowRedirects: reverseProxyConfig.FollowRedirects, ProxyProtocolJSON: proxyProtocolJSON, + Retry50X: reverseProxyConfig.Retry50X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/index.go b/internal/web/actions/default/servers/server/settings/reverseProxy/index.go index 8f733edb..f037ab36 100644 --- a/internal/web/actions/default/servers/server/settings/reverseProxy/index.go +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/index.go @@ -68,7 +68,7 @@ func (this *IndexAction) RunGet(params struct { } this.Data["reverseProxyRef"] = reverseProxyRef - var reverseProxy = &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/scheduling.go b/internal/web/actions/default/servers/server/settings/reverseProxy/scheduling.go index 8f051a59..2f3b41c5 100644 --- a/internal/web/actions/default/servers/server/settings/reverseProxy/scheduling.go +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/scheduling.go @@ -25,7 +25,7 @@ func (this *SchedulingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go b/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go index 9cb2727b..9112ca1f 100644 --- a/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go @@ -28,14 +28,14 @@ func (this *SettingAction) RunGet(params struct { this.ErrorPage(err) return } - reverseProxyRef := &serverconfigs.ReverseProxyRef{} + var reverseProxyRef = &serverconfigs.ReverseProxyRef{} err = json.Unmarshal(reverseProxyResp.ReverseProxyRefJSON, reverseProxyRef) if err != nil { this.ErrorPage(err) return } - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(reverseProxyResp.ReverseProxyJSON, reverseProxy) if err != nil { this.ErrorPage(err) @@ -57,7 +57,7 @@ func (this *SettingAction) RunPost(params struct { }) { defer this.CreateLogInfo(codes.ServerReverseProxy_LogUpdateServerReverseProxySettings, params.ServerId) - var reverseProxyConfig = &serverconfigs.ReverseProxyConfig{} + var reverseProxyConfig = serverconfigs.NewReverseProxyConfig() err := json.Unmarshal(params.ReverseProxyJSON, reverseProxyConfig) if err != nil { this.ErrorPage(err) @@ -133,6 +133,7 @@ func (this *SettingAction) RunPost(params struct { ProxyProtocolJSON: proxyProtocolJSON, FollowRedirects: reverseProxyConfig.FollowRedirects, RequestHostExcludingPort: reverseProxyConfig.RequestHostExcludingPort, + Retry50X: reverseProxyConfig.Retry50X, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/reverseProxy/updateSchedulingPopup.go b/internal/web/actions/default/servers/server/settings/reverseProxy/updateSchedulingPopup.go index c6a99c31..ce63deb4 100644 --- a/internal/web/actions/default/servers/server/settings/reverseProxy/updateSchedulingPopup.go +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/updateSchedulingPopup.go @@ -43,7 +43,7 @@ func (this *UpdateSchedulingPopupAction) RunGet(params struct { } configData := reverseProxyResp.ReverseProxyJSON - reverseProxyConfig := &serverconfigs.ReverseProxyConfig{} + var reverseProxyConfig = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(configData, reverseProxyConfig) if err != nil { this.ErrorPage(err) @@ -126,8 +126,8 @@ func (this *UpdateSchedulingPopupAction) RunPost(params struct { this.ErrorPage(err) return } - configData := reverseProxyResp.ReverseProxyJSON - reverseProxy := &serverconfigs.ReverseProxyConfig{} + var configData = reverseProxyResp.ReverseProxyJSON + var reverseProxy = serverconfigs.NewReverseProxyConfig() err = json.Unmarshal(configData, reverseProxy) if err != nil { this.ErrorPage(err) diff --git a/web/public/js/components/server/reverse-proxy-box.js b/web/public/js/components/server/reverse-proxy-box.js index ef73d032..2785c39b 100644 --- a/web/public/js/components/server/reverse-proxy-box.js +++ b/web/public/js/components/server/reverse-proxy-box.js @@ -25,7 +25,8 @@ Vue.component("reverse-proxy-box", { idleTimeout: {count: 0, unit: "second"}, maxConns: 0, maxIdleConns: 0, - followRedirects: false + followRedirects: false, + retry50X: true } } if (reverseProxyConfig.addHeaders == null) { @@ -165,6 +166,7 @@ Vue.component("reverse-proxy-box", { +

选中后,所有源站设置才会生效。

@@ -176,7 +178,7 @@ Vue.component("reverse-proxy-box", {
-

请求源站时的Host,用于修改源站接收到的域名 +

请求源站时的主机名(Host),用于修改源站接收到的域名 ,"跟随CDN域名"是指源站接收到的域名和当前CDN访问域名保持一致 ,"跟随源站"是指源站接收到的域名仍然是填写的源站地址中的信息,不随代理服务域名改变而改变 ,自定义Host内容中支持请求变量

@@ -199,7 +201,7 @@ Vue.component("reverse-proxy-box", { - 自动添加的Header + 自动添加报头
@@ -207,7 +209,7 @@ Vue.component("reverse-proxy-box", {
-

选中后,会自动向源站请求添加这些Header。

+

选中后,会自动向源站请求添加这些报头,以便于源站获取客户端信息。

@@ -298,6 +300,13 @@ Vue.component("reverse-proxy-box", {

源站保持等待的空闲超时时间,0表示使用默认时间。

+ + 自动重试50X + + +

选中后,表示当源站返回状态码为50X(比如502、504)时,自动重试。

+ + PROXY Protocol