将全局设置的TCP相关设置移到“集群设置--网站设置”中

This commit is contained in:
GoEdgeLab
2023-09-18 16:55:40 +08:00
parent b62476b899
commit 76ab9cc7ae
9 changed files with 67 additions and 231 deletions

View File

@@ -122,6 +122,11 @@ func (this *IndexAction) RunPost(params struct {
PerformanceAutoWriteTimeout bool
PerformanceDebug bool
// TCP端口设置
TcpAllPortRangeMin int
TcpAllPortRangeMax int
TcpAllDenyPorts []int
Must *actions.Must
CSRF *actionutils.CSRF
}) {
@@ -197,6 +202,23 @@ func (this *IndexAction) RunPost(params struct {
// 日志
config.Log.RecordServerError = params.LogRecordServerError
// TCP
if params.TcpAllPortRangeMin < 1024 {
params.TcpAllPortRangeMin = 1024
}
if params.TcpAllPortRangeMax > 65534 {
params.TcpAllPortRangeMax = 65534
} else if params.TcpAllPortRangeMax < 1024 {
params.TcpAllPortRangeMax = 1024
}
if params.TcpAllPortRangeMin > params.TcpAllPortRangeMax {
params.TcpAllPortRangeMin, params.TcpAllPortRangeMax = params.TcpAllPortRangeMax, params.TcpAllPortRangeMin
}
config.TCPAll.DenyPorts = params.TcpAllDenyPorts
config.TCPAll.PortRangeMin = params.TcpAllPortRangeMin
config.TCPAll.PortRangeMax = params.TcpAllPortRangeMax
// 性能
config.Performance.AutoReadTimeout = params.PerformanceAutoReadTimeout
config.Performance.AutoWriteTimeout = params.PerformanceAutoWriteTimeout

View File

@@ -1,16 +0,0 @@
package components
import (
"github.com/iwind/TeaGo/actions"
)
type Helper struct {
}
func NewHelper() *Helper {
return &Helper{}
}
func (this *Helper) BeforeAction(action *actions.ActionObject) {
action.Data["teaMenu"] = "servers"
}

View File

@@ -1,115 +0,0 @@
package components
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/iwind/TeaGo/actions"
)
const (
SettingCodeServerGlobalConfig = "serverGlobalConfig"
)
type IndexAction struct {
actionutils.ParentAction
}
func (this *IndexAction) Init() {
this.Nav("", "component", "index")
this.SecondMenu("global")
}
func (this *IndexAction) RunGet(params struct{}) {
valueJSONResp, err := this.RPC().SysSettingRPC().ReadSysSetting(this.AdminContext(), &pb.ReadSysSettingRequest{Code: SettingCodeServerGlobalConfig})
if err != nil {
this.ErrorPage(err)
return
}
valueJSON := valueJSONResp.ValueJSON
globalConfig := &serverconfigs.GlobalConfig{}
if len(valueJSON) > 0 {
err = json.Unmarshal(valueJSON, globalConfig)
if err != nil {
this.ErrorPage(err)
return
}
}
this.Data["globalConfig"] = globalConfig
this.Show()
}
func (this *IndexAction) RunPost(params struct {
GlobalConfigJSON []byte
Must *actions.Must
// 不匹配域名相关
AllowMismatchDomains []string
DomainMismatchAction string
DomainMismatchActionPageStatusCode int
DomainMismatchActionPageContentHTML string
// TCP端口设置
TcpAllPortRangeMin int
TcpAllPortRangeMax int
TcpAllDenyPorts []int
DefaultDomain string
}) {
// 创建日志
defer this.CreateLogInfo(codes.Server_LogUpdateGlobalSettings)
if len(params.GlobalConfigJSON) == 0 {
this.Fail("错误的配置信息,请刷新当前页面后重试")
}
globalConfig := &serverconfigs.GlobalConfig{}
err := json.Unmarshal(params.GlobalConfigJSON, globalConfig)
if err != nil {
this.Fail("配置校验失败:" + err.Error())
}
// TCP端口范围
if params.TcpAllPortRangeMin < 1024 {
params.TcpAllPortRangeMin = 1024
}
if params.TcpAllPortRangeMax > 65534 {
params.TcpAllPortRangeMax = 65534
} else if params.TcpAllPortRangeMax < 1024 {
params.TcpAllPortRangeMax = 1024
}
if params.TcpAllPortRangeMin > params.TcpAllPortRangeMax {
params.TcpAllPortRangeMin, params.TcpAllPortRangeMax = params.TcpAllPortRangeMax, params.TcpAllPortRangeMin
}
globalConfig.TCPAll.DenyPorts = params.TcpAllDenyPorts
globalConfig.TCPAll.PortRangeMin = params.TcpAllPortRangeMin
globalConfig.TCPAll.PortRangeMax = params.TcpAllPortRangeMax
// 修改配置
globalConfigJSON, err := json.Marshal(globalConfig)
if err != nil {
this.ErrorPage(err)
return
}
_, err = this.RPC().SysSettingRPC().UpdateSysSetting(this.AdminContext(), &pb.UpdateSysSettingRequest{
Code: SettingCodeServerGlobalConfig,
ValueJSON: globalConfigJSON,
})
if err != nil {
this.ErrorPage(err)
return
}
// 通知更新
_, err = this.RPC().ServerRPC().NotifyServersChange(this.AdminContext(), &pb.NotifyServersChangeRequest{})
if err != nil {
this.ErrorPage(err)
return
}
this.Success()
}

View File

@@ -1,20 +0,0 @@
package components
import (
"github.com/TeaOSLab/EdgeAdmin/internal/configloaders"
"github.com/TeaOSLab/EdgeAdmin/internal/web/helpers"
"github.com/iwind/TeaGo"
)
func init() {
TeaGo.BeforeStart(func(server *TeaGo.Server) {
server.
Helper(helpers.NewUserMustAuth(configloaders.AdminModuleCodeServer)).
Data("teaMenu", "servers").
Data("teaSubMenu", "global").
Helper(NewHelper()).
Prefix("/servers/components").
GetPost("", new(IndexAction)).
EndAll()
})
}

View File

@@ -37,7 +37,6 @@ import (
// 服务相关
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/certs"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/cache"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/cache/batch"
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/log"

View File

@@ -207,6 +207,34 @@
</table>
</div>
<h4>TCP/UDP相关</h4>
<table class="ui table definition selectable">
<tr>
<td class="title">允许的端口范围</td>
<td>
<div class="ui fields inline">
<div class="ui field">
<input type="text" name="tcpAllPortRangeMin" maxlength="5" size="6" v-model="tcpAllPortRangeMin"/>
</div>
<div class="ui field">
-
</div>
<div class="ui field">
<input type="text" name="tcpAllPortRangeMax" maxlength="5" size="6" v-model="tcpAllPortRangeMax"/>
</div>
</div>
<p class="comment">用户创建TCP/TLS负载均衡服务时可以随机选择的端口范围最小不能小于1024最大不能大于65534。</p>
</td>
</tr>
<tr>
<td>排除的端口</td>
<td>
<values-box placeholder="端口" size="6" name="tcpAllDenyPorts" :values="tcpAllDenyPorts"></values-box>
<p class="comment">当为用户随机分配端口时要排除的端口。</p>
</td>
</tr>
</table>
<h4>其他</h4>
<table class="ui table definition selectable">
<tr>

View File

@@ -1,3 +1,20 @@
Tea.context(function () {
this.success = NotifyReloadSuccess("保存成功")
/**
* TCP端口
*/
this.tcpAllPortRangeMin = 10000
this.tcpAllPortRangeMax = 40000
if (this.config.tcpAll.portRangeMin > 0) {
this.tcpAllPortRangeMin = this.config.tcpAll.portRangeMin
}
if (this.config.tcpAll.portRangeMax > 0) {
this.tcpAllPortRangeMax = this.config.tcpAll.portRangeMax
}
this.tcpAllDenyPorts = []
if (this.config.tcpAll.denyPorts != null) {
this.tcpAllDenyPorts = this.config.tcpAll.denyPorts
}
})

View File

@@ -1,42 +0,0 @@
{$layout}
<div class="ui tabular menu tiny">
<a href="" class="item" :class="{active: tab == 'tcpPorts'}" @click.prevent="selectTab('tcpPorts')">TCP/TLS端口</a>
</div>
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
<input type="hidden" name="globalConfigJSON" :value="JSON.stringify(globalConfig)"/>
<!-- TCP 相关 -->
<div v-show="tab == 'tcpPorts'">
<table class="ui table definition selectable">
<tr>
<td class="title">允许的端口范围</td>
<td>
<div class="ui fields inline">
<div class="ui field">
<input type="text" name="tcpAllPortRangeMin" maxlength="5" size="6" v-model="tcpAllPortRangeMin"/>
</div>
<div class="ui field">
-
</div>
<div class="ui field">
<input type="text" name="tcpAllPortRangeMax" maxlength="5" size="6" v-model="tcpAllPortRangeMax"/>
</div>
</div>
<p class="comment">用户创建TCP/TLS负载均衡服务时可以随机选择的端口范围最小不能小于1024最大不能大于65534。</p>
</td>
</tr>
<tr>
<td>排除的端口</td>
<td>
<values-box placeholder="端口" size="6" name="tcpAllDenyPorts" :values="tcpAllDenyPorts"></values-box>
<p class="comment">当为用户随机分配端口时要排除的端口。</p>
</td>
</tr>
</table>
</div>
<div class="margin"></div>
<submit-btn v-show="tab != 'domainMatch'">保存</submit-btn>
</form>

View File

@@ -1,37 +0,0 @@
Tea.context(function () {
this.tab = "tcpPorts"
this.$delay(function () {
if (window.location.hash != null && window.location.hash.length > 1) {
this.selectTab(window.location.hash.substring(1))
}
})
this.selectTab = function (tab) {
this.tab = tab
window.location.hash = "#" + tab
}
this.success = function () {
teaweb.success("保存成功", function () {
teaweb.reload()
})
}
/**
* TCP端口
*/
this.tcpAllPortRangeMin = 10000
this.tcpAllPortRangeMax = 40000
if (this.globalConfig.tcpAll.portRangeMin > 0) {
this.tcpAllPortRangeMin = this.globalConfig.tcpAll.portRangeMin
}
if (this.globalConfig.tcpAll.portRangeMax > 0) {
this.tcpAllPortRangeMax = this.globalConfig.tcpAll.portRangeMax
}
this.tcpAllDenyPorts = []
if (this.globalConfig.tcpAll.denyPorts != null) {
this.tcpAllDenyPorts = this.globalConfig.tcpAll.denyPorts
}
})