diff --git a/main.go b/main.go index de6bce011e76eac769802f4593d45ca2c795153d..558a66aad70217818424a3ca67b93fd84d07b8b3 100644 --- a/main.go +++ b/main.go @@ -40,6 +40,16 @@ func main() { }() } + // 如果启用了Unix + if conf.UnixConfig.Listen != "" { + go func() { + util.Log().Info("开始监听 %s", conf.UnixConfig.Listen) + if err := api.RunUnix(conf.UnixConfig.Listen); err != nil { + util.Log().Error("无法监听[%s],%s", conf.UnixConfig.Listen, err) + } + }() + } + util.Log().Info("开始监听 %s", conf.SystemConfig.Listen) if err := api.Run(conf.SystemConfig.Listen); err != nil { util.Log().Error("无法监听[%s],%s", conf.SystemConfig.Listen, err) diff --git a/middleware/session.go b/middleware/session.go index 06b56e597f22750329db5f209604a2283eded64c..f89609d3ddc0ac9acc02ced421ef95e0912d7ee7 100644 --- a/middleware/session.go +++ b/middleware/session.go @@ -18,7 +18,7 @@ func Session(secret string) gin.HandlerFunc { // Redis设置不为空,且非测试模式时使用Redis if conf.RedisConfig.Server != "" && gin.Mode() != gin.TestMode { var err error - Store, err = redis.NewStoreWithDB(10, "tcp", conf.RedisConfig.Server, conf.RedisConfig.Password, conf.RedisConfig.DB, []byte(secret)) + Store, err = redis.NewStoreWithDB(10, conf.RedisConfig.Network, conf.RedisConfig.Server, conf.RedisConfig.Password, conf.RedisConfig.DB, []byte(secret)) if err != nil { util.Log().Panic("无法连接到 Redis:%s", err) } diff --git a/pkg/cache/driver.go b/pkg/cache/driver.go index 02265313fe7c3a4a99db0f37c0052b842f53d9b6..07d715223556c2c7b2e039dfbec4acd660bcd502 100644 --- a/pkg/cache/driver.go +++ b/pkg/cache/driver.go @@ -15,7 +15,7 @@ func Init() { if conf.RedisConfig.Server != "" && gin.Mode() != gin.TestMode { Store = NewRedisStore( 10, - "tcp", + conf.RedisConfig.Network, conf.RedisConfig.Server, conf.RedisConfig.Password, conf.RedisConfig.DB, diff --git a/pkg/conf/conf.go b/pkg/conf/conf.go index a19110b1f8fa3e34a17286e43614f898e78dbe3d..43f24814ff2a98dc0680212d5a8738a5cd806bf5 100644 --- a/pkg/conf/conf.go +++ b/pkg/conf/conf.go @@ -33,6 +33,10 @@ type ssl struct { Listen string `validate:"required"` } +type unix struct { + Listen string +} + // slave 作为slave存储端配置 type slave struct { Secret string `validate:"omitempty,gte=64"` @@ -57,6 +61,7 @@ type captcha struct { // redis 配置 type redis struct { + Network string Server string Password string DB string @@ -120,6 +125,7 @@ func Init(path string) { "Database": DatabaseConfig, "System": SystemConfig, "SSL": SSLConfig, + "Unix": UnixConfig, "Captcha": CaptchaConfig, "Redis": RedisConfig, "Thumbnail": ThumbConfig, diff --git a/pkg/conf/defaults.go b/pkg/conf/defaults.go index 406a2030d378044f9fe2cb0cd91f60bfadc92c63..3482cb8f19f64a38fad901ed244483bf3428af7b 100644 --- a/pkg/conf/defaults.go +++ b/pkg/conf/defaults.go @@ -4,6 +4,7 @@ import "github.com/mojocn/base64Captcha" // RedisConfig Redis服务器配置 var RedisConfig = &redis{ + Network: "tcp", Server: "", Password: "", DB: "0", @@ -65,3 +66,7 @@ var SSLConfig = &ssl{ CertPath: "", KeyPath: "", } + +var UnixConfig = &unix{ + Listen: "", +}