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 DoDeadline(c *fiber.Ctx, addr string, deadline time.Time, clients ...*fasthttp.Client) error
- func DoRedirects(c *fiber.Ctx, addr string, maxRedirectsCount int, clients ...*fasthttp.Client) error
- func DoTimeout(c *fiber.Ctx, addr string, timeout time.Duration, 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 Balancer ¶
func Balancer(config Config) fiber.Handler
Balancer creates a load balancer among multiple upstream servers
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 DoDeadline ¶
DoDeadline performs the given request and waits for response until the given deadline. This method can be used within a fiber.Handler
func DoRedirects ¶
func DoRedirects(c *fiber.Ctx, addr string, maxRedirectsCount int, clients ...*fasthttp.Client) error
DoRedirects performs the given http request and fills the given http response, following up to maxRedirectsCount redirects. When the redirect count exceeds maxRedirectsCount, ErrTooManyRedirects is returned. This method can be used within a fiber.Handler
func DoTimeout ¶
DoTimeout performs the given request and waits for response during the given timeout duration. 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.