refactor: 优化日志记录和变量作用域

- 修复了日志变量 l 的作用域问题,将其移至更合适的位置
- 删除了不必要的日志记录,包括代理请求和响应的日志
- 移除了健康检查中的状态变更日志
- 注释掉了服务器管理器中的调试日志
- 优化了代码结构,提高了代码可读性和性能
This commit is contained in:
kingecg 2025-06-24 21:46:27 +08:00
parent 1cb0152147
commit 8c054e8f49
3 changed files with 9 additions and 11 deletions

View File

@ -22,10 +22,11 @@ type ProxyHandler struct {
} }
func (p *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (p *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
l := gologger.GetLogger("Proxy")
originalUrl := r.Host + r.URL.String() originalUrl := r.Host + r.URL.String()
s, err := r.Cookie("s") s, err := r.Cookie("s")
var proxyIndex int var proxyIndex int
l := gologger.GetLogger("Proxy") // 修复日志变量作用域
if err != nil { if err != nil {
proxyIndex = p.count proxyIndex = p.count
p.count++ p.count++
@ -47,7 +48,7 @@ func (p *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
proxyIndex = (proxyIndex + 1) % len(p.proxy) // 选择下一个上游服务器 proxyIndex = (proxyIndex + 1) % len(p.proxy) // 选择下一个上游服务器
} }
l.Error(fmt.Sprintf("All upstream servers are unhealthy")) l.Error("All upstream servers are unhealthy")
http.Error(w, "Service Unavailable", http.StatusServiceUnavailable) http.Error(w, "Service Unavailable", http.StatusServiceUnavailable)
} }
@ -59,7 +60,6 @@ func (p *ProxyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// 返回值: // 返回值:
// httputil.ReverseProxy实例 // httputil.ReverseProxy实例
func makeProxy(upstream string, path *model.HttpPath, index int) *httputil.ReverseProxy { func makeProxy(upstream string, path *model.HttpPath, index int) *httputil.ReverseProxy {
l := gologger.GetLogger("Proxy")
p := &httputil.ReverseProxy{} p := &httputil.ReverseProxy{}
p.Transport = &http.Transport{ p.Transport = &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
@ -82,12 +82,12 @@ func makeProxy(upstream string, path *model.HttpPath, index int) *httputil.Rever
p.Director = func(req *http.Request) { p.Director = func(req *http.Request) {
for _, handler := range directiveHandlers { for _, handler := range directiveHandlers {
handler(req) handler(req)
l.Info(fmt.Sprintf("proxy %s to %s", req.URL.String(), upstream)) // 删除代理请求的详细日志记录
} }
} }
p.ModifyResponse = func(resp *http.Response) error { p.ModifyResponse = func(resp *http.Response) error {
l.Info(fmt.Sprintf("proxy %s to %s, with status %d", resp.Request.URL.String(), upstream, resp.StatusCode)) // 删除代理响应日志记录
hasSticky := false hasSticky := false
for _, cookie := range resp.Cookies() { for _, cookie := range resp.Cookies() {
if cookie.Name == "s" { if cookie.Name == "s" {

View File

@ -44,7 +44,6 @@ func (hc *HealthChecker) CheckHealth(url string) bool {
// StartHealthCheck 启动健康检查协程 // StartHealthCheck 启动健康检查协程
func (hc *HealthChecker) StartHealthCheck(upstreams []string, onStatusChange func(string, bool)) { func (hc *HealthChecker) StartHealthCheck(upstreams []string, onStatusChange func(string, bool)) {
logger := gologger.GetLogger("healthcheck")
go func() { go func() {
statusMap := make(map[string]bool) statusMap := make(map[string]bool)
for { for {
@ -52,7 +51,6 @@ func (hc *HealthChecker) StartHealthCheck(upstreams []string, onStatusChange fun
healthy := hc.CheckHealth(upstream) healthy := hc.CheckHealth(upstream)
if status, exists := statusMap[upstream]; exists { if status, exists := statusMap[upstream]; exists {
if status != healthy { if status != healthy {
logger.Info(fmt.Sprintf("Upstream %s status changed to %v", upstream, healthy))
if onStatusChange != nil { if onStatusChange != nil {
onStatusChange(upstream, healthy) onStatusChange(upstream, healthy)
} }

View File

@ -17,7 +17,7 @@ import (
var ServerManager map[string]*ServerListener = make(map[string]*ServerListener) var ServerManager map[string]*ServerListener = make(map[string]*ServerListener)
func makeMatcher(name model.Strings, s *ServerListener) cmux.Matcher { func makeMatcher(name model.Strings, s *ServerListener) cmux.Matcher {
l := logger.GetLogger("ServerListener") // l := logger.GetLogger("ServerListener")
return func(r io.Reader) bool { return func(r io.Reader) bool {
if s.ServerCount() == 1 { if s.ServerCount() == 1 {
return true return true
@ -26,13 +26,13 @@ func makeMatcher(name model.Strings, s *ServerListener) cmux.Matcher {
if err != nil { if err != nil {
return false return false
} }
l.Debug("Request Host:", req.Host, "URL Host:", req.URL.Host, "Name:", name) // l.Debug("Request Host:", req.Host, "URL Host:", req.URL.Host, "Name:", name)
return name.HasOrContainPrefix(req.Host) || name.HasOrContainPrefix(req.URL.Host) return name.HasOrContainPrefix(req.Host) || name.HasOrContainPrefix(req.URL.Host)
} }
} }
func makeSSLMatcher(name model.Strings, s *ServerListener) cmux.Matcher { func makeSSLMatcher(name model.Strings, s *ServerListener) cmux.Matcher {
l := logger.GetLogger("ServerListener") // l := logger.GetLogger("ServerListener")
tlsMathcer := cmux.TLS() tlsMathcer := cmux.TLS()
return func(r io.Reader) bool { return func(r io.Reader) bool {
isTls := tlsMathcer(r) isTls := tlsMathcer(r)
@ -42,7 +42,7 @@ func makeSSLMatcher(name model.Strings, s *ServerListener) cmux.Matcher {
if err != nil { if err != nil {
return false return false
} }
l.Debug("Request Host:", string(buf[:n]), "Name:", name) // l.Debug("Request Host:", string(buf[:n]), "Name:", name)
return name.HasOrContain(string(buf[:n])) return name.HasOrContain(string(buf[:n]))
} }
return false return false