fiber生产环境最小化安装只需引入fiber本体并显式按需添加依赖:禁用默认中间件与内置功能,手动配置json序列化器为goccy/go-json,避免group/static等高开销api,所有外部依赖(db、缓存等)在main中显式初始化并注入。

Fiber 生产环境最小化安装,核心就一条:只引入 fiber 本体 + 显式按需加依赖,不碰任何“开箱即用”全家桶。
删掉所有默认中间件和内置功能
Fiber 默认启用 Logger、Recover、Compression 等中间件,它们在生产中多数冗余,且增加内存分配与执行路径。最小化必须手动禁用:
- 用
fiber.New(fiber.Config{DisableStartupMessage: true})初始化,避免启动日志污染 stdout - 不要调用
app.Use(fiber.Logger())或app.Use(fiber.Recover())—— 错误应由上层反向代理(如 Nginx)或监控系统捕获 - 禁用压缩:
fiber.Config{DisableHeaderNormalizing: true, DisableDefaultDate: true, DisableDefaultContentType: true},减少 header 构造开销
路由注册只用 Get/Post 等基础方法,避开 Group 和 Static
app.Group() 和 app.Static() 内部做了路径预处理、文件系统探测、MIME 推导等操作,对纯 API 服务是纯负担:
- 静态资源交给 CDN 或 Nginx 处理,绝不 在 Fiber 中用
app.Static("/public", "./static") - 嵌套路由手写完整路径,比如用
app.Get("/api/v1/users", handler),而非api := app.Group("/api/v1"); api.Get("/users", handler) - 如果真要复用前缀逻辑,自己封装函数,不依赖框架 Group 机制
JSON 序列化换掉默认的 encoding/json
Fiber 默认用 Go 标准库 encoding/json,它反射开销大、分配多。生产环境必须替换:
- 推荐
goccy/go-json:兼容标准库接口,性能提升 2–3 倍,零额外依赖 - 初始化时注入:
fiber.Config{JSONEncoder: json.Marshal, JSONDecoder: json.Unmarshal},其中json是goccy/go-json包 - 注意:别用
map[string]interface{}做响应体 —— 它会触发反射;优先用结构体 +json:tag
别碰 fiber.New() 以外的构造方式,警惕 “快速启动” 模板
社区里很多 “Fiber starter kit” 或 CLI 生成的项目,自带 .env 加载、database 初始化、middleware/auth 等——这些不是 Fiber 的一部分,而是业务胶水:
- 最小化安装只执行:
go get github.com/gofiber/fiber/v3,然后直接import "github.com/gofiber/fiber/v3" - 拒绝任何
go run main.go --env=prod类启动方式;环境变量解析用os.Getenv手写,不引入github.com/joho/godotenv等 - 数据库连接、缓存客户端等,全部在
main()中显式初始化并传入 handler,不封装进 Fiber 生命周期
最小化的本质不是“代码行数少”,而是“每个字节都在服务你的业务路径”。一旦你开始用 app.Static 或 app.Group,或者让 Fiber 去读配置文件、连 Redis,你就已经脱离最小化了——那只是披着 Fiber 外壳的全栈模板。











