📦 Fiber 简要说明
🚀 fiber.New(config ...Config) *App
- 创建一个新的 Fiber 应用实例。
- 可以传入一个
Config
结构体,来定制应用的行为。
示例
// 使用默认配置创建 App
app := fiber.New()
// 使用自定义配置创建 App
app := fiber.New(fiber.Config{
Prefork: true, // 启用多进程(Prefork 模式)
CaseSensitive: true, // 路由大小写敏感
StrictRouting: true, // 严格匹配带 / 和不带 / 的路由
ServerHeader: "Fiber", // 返回响应头中的 Server 字段
AppName: "Test App v1.0.1",
})
⚙️ Config 配置项说明
Fiber 提供了非常丰富的配置项,以下是一些常见和重要的字段:
属性 | 类型 | 含义 | 默认值 |
---|---|---|---|
AppName |
string |
应用名称 | "" |
Prefork |
bool |
是否启用 Prefork,多进程监听同一端口,提高性能(仅支持 tcp4 / tcp6) | false |
CaseSensitive |
bool |
是否大小写敏感,/Foo 和 /foo 是否为不同路由 |
false |
StrictRouting |
bool |
是否区分 /foo 和 /foo/ |
false |
EnableTrustedProxyCheck |
bool |
是否启用受信代理检查 | false |
TrustedProxies |
[]string |
设置受信的代理 IP(用于真实 IP 获取) | [] |
ProxyHeader |
string |
指定获取 IP 的 Header,例如 "X-Forwarded-For" |
"" |
ETag |
bool |
是否启用 ETag 缓存头 | false |
ErrorHandler |
func(c *fiber.Ctx, err error) error |
自定义错误处理器 | DefaultErrorHandler |
📌 如果你部署在 nginx、traefik 等代理服务器后面,请搭配
EnableTrustedProxyCheck
和TrustedProxies
来正确获取c.IP()
和c.Protocol()
等信息。
⚠️ 其他功能方法
fiber.NewError(code int, message ...string) *Error
- 创建一个 HTTP 错误,例如:
return fiber.NewError(403, "禁止访问")
fiber.IsChild() bool
- 判断当前进程是否是 Prefork 模式下的子进程:
if !fiber.IsChild() {
fmt.Println("我是主进程")
} else {
fmt.Println("我是子进程")
}