输入搜索…

· server · 7 min 阅读

fiber 配置选项

列举 fiber 支持的配置内容,并简单介绍。

fiber 配置选项

@quickps

创建 fiber 应用时支持的配置选项

PropertyTypeDescriptionDefault
AppNamestring用于设置应用程序的名称。""
BodyLimitint设置请求体的最大允许大小,如果超出配置限制,则会发送 413 - Request Entity Too Large 响应。4 * 1024 * 1024
CaseSensitivebool启用时, /Foo/foo 是不同的路由。禁用时, /Foo/foo 被视为相同。false
ColorSchemeColors你可以自定义颜色方案。它们将被用于启动消息、路由列表和一些中间件。DefaultColors
CompressedFileSuffixstring向原始文件名添加后缀, 并尝试将压缩后的文件保存到新的文件名下。".fiber.gz"
Concurrencyint最大并发连接数。256 * 1024
DisableDefaultContentTypebool启用时,将导致响应中排除默认的 Content-type 头。false
DisableDefaultDatebool启用时,将导致响应中排除默认的日期头。false
DisableHeaderNormalizingbool默认情况下(禁用),所有头部名称都进行规范化,例如 conteNT-tYPE -> Content-Typefalse
DisableKeepalivebool禁用 keep-alive 连接,服务器将在向客户端发送第一个响应后关闭传入连接。false
DisablePreParseMultipartFormbool启用时,将不预解析 Multipart 表单数据。false
DisableStartupMessagebool启用时,将不打印调试信息。false
ETagbool启用或禁用 ETag 头生成,因为弱 ETag 和强 ETag 都是使用相同的哈希方法(CRC-32)生成的。弱 ETag 是默认启用的。false
EnableIPValidationbool如果启用, c.IP()c.IPs() 将在返回 IP 地址之前验证 IP 地址。此外,c.IP() 将只返回第一个有效的 IP,而不仅仅是原始的头部信息值(可能是逗号分隔的字符串)。警告: 进行此验证会有小的性能开销。如果您只关心速度,并且您的应用程序位于已验证此 header 的可信代理之后,则保持禁用。false
EnablePrintRoutesbool如果启用,则允许打印所有路由及其方法、路径、名称和处理程序。false
EnableSplittingOnParsersbool启用时,按逗号分隔查询 query/body/header 参数。例如,你可以使用它从一个查询参数中解析多个值,如下所示:/api?foo=bar,baz == foo[]=bar&foo[]=bazfalse
EnableTrustedProxyCheckbool启用时,fiber 将使用 TrustedProxies 列表检查 proxy 是否受信任。默认情况下,c.Protocol() 将从 X-Forwarded-Proto、X-Forwarded-Protocal、X-Forwared-SslX-Url-Scheme 头中获取值,c.IP() 将从 X-Forwarded-Host 头中获取值。启用,并且 RemoteIPTrustedProxies 列表中,c.Protocol()c.IP()c.Hostname() 的行为将与 EnableTrustedProxyCheck 禁用时相同。如果 RemoteIP 不在列表中,c.Protocal() 会根据应用是否处理 TLS 连接来返回httpshttpc.IP() 会返回来自 fasthttp 上下文的 RemoteIP()c.Hostname() 会返回 fasthttp.Request.URI().Host()false
ErrorHandlerErrorHandler当从 fiber.Handler 返回错误时执行的处理程序。DefaultErrorHandler
GETOnlybool启用时,拒绝所有非 GET 请求。这个选项对于只接受 GET 请求的服务器来说是防止拒绝服务(Dos)攻击的有效保护。当启用时,请求大小受 ReadBufferSize 的限制。false
IdleTimeouttime.Duration当启用保持连接(keep-alive)时,等待下一个请求的最长时间。如果 IdleTimeout 为零,则使用 ReadTimeout 的值。nil
Immutablebool启用时,所有由上下文方法返回的值都是不可变的。默认情况下,它们在您从处理程序返回之前有效。false
JSONDecoderutils.JSONUnmarshal允许灵活使用其它 JSON 库进行解码。json.Unmarshal
JSONEncoderutils.JSONMarshal允许灵活使用其他 JSON 库进行编码。json.Marshal
Networkstring已知的网络类型有“tcp”、“tcp4”(仅支持 IPv4)和“tcp6”(仅支持 IPv6)。警告: 当 prefork 设置为 true 时,仅可选择“tcp4”和“tcp6”。NetworkTCP4
PassLocalsToViewsbool启用时,会将设置在 fiber.Ctx 上的局部变量传递给模板引擎。false
Preforkbool启用 SO_REUSEPORT 套接字选项。这将生成多个 Go 进程在同一端口上监听。**注意:如果启用,应用程序需要通过 shell 运行,因为 prefork 模式会设置环境变量。如果您使用 Docker,请确保以 CMD ./appCMD ["sh", "-c", "/app"] 运行应用程序。 **false
ProxyHeaderstring这将使 c.IP() 返回给定头部键的值。默认情况下,c.IP() 将返回 TCP 连接的远程 IP,这个属性在您位于负载均衡器后面时非常有用,例如 X-forwarded-*""
ReadBufferSizeint每个连接的请求读取缓冲区大小。这也限制了最大头部大小。如果您的客户发送多个 KB 的 RequestURIs 和 / 或多个 KB 的头部(例如, BIG cookies),请增加此缓冲区。4096
ReadTimeouttime.Duration允许读取完整请求(包括请求体)的时间。默认超时时间是无限制的。nil
RequestMethods[]stringRequestMethods 提供了对 HTTP 方法的自定义功能。您可以根据需要添加或删除方法。DefaultMethods
ServerHeaderstring启用带有指定值的 Server HTTP 头部。""
StreamRequestBodyboolStreamRequestBody 启用请求体流式传输,并在给定的请求体超过当前限制时更早地调用false
StrictRoutingbool启用时,路由器将 /foo/foo/ 视为不同的路径。否则,路由器将 /foo/foo/ 视为相同的路径。false
TrustedProxies[]string包含可信代理 IP 列表。请查看 EnableTrustedProxyCheck 文档。它可以接受单个 IPIP 范围地址。如果提供的是 IP 范围,它将遍历所有可能的地址[]string*__*
UnescapePathbool在为上下文设置路径之前,将路由中的所有编码字符转换回原始字符,以便路由也能正常处理 URL 编码的特殊字符。false
ViewsViewsViews is the interface that wraps the Render function. See our Template Middleware for supported engines.nil
ViewsLayoutstringViews 是一个封装了 Render 函数的接口。""
WriteBufferSizeint每个连接的响应写入缓冲区大小。4096
WriteTimeouttime.Duration写入响应之前的最长超时时间。默认超时时间是无限制的。nil
XMLEncoderutils.XMLMarshal允许灵活使用其他 XML 库进行编码。xml.Marshal
分享:
返回文章列表