mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-04 05:00:25 +08:00
将全局设置的TCP相关设置移到“集群设置--网站设置”中
This commit is contained in:
@@ -122,6 +122,11 @@ func (this *IndexAction) RunPost(params struct {
|
|||||||
PerformanceAutoWriteTimeout bool
|
PerformanceAutoWriteTimeout bool
|
||||||
PerformanceDebug bool
|
PerformanceDebug bool
|
||||||
|
|
||||||
|
// TCP端口设置
|
||||||
|
TcpAllPortRangeMin int
|
||||||
|
TcpAllPortRangeMax int
|
||||||
|
TcpAllDenyPorts []int
|
||||||
|
|
||||||
Must *actions.Must
|
Must *actions.Must
|
||||||
CSRF *actionutils.CSRF
|
CSRF *actionutils.CSRF
|
||||||
}) {
|
}) {
|
||||||
@@ -197,6 +202,23 @@ func (this *IndexAction) RunPost(params struct {
|
|||||||
// 日志
|
// 日志
|
||||||
config.Log.RecordServerError = params.LogRecordServerError
|
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.AutoReadTimeout = params.PerformanceAutoReadTimeout
|
||||||
config.Performance.AutoWriteTimeout = params.PerformanceAutoWriteTimeout
|
config.Performance.AutoWriteTimeout = params.PerformanceAutoWriteTimeout
|
||||||
|
|||||||
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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()
|
|
||||||
}
|
|
||||||
@@ -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()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
@@ -37,7 +37,6 @@ import (
|
|||||||
// 服务相关
|
// 服务相关
|
||||||
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers"
|
_ "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/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"
|
||||||
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/cache/batch"
|
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/cache/batch"
|
||||||
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/log"
|
_ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/log"
|
||||||
|
|||||||
@@ -207,6 +207,34 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</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>
|
<h4>其他</h4>
|
||||||
<table class="ui table definition selectable">
|
<table class="ui table definition selectable">
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -1,3 +1,20 @@
|
|||||||
Tea.context(function () {
|
Tea.context(function () {
|
||||||
this.success = NotifyReloadSuccess("保存成功")
|
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
|
||||||
|
}
|
||||||
})
|
})
|
||||||
@@ -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>
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
})
|
|
||||||
Reference in New Issue
Block a user