From a4fb465a19d82b9445b809f9ae99eb68fd10ce50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 23 May 2022 11:17:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E4=B8=A5=E6=A0=BC=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E6=A8=A1=E5=BC=8F=E4=B8=8B=E4=BB=8D=E7=84=B6?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87=E8=8A=82=E7=82=B9IP?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=81=A5=E5=BA=B7=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/listener_http.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/nodes/listener_http.go b/internal/nodes/listener_http.go index 0904fa7..d97054c 100644 --- a/internal/nodes/listener_http.go +++ b/internal/nodes/listener_http.go @@ -3,6 +3,7 @@ package nodes import ( "context" "crypto/tls" + "github.com/TeaOSLab/EdgeCommon/pkg/nodeutils" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeNode/internal/remotelogs" "github.com/TeaOSLab/EdgeNode/internal/zero" @@ -170,8 +171,19 @@ func (this *HTTPListener) ServeHTTP(rawWriter http.ResponseWriter, rawReq *http. server, serverName := this.findNamedServer(domain) if server == nil { - server = this.findServerWithCNAME(domain) if server == nil { + // TODO 需要记录访问记录和防止CC + + // 是否为健康检查 + var healthCheckKey = rawReq.Header.Get(serverconfigs.HealthCheckHeaderName) + if len(healthCheckKey) > 0 { + _, err := nodeutils.Base64DecodeMap(healthCheckKey) + if err == nil { + rawWriter.WriteHeader(http.StatusOK) + return + } + } + // 严格匹配域名模式下,我们拒绝用户访问 if sharedNodeConfig.GlobalConfig != nil && sharedNodeConfig.GlobalConfig.HTTPAll.MatchDomainStrictly { httpAllConfig := sharedNodeConfig.GlobalConfig.HTTPAll @@ -205,7 +217,7 @@ func (this *HTTPListener) ServeHTTP(rawWriter http.ResponseWriter, rawReq *http. } // 包装新请求对象 - req := &HTTPRequest{ + var req = &HTTPRequest{ RawReq: rawReq, RawWriter: rawWriter, ReqServer: server,