修复创建网站时不启用访问日志导致Websocket、统计等选项失效的问题

This commit is contained in:
刘祥超
2024-01-28 15:03:29 +08:00
parent 76451c9d27
commit faa34bc216
2 changed files with 103 additions and 108 deletions

View File

@@ -11,7 +11,6 @@ import (
"github.com/TeaOSLab/EdgeAdmin/internal/nodes" "github.com/TeaOSLab/EdgeAdmin/internal/nodes"
"github.com/TeaOSLab/EdgeAdmin/internal/utils" "github.com/TeaOSLab/EdgeAdmin/internal/utils"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web" _ "github.com/TeaOSLab/EdgeAdmin/internal/web"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/cluster/node/nodeutils"
_ "github.com/TeaOSLab/EdgeCommon/pkg/langs/messages" _ "github.com/TeaOSLab/EdgeCommon/pkg/langs/messages"
"github.com/iwind/TeaGo/Tea" "github.com/iwind/TeaGo/Tea"
_ "github.com/iwind/TeaGo/bootstrap" _ "github.com/iwind/TeaGo/bootstrap"
@@ -180,14 +179,6 @@ func main() {
log.Println("restarting ...") log.Println("restarting ...")
app.RunRestart() app.RunRestart()
}) })
app.On("install-local-node", func() {
err := nodeutils.InstallLocalNode()
if err != nil {
fmt.Println("[ERROR]" + err.Error())
return
}
fmt.Println("success")
})
app.Run(func() { app.Run(func() {
var adminNode = nodes.NewAdminNode() var adminNode = nodes.NewAdminNode()
adminNode.Run() adminNode.Run()

View File

@@ -11,7 +11,6 @@ import (
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs"
"github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/logs"
"github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types" "github.com/iwind/TeaGo/types"
"strings" "strings"
@@ -454,15 +453,16 @@ func (this *CreateAction) RunPost(params struct {
// 开启访问日志和Websocket // 开启访问日志和Websocket
if params.ServerType == serverconfigs.ServerTypeHTTPProxy { if params.ServerType == serverconfigs.ServerTypeHTTPProxy {
webConfig, err := dao.SharedHTTPWebDAO.FindWebConfigWithServerId(this.AdminContext(), serverId) webConfig, findErr := dao.SharedHTTPWebDAO.FindWebConfigWithServerId(this.AdminContext(), serverId)
if err != nil { if findErr != nil {
logs.Error(err) this.ErrorPage(findErr)
} else { return
// 访问日志 }
if params.AccessLogIsOn { // 访问日志
_, err = this.RPC().HTTPWebRPC().UpdateHTTPWebAccessLog(this.AdminContext(), &pb.UpdateHTTPWebAccessLogRequest{ if params.AccessLogIsOn {
HttpWebId: webConfig.Id, _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebAccessLog(this.AdminContext(), &pb.UpdateHTTPWebAccessLogRequest{
AccessLogJSON: []byte(`{ HttpWebId: webConfig.Id,
AccessLogJSON: []byte(`{
"isPrior": false, "isPrior": false,
"isOn": true, "isOn": true,
"fields": [1, 2, 6, 7], "fields": [1, 2, 6, 7],
@@ -477,90 +477,94 @@ func (this *CreateAction) RunPost(params struct {
"firewallOnly": false "firewallOnly": false
}`), }`),
}) })
if err != nil { if err != nil {
logs.Error(err) this.ErrorPage(err)
} return
} }
}
// websocket // websocket
if params.WebsocketIsOn { if params.WebsocketIsOn {
createWebSocketResp, err := this.RPC().HTTPWebsocketRPC().CreateHTTPWebsocket(this.AdminContext(), &pb.CreateHTTPWebsocketRequest{ createWebSocketResp, err := this.RPC().HTTPWebsocketRPC().CreateHTTPWebsocket(this.AdminContext(), &pb.CreateHTTPWebsocketRequest{
HandshakeTimeoutJSON: []byte(`{ HandshakeTimeoutJSON: []byte(`{
"count": 30, "count": 30,
"unit": "second" "unit": "second"
}`), }`),
AllowAllOrigins: true, AllowAllOrigins: true,
AllowedOrigins: nil, AllowedOrigins: nil,
RequestSameOrigin: true, RequestSameOrigin: true,
RequestOrigin: "", RequestOrigin: "",
}) })
if err != nil { if err != nil {
logs.Error(err) this.ErrorPage(err)
} else { return
websocketId := createWebSocketResp.WebsocketId }
_, err = this.RPC().HTTPWebRPC().UpdateHTTPWebWebsocket(this.AdminContext(), &pb.UpdateHTTPWebWebsocketRequest{
HttpWebId: webConfig.Id, websocketId := createWebSocketResp.WebsocketId
WebsocketJSON: []byte(` { _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebWebsocket(this.AdminContext(), &pb.UpdateHTTPWebWebsocketRequest{
HttpWebId: webConfig.Id,
WebsocketJSON: []byte(`{
"isPrior": false, "isPrior": false,
"isOn": true, "isOn": true,
"websocketId": ` + types.String(websocketId) + ` "websocketId": ` + types.String(websocketId) + `
}`), }`),
}) })
if err != nil { if err != nil {
logs.Error(err) this.ErrorPage(err)
} return
}
} }
}
// cache // cache
if params.CacheIsOn { if params.CacheIsOn {
var cacheConfig = &serverconfigs.HTTPCacheConfig{ var cacheConfig = &serverconfigs.HTTPCacheConfig{
IsPrior: false, IsPrior: false,
IsOn: true, IsOn: true,
AddStatusHeader: true, AddStatusHeader: true,
PurgeIsOn: false, PurgeIsOn: false,
PurgeKey: "", PurgeKey: "",
CacheRefs: []*serverconfigs.HTTPCacheRef{}, CacheRefs: []*serverconfigs.HTTPCacheRef{},
}
cacheConfigJSON, err := json.Marshal(cacheConfig)
if err != nil {
this.ErrorPage(err)
return
}
_, err = this.RPC().HTTPWebRPC().UpdateHTTPWebCache(this.AdminContext(), &pb.UpdateHTTPWebCacheRequest{
HttpWebId: webConfig.Id,
CacheJSON: cacheConfigJSON,
})
if err != nil {
this.ErrorPage(err)
return
}
} }
cacheConfigJSON, err := json.Marshal(cacheConfig)
// waf if err != nil {
if params.WafIsOn { this.ErrorPage(err)
var firewallRef = &firewallconfigs.HTTPFirewallRef{ return
IsPrior: false,
IsOn: true,
FirewallPolicyId: 0,
}
firewallRefJSON, err := json.Marshal(firewallRef)
if err != nil {
this.ErrorPage(err)
return
}
_, err = this.RPC().HTTPWebRPC().UpdateHTTPWebFirewall(this.AdminContext(), &pb.UpdateHTTPWebFirewallRequest{
HttpWebId: webConfig.Id,
FirewallJSON: firewallRefJSON,
})
if err != nil {
this.ErrorPage(err)
return
}
} }
_, err = this.RPC().HTTPWebRPC().UpdateHTTPWebCache(this.AdminContext(), &pb.UpdateHTTPWebCacheRequest{
HttpWebId: webConfig.Id,
CacheJSON: cacheConfigJSON,
})
if err != nil {
this.ErrorPage(err)
return
}
}
// remoteAddr // waf
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.AdminContext(), &pb.UpdateHTTPWebFirewallRequest{
HttpWebId: webConfig.Id,
FirewallJSON: firewallRefJSON,
})
if err != nil {
this.ErrorPage(err)
return
}
}
// remoteAddr
{
var remoteAddrConfig = &serverconfigs.HTTPRemoteAddrConfig{ var remoteAddrConfig = &serverconfigs.HTTPRemoteAddrConfig{
IsOn: true, IsOn: true,
Value: "${rawRemoteAddr}", Value: "${rawRemoteAddr}",
@@ -583,26 +587,26 @@ func (this *CreateAction) RunPost(params struct {
this.ErrorPage(err) this.ErrorPage(err)
return return
} }
}
// 统计 // 统计
if params.StatIsOn { if params.StatIsOn {
var statConfig = &serverconfigs.HTTPStatRef{ var statConfig = &serverconfigs.HTTPStatRef{
IsPrior: false, IsPrior: false,
IsOn: true, IsOn: true,
} }
statJSON, err := json.Marshal(statConfig) statJSON, err := json.Marshal(statConfig)
if err != nil { if err != nil {
this.ErrorPage(err) this.ErrorPage(err)
return return
} }
_, err = this.RPC().HTTPWebRPC().UpdateHTTPWebStat(this.AdminContext(), &pb.UpdateHTTPWebStatRequest{ _, err = this.RPC().HTTPWebRPC().UpdateHTTPWebStat(this.AdminContext(), &pb.UpdateHTTPWebStatRequest{
HttpWebId: webConfig.Id, HttpWebId: webConfig.Id,
StatJSON: statJSON, StatJSON: statJSON,
}) })
if err != nil { if err != nil {
this.ErrorPage(err) this.ErrorPage(err)
return return
}
} }
} }
} }