From 54567db22f096f06017cc8f5422f82ec44b58767 Mon Sep 17 00:00:00 2001 From: CityFun <31820853+zhengkunwang223@users.noreply.github.com> Date: Mon, 7 Jul 2025 12:07:50 +0800 Subject: [PATCH] Fix: Resolved issue where domain binding failed in MCP due to OpenResty not using 80 port (#9435) Refs https://github.com/1Panel-dev/1Panel/issues/9431 --- agent/app/service/mcp_server.go | 12 ++++++++++-- agent/app/service/website_utils.go | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/agent/app/service/mcp_server.go b/agent/app/service/mcp_server.go index 19ea01088..4b76fa1de 100644 --- a/agent/app/service/mcp_server.go +++ b/agent/app/service/mcp_server.go @@ -283,11 +283,19 @@ func (m McpServerService) BindDomain(req request.McpBindDomain) error { } } group, _ := groupRepo.Get(groupRepo.WithByWebsiteDefault()) + + domain, err := ParseDomain(req.Domain) + if err != nil { + return err + } + if domain.Port == 0 { + domain.Port = nginxInstall.HttpPort + } createWebsiteReq := request.WebsiteCreate{ Domains: []request.WebsiteDomain{ { - Domain: req.Domain, - Port: 80, + Domain: domain.Domain, + Port: domain.Port, }, }, Alias: strings.ToLower(req.Domain), diff --git a/agent/app/service/website_utils.go b/agent/app/service/website_utils.go index 5404595da..8ebe3084f 100644 --- a/agent/app/service/website_utils.go +++ b/agent/app/service/website_utils.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "log" + "net" "os" "path" "path/filepath" @@ -1443,3 +1444,22 @@ func hasDefaultServer(params []string) bool { } return false } + +func ParseDomain(domain string) (*model.WebsiteDomain, error) { + host, portStr, err := net.SplitHostPort(domain) + if err != nil { + return &model.WebsiteDomain{ + Domain: domain, + Port: 0, + }, nil + } + + port, err := strconv.Atoi(portStr) + if err != nil { + return nil, fmt.Errorf("invalid port in domain %s: %v", domain, err) + } + return &model.WebsiteDomain{ + Domain: host, + Port: port, + }, nil +}