Documentation
¶
Index ¶
- Variables
- func Balancer(config Config) fiber.Handler
- func BalancerForward(servers []string, clients ...*fasthttp.Client) fiber.Handler
- func Do(c *fiber.Ctx, addr string, clients ...*fasthttp.Client) error
- func DomainForward(hostname, addr string, clients ...*fasthttp.Client) fiber.Handler
- func Forward(addr string, clients ...*fasthttp.Client) fiber.Handler
- func New(config Config) fiber.Handler
- func WithClient(cli *fasthttp.Client)
- func WithTlsConfig(tlsConfig *tls.Config)
- type Config
Constants ¶
This section is empty.
Variables ¶
var ConfigDefault = Config{ Next: nil, ModifyRequest: nil, ModifyResponse: nil, Timeout: fasthttp.DefaultLBClientTimeout, }
ConfigDefault is the default config
Functions ¶
func BalancerForward ¶
BalancerForward Forward performs the given http request with round robin algorithm to server and fills the given http response. This method will return an fiber.Handler
func Do ¶
Do performs the given http request and fills the given http response. This method can be used within a fiber.Handler
func DomainForward ¶
DomainForward performs an http request based on the given domain and populates the given http response. This method will return an fiber.Handler
func Forward ¶
Forward performs the given http request and fills the given http response. This method will return an fiber.Handler
func WithClient ¶
WithClient sets the global proxy client. This function should be called before Do and Forward.
func WithTlsConfig ¶
WithTlsConfig update http client with a user specified tls.config This function should be called before Do and Forward. Deprecated: use WithClient instead.
Types ¶
type Config ¶
type Config struct {
// Next defines a function to skip this middleware when returned true.
//
// Optional. Default: nil
Next func(c *fiber.Ctx) bool
// Servers defines a list of <scheme>://<host> HTTP servers,
//
// which are used in a round-robin manner.
// i.e.: "https://foobar.com, http://www.foobar.com"
//
// Required
Servers []string
// ModifyRequest allows you to alter the request
//
// Optional. Default: nil
ModifyRequest fiber.Handler
// ModifyResponse allows you to alter the response
//
// Optional. Default: nil
ModifyResponse fiber.Handler
// Timeout is the request timeout used when calling the proxy client
//
// Optional. Default: 1 second
Timeout time.Duration
// Per-connection buffer size for requests' reading.
// This also limits the maximum header size.
// Increase this buffer if your clients send multi-KB RequestURIs
// and/or multi-KB headers (for example, BIG cookies).
ReadBufferSize int
// Per-connection buffer size for responses' writing.
WriteBufferSize int
// tls config for the http client.
TlsConfig *tls.Config //nolint:stylecheck,revive // TODO: Rename to "TLSConfig" in v3
// Client is custom client when client config is complex.
// Note that Servers, Timeout, WriteBufferSize, ReadBufferSize and TlsConfig
// will not be used if the client are set.
Client *fasthttp.LBClient
}
Config defines the config for middleware.