From eafac7a204939e5f362c8d2e0ea067aba5eb8187 Mon Sep 17 00:00:00 2001
From: robin
Date: Sat, 14 Feb 2026 17:28:12 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=B8=85=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/actions/default/servers/create.go | 175 ++++++++++--------
.../web/views/@default/servers/create.html | 30 ++-
EdgeUser/web/views/@default/servers/create.js | 7 +
3 files changed, 130 insertions(+), 82 deletions(-)
diff --git a/EdgeUser/internal/web/actions/default/servers/create.go b/EdgeUser/internal/web/actions/default/servers/create.go
index 95d44ed..57a6ab8 100644
--- a/EdgeUser/internal/web/actions/default/servers/create.go
+++ b/EdgeUser/internal/web/actions/default/servers/create.go
@@ -78,6 +78,14 @@ func (this *CreateAction) RunGet(params struct{}) {
this.Data["ossTypes"] = ossconfigs.FindAllOSSTypes()
this.Data["ossBucketParams"] = ossconfigs.FindAllOSSBucketParamDefinitions()
+ // 默认开启的选择
+ this.Data["accessLogIsOn"] = true
+ this.Data["websocketIsOn"] = true
+ this.Data["cacheIsOn"] = true
+ this.Data["wafIsOn"] = true
+ this.Data["remoteAddrIsOn"] = true
+ this.Data["statIsOn"] = true
+
this.Show()
}
@@ -93,6 +101,13 @@ func (this *CreateAction) RunPost(params struct {
GroupIds []int64
UserPlanId int64
+ AccessLogIsOn bool
+ WebsocketIsOn bool
+ CacheIsOn bool
+ WafIsOn bool
+ RemoteAddrIsOn bool
+ StatIsOn bool
+
Must *actions.Must
CSRF *actionutils.CSRF
}) {
@@ -556,9 +571,10 @@ func (this *CreateAction) RunPost(params struct {
// ========== 默认开启的功能 ==========
// 1. 访问日志
- _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebAccessLog(this.UserContext(), &pb.UpdateHTTPWebAccessLogRequest{
- HttpWebId: webId,
- AccessLogJSON: []byte(`{
+ if params.AccessLogIsOn {
+ _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebAccessLog(this.UserContext(), &pb.UpdateHTTPWebAccessLogRequest{
+ HttpWebId: webId,
+ AccessLogJSON: []byte(`{
"isPrior": false,
"isOn": true,
"fields": [1, 2, 6, 7],
@@ -571,90 +587,99 @@ func (this *CreateAction) RunPost(params struct {
"storagePolicies": [],
"firewallOnly": false
}`),
- })
- if err != nil {
- this.ErrorPage(err)
- return
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
}
// 2. WebSocket
- createWebSocketResp, err := this.RPC().HTTPWebsocketRPC().CreateHTTPWebsocket(this.UserContext(), &pb.CreateHTTPWebsocketRequest{
- HandshakeTimeoutJSON: []byte(`{"count": 30, "unit": "second"}`),
- AllowAllOrigins: true,
- AllowedOrigins: nil,
- RequestSameOrigin: true,
- RequestOrigin: "",
- })
- if err != nil {
- this.ErrorPage(err)
- return
- }
- _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebWebsocket(this.UserContext(), &pb.UpdateHTTPWebWebsocketRequest{
- HttpWebId: webId,
- WebsocketJSON: []byte(`{"isPrior": false, "isOn": true, "websocketId": ` + types.String(createWebSocketResp.WebsocketId) + `}`),
- })
- if err != nil {
- this.ErrorPage(err)
- return
+ if params.WebsocketIsOn {
+ createWebSocketResp, err := this.RPC().HTTPWebsocketRPC().CreateHTTPWebsocket(this.UserContext(), &pb.CreateHTTPWebsocketRequest{
+ HandshakeTimeoutJSON: []byte(`{"count": 30, "unit": "second"}`),
+ AllowAllOrigins: true,
+ AllowedOrigins: nil,
+ RequestSameOrigin: true,
+ RequestOrigin: "",
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebWebsocket(this.UserContext(), &pb.UpdateHTTPWebWebsocketRequest{
+ HttpWebId: webId,
+ WebsocketJSON: []byte(`{"isPrior": false, "isOn": true, "websocketId": ` + types.String(createWebSocketResp.WebsocketId) + `}`),
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
}
// 3. WAF 防火墙
- var firewallRef = &firewallconfigs.HTTPFirewallRef{
- IsPrior: false,
- IsOn: true,
- FirewallPolicyId: 0,
- }
- firewallRefJSON, err := json.Marshal(firewallRef)
- if err != nil {
- this.ErrorPage(err)
- return
- }
- _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebFirewall(this.UserContext(), &pb.UpdateHTTPWebFirewallRequest{
- HttpWebId: webId,
- FirewallJSON: firewallRefJSON,
- })
- if err != nil {
- this.ErrorPage(err)
- return
+ if params.WafIsOn {
+ var firewallRef = &firewallconfigs.HTTPFirewallRef{
+ IsPrior: false,
+ IsOn: true,
+ FirewallPolicyId: 0,
+ }
+ firewallRefJSON, err := json.Marshal(firewallRef)
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebFirewall(this.UserContext(), &pb.UpdateHTTPWebFirewallRequest{
+ HttpWebId: webId,
+ FirewallJSON: firewallRefJSON,
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
}
// 4. 从上级代理中读取IP
- var remoteAddrConfig = &serverconfigs.HTTPRemoteAddrConfig{
- IsOn: true,
- Value: "${remoteAddr}",
- Type: serverconfigs.HTTPRemoteAddrTypeProxy,
- }
- remoteAddrConfigJSON, err := json.Marshal(remoteAddrConfig)
- if err != nil {
- this.ErrorPage(err)
- return
- }
- _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebRemoteAddr(this.UserContext(), &pb.UpdateHTTPWebRemoteAddrRequest{
- HttpWebId: webId,
- RemoteAddrJSON: remoteAddrConfigJSON,
- })
- if err != nil {
- this.ErrorPage(err)
- return
+ if params.RemoteAddrIsOn {
+ var remoteAddrConfig = &serverconfigs.HTTPRemoteAddrConfig{
+ IsOn: true,
+ Value: "${remoteAddr}",
+ Type: serverconfigs.HTTPRemoteAddrTypeProxy,
+ }
+ remoteAddrConfigJSON, err := json.Marshal(remoteAddrConfig)
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebRemoteAddr(this.UserContext(), &pb.UpdateHTTPWebRemoteAddrRequest{
+ HttpWebId: webId,
+ RemoteAddrJSON: remoteAddrConfigJSON,
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
}
// 5. 统计
- var statConfig = &serverconfigs.HTTPStatRef{
- IsPrior: false,
- IsOn: true,
- }
- statJSON, err := json.Marshal(statConfig)
- if err != nil {
- this.ErrorPage(err)
- return
- }
- _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebStat(this.UserContext(), &pb.UpdateHTTPWebStatRequest{
- HttpWebId: webId,
- StatJSON: statJSON,
- })
- if err != nil {
- this.ErrorPage(err)
- return
+ if params.StatIsOn {
+ var statConfig = &serverconfigs.HTTPStatRef{
+ IsPrior: false,
+ IsOn: true,
+ }
+ statJSON, err := json.Marshal(statConfig)
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebStat(this.UserContext(), &pb.UpdateHTTPWebStatRequest{
+ HttpWebId: webId,
+ StatJSON: statJSON,
+ })
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
}
// 绑定套餐
diff --git a/EdgeUser/web/views/@default/servers/create.html b/EdgeUser/web/views/@default/servers/create.html
index 172dab1..f11e018 100644
--- a/EdgeUser/web/views/@default/servers/create.html
+++ b/EdgeUser/web/views/@default/servers/create.html
@@ -5,7 +5,8 @@
需要管理员在后台设置当前用户所属集群后才能继续操作。
-
+
\ No newline at end of file
diff --git a/EdgeUser/web/views/@default/servers/create.js b/EdgeUser/web/views/@default/servers/create.js
index ce4e267..f7ad1ed 100644
--- a/EdgeUser/web/views/@default/servers/create.js
+++ b/EdgeUser/web/views/@default/servers/create.js
@@ -3,6 +3,13 @@ Tea.context(function () {
this.requestHostType = 0
this.requestHost = ""
+ this.accessLogIsOn = true
+ this.websocketIsOn = true
+ this.cacheIsOn = true
+ this.wafIsOn = true
+ this.remoteAddrIsOn = true
+ this.statIsOn = true
+
this.success = function (resp) {
if (resp.data.hasOSS) {
NotifySuccess("保存成功", "/servers/server/settings/reverseProxy?serverId=" + resp.data.serverId)()