From 84960de4a60229297b031eba24dafa4e866df17d Mon Sep 17 00:00:00 2001 From: kingecg Date: Tue, 24 Jun 2025 07:46:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(server):=20=E4=BC=98=E5=8C=96=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E9=85=8D=E7=BD=AE=E5=92=8C=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 www.teststatic.com 的端口为 8000 - 新增 www.a.com 的配置文件 - 更新 www.teststatic.com 的服务器配置,使用数组形式 - 在 LocalCertManager 中添加日志记录 - 优化 ServerManager 中的匹配逻辑,增加日志输出 --- include/http-jump.json | 2 +- include/www.a.com.json | 13 +++++++++++++ include/www.teststatic.com.json | 2 +- server/autossl.go | 1 + server/manager.go | 2 ++ 5 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 include/www.a.com.json diff --git a/include/http-jump.json b/include/http-jump.json index 94f5b45..c1e0a70 100644 --- a/include/http-jump.json +++ b/include/http-jump.json @@ -1,7 +1,7 @@ { "name": "http-jump", "server": "www.teststatic.com", - "port": 80, + "port": 8000, "directives":[ "Redirect https://www.teststatic.com:8088/" ], diff --git a/include/www.a.com.json b/include/www.a.com.json new file mode 100644 index 0000000..a093e9d --- /dev/null +++ b/include/www.a.com.json @@ -0,0 +1,13 @@ +{ + "name": "a", + "server": ["www.a.com"], + "port": 8088, + "enable_ssl":true, + "paths": [ + { + "path": "/", + "root": "./example", + "default": "index.html" + } + ] +} \ No newline at end of file diff --git a/include/www.teststatic.com.json b/include/www.teststatic.com.json index 59e567b..76056f9 100644 --- a/include/www.teststatic.com.json +++ b/include/www.teststatic.com.json @@ -1,6 +1,6 @@ { "name": "teststatic", - "server": "www.teststatic.com", + "server": ["www.teststatic.com"], "port": 8088, "enable_ssl":true, "paths": [ diff --git a/server/autossl.go b/server/autossl.go index 0e4f52d..8fb6dfd 100644 --- a/server/autossl.go +++ b/server/autossl.go @@ -16,6 +16,7 @@ type LocalCertManager struct { func (l *LocalCertManager) GetCertificate(hello *tls.ClientHelloInfo) (*tls.Certificate, error) { logger := gologger.GetLogger("autocert") + logger.Debug("GetCertificate") cert, err := l.Manager.GetCertificate(hello) if err != nil { logger.Error("GetCertificate", err) diff --git a/server/manager.go b/server/manager.go index 4506360..8278c77 100644 --- a/server/manager.go +++ b/server/manager.go @@ -17,6 +17,7 @@ import ( var ServerManager map[string]*ServerListener = make(map[string]*ServerListener) func makeMatcher(name model.Strings, s *ServerListener) cmux.Matcher { + l := logger.GetLogger("ServerListener") return func(r io.Reader) bool { if s.ServerCount() == 1 { return true @@ -25,6 +26,7 @@ func makeMatcher(name model.Strings, s *ServerListener) cmux.Matcher { if err != nil { return false } + l.Debug("Request Host:", req.Host, "URL Host:", req.URL.Host, "Name:", name) return name.HasOrContainPrefix(req.Host) || name.HasOrContainPrefix(req.URL.Host) } }