生产环境配置 #

一、应用配置 #

1.1 Fiber配置 #

go
app := fiber.New(fiber.Config{
    Prefork:       true,
    StrictRouting: true,
    CaseSensitive: true,
    ReadTimeout:   10 * time.Second,
    WriteTimeout:  10 * time.Second,
    IdleTimeout:   120 * time.Second,
    ErrorHandler:  customErrorHandler,
})

1.2 环境变量 #

go
type Config struct {
    Port         string
    DatabaseURL  string
    RedisURL     string
    JWTSecret    string
    LogLevel     string
}

func LoadConfig() *Config {
    return &Config{
        Port:        getEnv("PORT", "3000"),
        DatabaseURL: getEnv("DATABASE_URL", ""),
        RedisURL:    getEnv("REDIS_URL", ""),
        JWTSecret:   getEnv("JWT_SECRET", ""),
        LogLevel:    getEnv("LOG_LEVEL", "info"),
    }
}

func getEnv(key, defaultValue string) string {
    if value := os.Getenv(key); value != "" {
        return value
    }
    return defaultValue
}

二、安全配置 #

2.1 安全中间件 #

go
app.Use(helmet.New())
app.Use(cors.New(cors.Config{
    AllowOrigins: os.Getenv("ALLOWED_ORIGINS"),
}))
app.Use(limiter.New(limiter.Config{
    Max: 100,
    Expiration: 1 * time.Minute,
}))

三、性能优化 #

3.1 启用Prefork #

go
app := fiber.New(fiber.Config{
    Prefork: true,
})

3.2 启用压缩 #

go
app.Use(compress.New(compress.Config{
    Level: compress.LevelBestSpeed,
}))

四、监控 #

4.1 健康检查 #

go
app.Get("/health", func(c *fiber.Ctx) error {
    return c.JSON(fiber.Map{
        "status": "healthy",
        "time":   time.Now(),
    })
})

五、总结 #

5.1 生产配置要点 #

要点 说明
Prefork 多进程模式
超时设置 防止请求卡住
安全中间件 保护应用
监控告警 实时监控

5.2 下一步 #

现在你已经掌握了生产环境配置,接下来让我们学习 RESTful API,开始实战案例!

最后更新:2026-03-28