From 0c8e3e5c479b56d34af656c6d398935ea598e32b Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 30 Nov 2020 22:27:55 +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=E8=AF=B7=E6=B1=82=E4=B8=BB=E6=9C=BA=E5=90=8D=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locations/reverseProxy/setting.go | 17 ++++++--- .../server/settings/reverseProxy/setting.go | 17 ++++++--- .../js/components/server/origin-list-box.js | 4 +- .../js/components/server/reverse-proxy-box.js | 37 ++++++++++++++----- .../js/components/server/ssl-config-box.js | 2 +- .../reverseProxy/updateSchedulingPopup.html | 2 +- .../reverseProxy/updateSchedulingPopup.html | 2 +- 7 files changed, 57 insertions(+), 24 deletions(-) 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 70ea39b9..db30e501 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 @@ -6,6 +6,7 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/types" ) type SettingAction struct { @@ -62,6 +63,11 @@ func (this *SettingAction) RunPost(params struct { return } + err = reverseProxyConfig.Init() + if err != nil { + this.Fail("配置校验失败:" + err.Error()) + } + // 设置是否启用 _, err = this.RPC().HTTPLocationRPC().UpdateHTTPLocationReverseProxy(this.AdminContext(), &pb.UpdateHTTPLocationReverseProxyRequest{ LocationId: params.LocationId, @@ -74,11 +80,12 @@ func (this *SettingAction) RunPost(params struct { // 设置反向代理相关信息 _, err = this.RPC().ReverseProxyRPC().UpdateReverseProxy(this.AdminContext(), &pb.UpdateReverseProxyRequest{ - ReverseProxyId: reverseProxyConfig.Id, - RequestHost: reverseProxyConfig.RequestHost, - RequestURI: reverseProxyConfig.RequestURI, - StripPrefix: reverseProxyConfig.StripPrefix, - AutoFlush: reverseProxyConfig.AutoFlush, + ReverseProxyId: reverseProxyConfig.Id, + RequestHostType: types.Int32(reverseProxyConfig.RequestHostType), + RequestHost: reverseProxyConfig.RequestHost, + RequestURI: reverseProxyConfig.RequestURI, + StripPrefix: reverseProxyConfig.StripPrefix, + AutoFlush: reverseProxyConfig.AutoFlush, }) this.Success() 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 66f0db08..2f67d8ce 100644 --- a/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go +++ b/internal/web/actions/default/servers/server/settings/reverseProxy/setting.go @@ -6,6 +6,7 @@ import ( "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/types" ) type SettingAction struct { @@ -62,6 +63,11 @@ func (this *SettingAction) RunPost(params struct { return } + err = reverseProxyConfig.Init() + if err != nil { + this.Fail("配置校验失败:" + err.Error()) + } + // 设置是否启用 _, err = this.RPC().ServerRPC().UpdateServerReverseProxy(this.AdminContext(), &pb.UpdateServerReverseProxyRequest{ ServerId: params.ServerId, @@ -74,11 +80,12 @@ func (this *SettingAction) RunPost(params struct { // 设置反向代理相关信息 _, err = this.RPC().ReverseProxyRPC().UpdateReverseProxy(this.AdminContext(), &pb.UpdateReverseProxyRequest{ - ReverseProxyId: reverseProxyConfig.Id, - RequestHost: reverseProxyConfig.RequestHost, - RequestURI: reverseProxyConfig.RequestURI, - StripPrefix: reverseProxyConfig.StripPrefix, - AutoFlush: reverseProxyConfig.AutoFlush, + ReverseProxyId: reverseProxyConfig.Id, + RequestHostType: types.Int32(reverseProxyConfig.RequestHostType), + RequestHost: reverseProxyConfig.RequestHost, + RequestURI: reverseProxyConfig.RequestURI, + StripPrefix: reverseProxyConfig.StripPrefix, + AutoFlush: reverseProxyConfig.AutoFlush, }) this.Success() diff --git a/web/public/js/components/server/origin-list-box.js b/web/public/js/components/server/origin-list-box.js index d1711051..6dbcc9ed 100644 --- a/web/public/js/components/server/origin-list-box.js +++ b/web/public/js/components/server/origin-list-box.js @@ -77,12 +77,12 @@ Vue.component("origin-list-table", { - {{origin.addr}} + {{origin.addr}}
{{origin.name}}
- {{origin.weight}} + {{origin.weight}} diff --git a/web/public/js/components/server/reverse-proxy-box.js b/web/public/js/components/server/reverse-proxy-box.js index c693c1fd..0ea1376d 100644 --- a/web/public/js/components/server/reverse-proxy-box.js +++ b/web/public/js/components/server/reverse-proxy-box.js @@ -15,7 +15,9 @@ Vue.component("reverse-proxy-box", { reverseProxyConfig = { requestPath: "", stripPrefix: "", - requestURI: "" + requestURI: "", + requestHost: "", + requestHostType: 0 } } return { @@ -24,7 +26,16 @@ Vue.component("reverse-proxy-box", { advancedVisible: false } }, - methods: { + watch: { + "reverseProxyConfig.requestHostType": function (v) { + let requestHostType = parseInt(v) + if (isNaN(requestHostType)) { + requestHostType = 0 + } + this.reverseProxyConfig.requestHostType = requestHostType + } + }, + methods: { isOn: function () { return (!this.vIsLocation || this.reverseProxyRef.isPrior) && this.reverseProxyRef.isOn }, @@ -47,16 +58,24 @@ Vue.component("reverse-proxy-box", { + + 请求主机名(Host) + + 跟随代理服务   + 跟随源站   + 自定义 +
+ +
+

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

+ + - - 请求主机名(Host) - - -

请求后端服务器时的Host,用于修改后端服务器接收到的域名,默认和客户端请求的主机名一致,通常不必填写,支持请求变量。

- - 请求URI(RequestURI) diff --git a/web/public/js/components/server/ssl-config-box.js b/web/public/js/components/server/ssl-config-box.js index fed3d2ce..ace0b24e 100644 --- a/web/public/js/components/server/ssl-config-box.js +++ b/web/public/js/components/server/ssl-config-box.js @@ -316,7 +316,7 @@ Vue.component("ssl-config-box", { - +
用HTTP/2启用HTTP/2
diff --git a/web/views/@default/servers/server/settings/locations/reverseProxy/updateSchedulingPopup.html b/web/views/@default/servers/server/settings/locations/reverseProxy/updateSchedulingPopup.html index 76a41194..d79dde5a 100644 --- a/web/views/@default/servers/server/settings/locations/reverseProxy/updateSchedulingPopup.html +++ b/web/views/@default/servers/server/settings/locations/reverseProxy/updateSchedulingPopup.html @@ -52,7 +52,7 @@
参数名 -

记录或指定后端服务器的参数名,只能是英文字母和数字的组合,不允许有下划线(因为在HTTP Header中下划线是不标准的)

+

记录或指定源站的参数名,只能是英文字母和数字的组合,不允许有下划线(因为在HTTP Header中下划线是不标准的)

diff --git a/web/views/@default/servers/server/settings/reverseProxy/updateSchedulingPopup.html b/web/views/@default/servers/server/settings/reverseProxy/updateSchedulingPopup.html index 76a41194..d79dde5a 100644 --- a/web/views/@default/servers/server/settings/reverseProxy/updateSchedulingPopup.html +++ b/web/views/@default/servers/server/settings/reverseProxy/updateSchedulingPopup.html @@ -52,7 +52,7 @@ 参数名 -

记录或指定后端服务器的参数名,只能是英文字母和数字的组合,不允许有下划线(因为在HTTP Header中下划线是不标准的)

+

记录或指定源站的参数名,只能是英文字母和数字的组合,不允许有下划线(因为在HTTP Header中下划线是不标准的)