生产环境配置 #
一、应用配置 #
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