Documentation
¶
Index ¶
- type AddPrefix
- type BasicAuth
- type Buffering
- type Chain
- type CircuitBreaker
- type Compress
- type Configuration
- type ContentType
- type Cookie
- type DigestAuth
- type ErrorPage
- type Failover
- type ForwardAuth
- type ForwardingTimeouts
- type HTTPConfiguration
- type Headers
- type HealthCheck
- type IPAllowList
- type IPStrategy
- type IPWhiteList
- type InFlightReq
- type JSONPayload
- type Middleware
- type MirrorService
- type Mirroring
- type Model
- type PassTLSClientCert
- type PluginConf
- type ProxyProtocol
- type RateLimit
- type RedirectRegex
- type RedirectScheme
- type ReplacePath
- type ReplacePathRegex
- type ResponseForwarding
- type Retry
- type Router
- type RouterTCPTLSConfig
- type RouterTLSConfig
- type Server
- type ServerHealthCheck
- type ServersLoadBalancer
- type ServersTransport
- type Service
- type SourceCriterion
- type Sticky
- type StripPrefix
- type StripPrefixRegex
- type TCPConfiguration
- type TCPIPAllowList
- type TCPIPWhiteList
- type TCPInFlightConn
- type TCPMiddleware
- type TCPRouter
- type TCPServer
- type TCPServersLoadBalancer
- type TCPService
- type TCPWRRService
- type TCPWeightedRoundRobin
- type TLSClientCertificateInfo
- type TLSClientCertificateIssuerDNInfo
- type TLSClientCertificateSubjectDNInfo
- type TLSConfiguration
- type UDPConfiguration
- type UDPRouter
- type UDPServer
- type UDPServersLoadBalancer
- type UDPService
- type UDPWRRService
- type UDPWeightedRoundRobin
- type Users
- type WRRService
- type WeightedRoundRobin
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Buffering ¶
type Buffering struct {
MaxRequestBodyBytes int64 `json:"maxRequestBodyBytes,omitempty"`
MemRequestBodyBytes int64 `json:"memRequestBodyBytes,omitempty"`
MaxResponseBodyBytes int64 `json:"maxResponseBodyBytes,omitempty"`
MemResponseBodyBytes int64 `json:"memResponseBodyBytes,omitempty"`
RetryExpression string `json:"retryExpression,omitempty"`
}
type CircuitBreaker ¶
type Configuration ¶
type Configuration struct {
HTTP *HTTPConfiguration `json:"http,omitempty"`
TCP *TCPConfiguration `json:"tcp,omitempty"`
UDP *UDPConfiguration `json:"udp,omitempty"`
TLS *TLSConfiguration `json:"tls,omitempty"`
}
type ContentType ¶
type ContentType struct {
AutoDetect bool `json:"autoDetect,omitempty"`
}
type DigestAuth ¶
type Failover ¶ added in v0.2.0
type Failover struct {
Service string `json:"service,omitempty"`
Fallback string `json:"fallback,omitempty"`
HealthCheck *HealthCheck `json:"healthCheck,omitempty"`
}
type ForwardAuth ¶
type ForwardAuth struct {
Address string `json:"address,omitempty"`
TLS *types.ClientTLS `json:"tls,omitempty"`
TrustForwardHeader bool `json:"trustForwardHeader,omitempty"`
AuthResponseHeaders []string `json:"authResponseHeaders,omitempty"`
AuthResponseHeadersRegex string `json:"authResponseHeadersRegex,omitempty"`
AuthRequestHeaders []string `json:"authRequestHeaders,omitempty"`
}
type ForwardingTimeouts ¶
type ForwardingTimeouts struct {
DialTimeout string `json:"dialTimeout,omitempty"`
ResponseHeaderTimeout string `json:"responseHeaderTimeout,omitempty"`
IdleConnTimeout string `json:"idleConnTimeout,omitempty"`
ReadIdleTimeout string `json:"readIdleTimeout,omitempty"`
PingTimeout string `json:"pingTimeout,omitempty"`
}
type HTTPConfiguration ¶
type HTTPConfiguration struct {
Routers map[string]*Router `json:"routers,omitempty"`
Services map[string]*Service `json:"services,omitempty"`
Middlewares map[string]*Middleware `json:"middlewares,omitempty"`
Models map[string]*Model `json:"models,omitempty"`
ServersTransports map[string]*ServersTransport `json:"serversTransports,omitempty"`
}
type Headers ¶
type Headers struct {
CustomRequestHeaders map[string]string `json:"customRequestHeaders,omitempty"`
CustomResponseHeaders map[string]string `json:"customResponseHeaders,omitempty"`
AccessControlAllowCredentials bool `json:"accessControlAllowCredentials,omitempty"`
AccessControlAllowHeaders []string `json:"accessControlAllowHeaders,omitempty"`
AccessControlAllowMethods []string `json:"accessControlAllowMethods,omitempty"`
AccessControlAllowOriginList []string `json:"accessControlAllowOriginList,omitempty"`
AccessControlAllowOriginListRegex []string `json:"accessControlAllowOriginListRegex,omitempty"`
AccessControlExposeHeaders []string `json:"accessControlExposeHeaders,omitempty"`
AccessControlMaxAge int64 `json:"accessControlMaxAge,omitempty"`
AddVaryHeader bool `json:"addVaryHeader,omitempty"`
AllowedHosts []string `json:"allowedHosts,omitempty"`
HostsProxyHeaders []string `json:"hostsProxyHeaders,omitempty"`
SSLRedirect bool `json:"sslRedirect,omitempty"`
SSLTemporaryRedirect bool `json:"sslTemporaryRedirect,omitempty"`
SSLHost string `json:"sslHost,omitempty"`
SSLProxyHeaders map[string]string `json:"sslProxyHeaders,omitempty"`
SSLForceHost bool `json:"sslForceHost,omitempty"`
STSSeconds int64 `json:"stsSeconds,omitempty"`
STSIncludeSubdomains bool `json:"stsIncludeSubdomains,omitempty"`
STSPreload bool `json:"stsPreload,omitempty"`
ForceSTSHeader bool `json:"forceSTSHeader,omitempty"`
FrameDeny bool `json:"frameDeny,omitempty"`
CustomFrameOptionsValue string `json:"customFrameOptionsValue,omitempty"`
ContentTypeNosniff bool `json:"contentTypeNosniff,omitempty"`
BrowserXSSFilter bool `json:"browserXssFilter,omitempty"`
CustomBrowserXSSValue string `json:"customBrowserXSSValue,omitempty"`
ContentSecurityPolicy string `json:"contentSecurityPolicy,omitempty"`
PublicKey string `json:"publicKey,omitempty"`
ReferrerPolicy string `json:"referrerPolicy,omitempty"`
FeaturePolicy string `json:"featurePolicy,omitempty"`
PermissionsPolicy string `json:"permissionsPolicy,omitempty"`
IsDevelopment bool `json:"isDevelopment,omitempty"`
}
type HealthCheck ¶
type HealthCheck struct {
}
type IPAllowList ¶ added in v0.4.0
type IPAllowList struct {
SourceRange []string `json:"sourceRange,omitempty"`
IPStrategy *IPStrategy `json:"ipStrategy,omitempty"`
}
type IPStrategy ¶
type IPWhiteList ¶
type IPWhiteList struct {
SourceRange []string `json:"sourceRange,omitempty"`
IPStrategy *IPStrategy `json:"ipStrategy,omitempty"`
}
type InFlightReq ¶
type InFlightReq struct {
Amount int64 `json:"amount,omitempty"`
SourceCriterion *SourceCriterion `json:"sourceCriterion,omitempty"`
}
type JSONPayload ¶
type JSONPayload struct {
*Configuration
}
func (JSONPayload) MarshalJSON ¶
func (c JSONPayload) MarshalJSON() ([]byte, error)
type Middleware ¶
type Middleware struct {
AddPrefix *AddPrefix `json:"addPrefix,omitempty"`
StripPrefix *StripPrefix `json:"stripPrefix,omitempty"`
StripPrefixRegex *StripPrefixRegex `json:"stripPrefixRegex,omitempty"`
ReplacePath *ReplacePath `json:"replacePath,omitempty"`
ReplacePathRegex *ReplacePathRegex `json:"replacePathRegex,omitempty"`
Chain *Chain `json:"chain,omitempty"`
IPWhiteList *IPWhiteList `json:"ipWhiteList,omitempty"`
IPAllowList *IPAllowList `json:"ipAllowList,omitempty"`
Headers *Headers `json:"headers,omitempty"`
Errors *ErrorPage `json:"errors,omitempty"`
RateLimit *RateLimit `json:"rateLimit,omitempty"`
RedirectRegex *RedirectRegex `json:"redirectRegex,omitempty"`
RedirectScheme *RedirectScheme `json:"redirectScheme,omitempty"`
BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
DigestAuth *DigestAuth `json:"digestAuth,omitempty"`
ForwardAuth *ForwardAuth `json:"forwardAuth,omitempty"`
InFlightReq *InFlightReq `json:"inFlightReq,omitempty"`
Buffering *Buffering `json:"buffering,omitempty"`
CircuitBreaker *CircuitBreaker `json:"circuitBreaker,omitempty"`
Compress *Compress `json:"compress,omitempty"`
PassTLSClientCert *PassTLSClientCert `json:"passTLSClientCert,omitempty"`
Retry *Retry `json:"retry,omitempty"`
ContentType *ContentType `json:"contentType,omitempty"`
Plugin map[string]PluginConf `json:"plugin,omitempty"`
}
type MirrorService ¶
type Mirroring ¶
type Mirroring struct {
Service string `json:"service,omitempty"`
MaxBodySize *int64 `json:"maxBodySize,omitempty"`
Mirrors []MirrorService `json:"mirrors,omitempty"`
HealthCheck *HealthCheck `json:"healthCheck,omitempty"`
}
type Model ¶
type Model struct {
Middlewares []string `json:"middlewares,omitempty"`
TLS *RouterTLSConfig `json:"tls,omitempty"`
}
type PassTLSClientCert ¶
type PassTLSClientCert struct {
PEM bool `json:"pem,omitempty"`
Info *TLSClientCertificateInfo `json:"info,omitempty"`
}
type PluginConf ¶
type ProxyProtocol ¶
type ProxyProtocol struct {
Version int `json:"version,omitempty"`
}
type RateLimit ¶
type RateLimit struct {
Average int64 `json:"average,omitempty"`
Period string `json:"period,omitempty"`
Burst int64 `json:"burst,omitempty"`
SourceCriterion *SourceCriterion `json:"sourceCriterion,omitempty"`
}
type RedirectRegex ¶
type RedirectScheme ¶
type ReplacePath ¶
type ReplacePath struct {
Path string `json:"path,omitempty"`
}
type ReplacePathRegex ¶
type ResponseForwarding ¶
type ResponseForwarding struct {
FlushInterval string `json:"flushInterval,omitempty"`
}
type RouterTCPTLSConfig ¶
type RouterTLSConfig ¶
type ServerHealthCheck ¶
type ServerHealthCheck struct {
Scheme string `json:"scheme,omitempty"`
Path string `json:"path,omitempty"`
Method string `json:"method,omitempty"`
Port int `json:"port,omitempty"`
Interval string `json:"interval,omitempty"`
Timeout string `json:"timeout,omitempty"`
Hostname string `json:"hostname,omitempty"`
FollowRedirects *bool `json:"followRedirects"`
Headers map[string]string `json:"headers,omitempty"`
}
type ServersLoadBalancer ¶
type ServersLoadBalancer struct {
Sticky *Sticky `json:"sticky,omitempty"`
Servers []Server `json:"servers,omitempty"`
HealthCheck *ServerHealthCheck `json:"healthCheck,omitempty"`
PassHostHeader *bool `json:"passHostHeader"`
ResponseForwarding *ResponseForwarding `json:"responseForwarding,omitempty"`
ServersTransport string `json:"serversTransport,omitempty"`
}
type ServersTransport ¶
type ServersTransport struct {
ServerName string `json:"serverName,omitempty"`
InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
RootCAs []string `json:"rootCAs,omitempty"`
Certificates tls.Certificates `json:"certificates,omitempty"`
MaxIdleConnsPerHost int `json:"maxIdleConnsPerHost,omitempty"`
ForwardingTimeouts *ForwardingTimeouts `json:"forwardingTimeouts,omitempty"`
DisableHTTP2 bool `json:"disableHTTP2,omitempty"`
PeerCertURI string `json:"peerCertURI,omitempty"`
}
type Service ¶
type Service struct {
LoadBalancer *ServersLoadBalancer `json:"loadBalancer,omitempty"`
Weighted *WeightedRoundRobin `json:"weighted,omitempty"`
Mirroring *Mirroring `json:"mirroring,omitempty"`
Failover *Failover `json:"failover,omitempty"`
}
type SourceCriterion ¶
type SourceCriterion struct {
IPStrategy *IPStrategy `json:"ipStrategy,omitempty"`
RequestHeaderName string `json:"requestHeaderName,omitempty"`
RequestHost bool `json:"requestHost,omitempty"`
}
type StripPrefix ¶
type StripPrefixRegex ¶
type StripPrefixRegex struct {
Regex []string `json:"regex,omitempty"`
}
type TCPConfiguration ¶
type TCPConfiguration struct {
Routers map[string]*TCPRouter `json:"routers,omitempty"`
Services map[string]*TCPService `json:"services,omitempty"`
Middlewares map[string]*TCPMiddleware `json:"middlewares,omitempty"`
}
type TCPIPAllowList ¶ added in v0.4.0
type TCPIPAllowList struct {
SourceRange []string `json:"sourceRange,omitempty"`
}
type TCPIPWhiteList ¶
type TCPIPWhiteList struct {
SourceRange []string `json:"sourceRange,omitempty"`
}
type TCPInFlightConn ¶ added in v0.2.0
type TCPInFlightConn struct {
Amount int64 `json:"amount,omitempty"`
}
type TCPMiddleware ¶
type TCPMiddleware struct {
InFlightConn *TCPInFlightConn `json:"inFlightConn,omitempty"`
IPWhiteList *TCPIPWhiteList `json:"ipWhiteList,omitempty"`
IPAllowList *TCPIPAllowList `json:"ipAllowList,omitempty"`
}
type TCPServersLoadBalancer ¶
type TCPServersLoadBalancer struct {
TerminationDelay *int `json:"terminationDelay,omitempty"`
ProxyProtocol *ProxyProtocol `json:"proxyProtocol,omitempty"`
Servers []TCPServer `json:"servers,omitempty"`
}
type TCPService ¶
type TCPService struct {
LoadBalancer *TCPServersLoadBalancer `json:"loadBalancer,omitempty"`
Weighted *TCPWeightedRoundRobin `json:"weighted,omitempty"`
}
type TCPWRRService ¶
type TCPWeightedRoundRobin ¶
type TCPWeightedRoundRobin struct {
Services []TCPWRRService `json:"services,omitempty"`
}
type TLSClientCertificateInfo ¶
type TLSClientCertificateInfo struct {
NotAfter bool `json:"notAfter,omitempty"`
NotBefore bool `json:"notBefore,omitempty"`
Sans bool `json:"sans,omitempty"`
SerialNumber bool `json:"serialNumber,omitempty"`
Subject *TLSClientCertificateSubjectDNInfo `json:"subject,omitempty"`
Issuer *TLSClientCertificateIssuerDNInfo `json:"issuer,omitempty"`
}
type TLSClientCertificateIssuerDNInfo ¶ added in v0.2.0
type TLSClientCertificateIssuerDNInfo struct {
Country bool `json:"country,omitempty"`
Province bool `json:"province,omitempty"`
Locality bool `json:"locality,omitempty"`
Organization bool `json:"organization,omitempty"`
CommonName bool `json:"commonName,omitempty"`
SerialNumber bool `json:"serialNumber,omitempty"`
DomainComponent bool `json:"domainComponent,omitempty"`
}
type TLSClientCertificateSubjectDNInfo ¶ added in v0.2.0
type TLSClientCertificateSubjectDNInfo struct {
Country bool `json:"country,omitempty"`
Province bool `json:"province,omitempty"`
Locality bool `json:"locality,omitempty"`
Organization bool `json:"organization,omitempty"`
OrganizationalUnit bool `json:"organizationalUnit,omitempty"`
CommonName bool `json:"commonName,omitempty"`
SerialNumber bool `json:"serialNumber,omitempty"`
DomainComponent bool `json:"domainComponent,omitempty"`
}
type TLSConfiguration ¶
type UDPConfiguration ¶
type UDPConfiguration struct {
Routers map[string]*UDPRouter `json:"routers,omitempty"`
Services map[string]*UDPService `json:"services,omitempty"`
}
type UDPServersLoadBalancer ¶
type UDPServersLoadBalancer struct {
Servers []UDPServer `json:"servers,omitempty"`
}
type UDPService ¶
type UDPService struct {
LoadBalancer *UDPServersLoadBalancer `json:"loadBalancer,omitempty"`
Weighted *UDPWeightedRoundRobin `json:"weighted,omitempty"`
}
type UDPWRRService ¶
type UDPWeightedRoundRobin ¶
type UDPWeightedRoundRobin struct {
Services []UDPWRRService `json:"services,omitempty"`
}
type WRRService ¶
type WeightedRoundRobin ¶
type WeightedRoundRobin struct {
Services []WRRService `json:"services,omitempty"`
Sticky *Sticky `json:"sticky,omitempty"`
HealthCheck *HealthCheck `json:"healthCheck,omitempty"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.