diff --git a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go index 195c6184..6aec94b2 100644 --- a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go +++ b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go @@ -132,13 +132,6 @@ func (this *ClusterHelper) createSettingMenu(cluster *pb.NodeCluster, info *pb.F "isActive": false, }) - items = append(items, maps.Map{ - "name": "健康检查", - "url": "/clusters/cluster/settings/health?clusterId=" + clusterId, - "isActive": selectedItem == "health", - "isOn": info != nil && info.HealthCheckIsOn, - }) - items = append(items, maps.Map{ "name": "DNS设置", "url": "/clusters/cluster/settings/dns?clusterId=" + clusterId, @@ -146,6 +139,13 @@ func (this *ClusterHelper) createSettingMenu(cluster *pb.NodeCluster, info *pb.F "isOn": cluster.DnsDomainId > 0 || len(cluster.DnsName) > 0, }) + items = append(items, maps.Map{ + "name": "健康检查", + "url": "/clusters/cluster/settings/health?clusterId=" + clusterId, + "isActive": selectedItem == "health", + "isOn": info != nil && info.HealthCheckIsOn, + }) + items = append(items, maps.Map{ "name": "DDoS防护", "url": "/clusters/cluster/settings/ddos-protection?clusterId=" + clusterId, diff --git a/internal/web/actions/default/servers/addServerNamePopup.go b/internal/web/actions/default/servers/addServerNamePopup.go index 73f4ec35..09bfe70a 100644 --- a/internal/web/actions/default/servers/addServerNamePopup.go +++ b/internal/web/actions/default/servers/addServerNamePopup.go @@ -4,6 +4,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/maps" + "net/url" "regexp" "strings" ) @@ -29,11 +30,25 @@ func (this *AddServerNamePopupAction) RunPost(params struct { Must *actions.Must }) { if params.Mode == "single" { + var serverName = params.ServerName + + // 去除空格 + serverName = regexp.MustCompile(`\s+`).ReplaceAllString(serverName, "") + + // 处理URL + if regexp.MustCompile(`^(?i)(http|https|ftp)://`).MatchString(serverName) { + u, err := url.Parse(serverName) + if err == nil && len(u.Host) > 0 { + serverName = u.Host + } + } + params.Must. - Field("serverName", params.ServerName). + Field("serverName", serverName). Require("请输入域名") + this.Data["serverName"] = maps.Map{ - "name": params.ServerName, + "name": serverName, "type": "full", } } else if params.Mode == "multiple" { @@ -41,14 +56,23 @@ func (this *AddServerNamePopupAction) RunPost(params struct { this.FailField("serverNames", "请输入至少域名") } - serverNames := []string{} + var serverNames = []string{} for _, line := range strings.Split(params.ServerNames, "\n") { - line := strings.TrimSpace(line) - line = regexp.MustCompile(`\s+`).ReplaceAllString(line, "") - if len(line) == 0 { + var serverName = strings.TrimSpace(line) + serverName = regexp.MustCompile(`\s+`).ReplaceAllString(serverName, "") + if len(serverName) == 0 { continue } - serverNames = append(serverNames, line) + + // 处理URL + if regexp.MustCompile(`^(?i)(http|https|ftp)://`).MatchString(serverName) { + u, err := url.Parse(serverName) + if err == nil && len(u.Host) > 0 { + serverName = u.Host + } + } + + serverNames = append(serverNames, serverName) } this.Data["serverName"] = maps.Map{ "name": "", diff --git a/internal/web/actions/default/servers/components/cache/batch/index.go b/internal/web/actions/default/servers/components/cache/batch/index.go index 48c4deec..b665f017 100644 --- a/internal/web/actions/default/servers/components/cache/batch/index.go +++ b/internal/web/actions/default/servers/components/cache/batch/index.go @@ -21,7 +21,9 @@ func (this *IndexAction) Init() { this.Nav("", "", "purge") } -func (this *IndexAction) RunGet(params struct{}) { +func (this *IndexAction) RunGet(params struct { + KeyType string +}) { // 初始化菜单数据 err := InitMenu(this.Parent()) if err != nil { @@ -29,6 +31,8 @@ func (this *IndexAction) RunGet(params struct{}) { return } + this.Data["keyType"] = params.KeyType + this.Show() } diff --git a/web/public/js/components/plans/plan-bandwidth-ranges.js b/web/public/js/components/plans/plan-bandwidth-ranges.js index 9d939027..f1300ba8 100644 --- a/web/public/js/components/plans/plan-bandwidth-ranges.js +++ b/web/public/js/components/plans/plan-bandwidth-ranges.js @@ -44,6 +44,9 @@ Vue.component("plan-bandwidth-ranges", { return -1 } if (v1.minMB == v2.minMB) { + if (v2.maxMB == 0 || v1.maxMB < v2.maxMB) { + return -1 + } return 0 } return 1 diff --git a/web/public/js/components/server/reverse-proxy-box.js b/web/public/js/components/server/reverse-proxy-box.js index 382ba267..15e98db6 100644 --- a/web/public/js/components/server/reverse-proxy-box.js +++ b/web/public/js/components/server/reverse-proxy-box.js @@ -183,7 +183,7 @@ Vue.component("reverse-proxy-box", {
选中后表示移除回源主机名中的端口部分。
选中后,表示允许使用CNAME直接访问网站服务;如果取消选中,则表示CNAME只作为DNS解析记录使用。
+每个DNS服务商或者账号的TTL限制各有不同,请注意取值范围。0表示使用默认。
选中后,表示允许使用CNAME直接访问网站服务;如果取消选中,则表示CNAME只作为DNS解析记录使用。
-请输入单个域名。
+请输入单个域名,域名中不能包含
每行一个域名。
+每行一个域名,域名中不能包含
保持缓存文件句柄,提升缓存文件打开速度,建议数量不超过缓存文件数量的10%。
+保持在内存中的缓存文件句柄的数量,提升缓存文件打开速度,建议数量不超过缓存文件数量的十分之一。
保持缓存文件句柄,提升缓存文件打开速度,建议数量是缓存文件数量的10%。
+保持在内存中的缓存文件句柄的数量,提升缓存文件打开速度,建议数量不超过缓存文件数量的十分之一。