fix(server): track and close child TLS managers in multi-server mode
This commit is contained in:
parent
291cc74c2d
commit
f240892475
@ -43,6 +43,14 @@ func (s *Server) cleanupResources() {
|
||||
s.tlsManager.Close()
|
||||
}
|
||||
|
||||
// 关闭多服务器模式下创建的子 TLS 管理器
|
||||
s.tlsManagersMu.Lock()
|
||||
for _, m := range s.tlsManagers {
|
||||
m.Close()
|
||||
}
|
||||
s.tlsManagers = nil
|
||||
s.tlsManagersMu.Unlock()
|
||||
|
||||
// 关闭 AccessControl (释放 GeoIP 资源)
|
||||
s.accessControlsMu.Lock()
|
||||
for _, ac := range s.accessControls {
|
||||
|
||||
@ -63,6 +63,8 @@ type Server struct {
|
||||
handler fasthttp.RequestHandler
|
||||
resolver resolver.Resolver
|
||||
tlsManager *ssl.TLSManager
|
||||
tlsManagers []*ssl.TLSManager
|
||||
tlsManagersMu sync.Mutex
|
||||
accessLogMiddleware *accesslog.AccessLog
|
||||
luaEngine *lua.LuaEngine
|
||||
accessControl *security.AccessControl
|
||||
@ -768,6 +770,10 @@ func (s *Server) startMultiServerMode() error {
|
||||
return
|
||||
}
|
||||
fastSrv.TLSConfig = tlsManager.GetTLSConfig()
|
||||
|
||||
s.tlsManagersMu.Lock()
|
||||
s.tlsManagers = append(s.tlsManagers, tlsManager)
|
||||
s.tlsManagersMu.Unlock()
|
||||
}
|
||||
|
||||
s.fastServers[idx] = fastSrv
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user