创建集群时增加“只允许绑定的域名访问”选项

This commit is contained in:
刘祥超
2022-09-16 19:33:57 +08:00
parent a2890c6cb0
commit ae15115af7
5 changed files with 40 additions and 40 deletions

View File

@@ -97,11 +97,6 @@ func (this *ClusterHelper) createSettingMenu(cluster *pb.NodeCluster, info *pb.F
"isActive": selectedItem == "basic",
"isOn": true,
})
items = append(items, maps.Map{
"name": "服务设置",
"url": "/clusters/cluster/settings/global-server-config?clusterId=" + clusterId,
"isActive": selectedItem == "globalServerConfig",
})
items = append(items, maps.Map{
"name": "缓存设置",
"url": "/clusters/cluster/settings/cache?clusterId=" + clusterId,
@@ -158,6 +153,12 @@ func (this *ClusterHelper) createSettingMenu(cluster *pb.NodeCluster, info *pb.F
"isOn": info != nil && info.HasDDoSProtection,
})
items = append(items, maps.Map{
"name": "服务设置",
"url": "/clusters/cluster/settings/global-server-config?clusterId=" + clusterId,
"isActive": selectedItem == "globalServerConfig",
})
items = append(items, maps.Map{
"name": "-",
})

View File

@@ -7,6 +7,7 @@ import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/dns/domains/domainutils"
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/iwind/TeaGo/actions"
)
@@ -55,6 +56,9 @@ func (this *CreateAction) RunPost(params struct {
// WAF策略
HttpFirewallPolicyId int64
// 服务配置
MatchDomainStrictly bool
// SSH相关
GrantId int64
InstallDir string
@@ -93,6 +97,15 @@ func (this *CreateAction) RunPost(params struct {
// TODO 检查DnsDomainId的有效性
// 全局服务配置
var globalServerConfig = serverconfigs.DefaultGlobalServerConfig()
globalServerConfig.HTTPAll.MatchDomainStrictly = params.MatchDomainStrictly
globalServerConfigJSON, err := json.Marshal(globalServerConfig)
if err != nil {
this.ErrorPage(err)
return
}
// 系统服务
var systemServices = map[string]any{}
if params.SystemdServiceIsOn {
@@ -107,15 +120,16 @@ func (this *CreateAction) RunPost(params struct {
}
createResp, err := this.RPC().NodeClusterRPC().CreateNodeCluster(this.AdminContext(), &pb.CreateNodeClusterRequest{
Name: params.Name,
NodeGrantId: params.GrantId,
InstallDir: params.InstallDir,
DnsDomainId: params.DnsDomainId,
DnsName: params.DnsName,
DnsTTL: params.DnsTTL,
HttpCachePolicyId: params.CachePolicyId,
HttpFirewallPolicyId: params.HttpFirewallPolicyId,
SystemServicesJSON: systemServicesJSON,
Name: params.Name,
NodeGrantId: params.GrantId,
InstallDir: params.InstallDir,
DnsDomainId: params.DnsDomainId,
DnsName: params.DnsName,
DnsTTL: params.DnsTTL,
HttpCachePolicyId: params.CachePolicyId,
HttpFirewallPolicyId: params.HttpFirewallPolicyId,
SystemServicesJSON: systemServicesJSON,
GlobalServerConfigJSON: globalServerConfigJSON,
})
if err != nil {
this.ErrorPage(err)

View File

@@ -7,7 +7,6 @@ import (
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps"
)
const (
@@ -65,7 +64,7 @@ func (this *IndexAction) RunPost(params struct {
DefaultDomain string
}) {
// 创建日志
defer this.CreateLog(oplogs.LevelInfo, "保存代理服务全局配置")
defer this.CreateLog(oplogs.LevelInfo, "保存网站服务全局配置")
if len(params.GlobalConfigJSON) == 0 {
this.Fail("错误的配置信息,请刷新当前页面后重试")
@@ -84,27 +83,6 @@ func (this *IndexAction) RunPost(params struct {
allowMismatchDomains = append(allowMismatchDomains, domain)
}
}
globalConfig.HTTPAll.AllowMismatchDomains = allowMismatchDomains
// 不匹配域名的动作
switch params.DomainMismatchAction {
case "close":
globalConfig.HTTPAll.DomainMismatchAction = &serverconfigs.DomainMismatchAction{
Code: "close",
Options: nil,
}
case "page":
if params.DomainMismatchActionPageStatusCode <= 0 {
params.DomainMismatchActionPageStatusCode = 404
}
globalConfig.HTTPAll.DomainMismatchAction = &serverconfigs.DomainMismatchAction{
Code: "page",
Options: maps.Map{
"statusCode": params.DomainMismatchActionPageStatusCode,
"contentHTML": params.DomainMismatchActionPageContentHTML,
},
}
}
// TCP端口范围
if params.TcpAllPortRangeMin < 1024 {