Documentation ¶
Index ¶
- Constants
- Variables
- type AccessConfig
- type Acme
- type AcmeCerts
- type AcmeData
- type AcmeStorages
- func (c *AcmeStorages) Acquire(name string) *AcmeCerts
- func (c *AcmeStorages) BuildAcmeStorages() []string
- func (c *AcmeStorages) BuildAcmeStoragesAdd() []string
- func (c *AcmeStorages) BuildAcmeStoragesDel() []string
- func (c *AcmeStorages) Commit()
- func (c *AcmeStorages) RemoveAll(names []string)
- func (c *AcmeStorages) Updated() bool
- type AgentCheck
- type AuthHTTP
- type Backend
- func (b *Backend) AcquireEndpoint(ip string, port int, targetRef string) *Endpoint
- func (b *Backend) AddBackendPath(link PathLink) *BackendPath
- func (b *Backend) AddEmptyEndpoint() *Endpoint
- func (b *Backend) BackendID() BackendID
- func (b *Backend) CookieAffinity() bool
- func (b *Backend) FindBackendPath(link PathLink) *BackendPath
- func (b *Backend) FindEndpoint(target string) *Endpoint
- func (b *Backend) HasCorsEnabled() bool
- func (b *Backend) HasHSTS() bool
- func (b *Backend) HasModsec() bool
- func (b *Backend) HasSSLRedirect() bool
- func (b *Backend) HasSSLRedirectPaths(paths []*BackendPath) bool
- func (b *Backend) Hostnames() []string
- func (b *Backend) NeedACL() bool
- func (b *Backend) PathConfig(attr string) *BackendPathConfig
- type BackendHeader
- type BackendID
- type BackendLimit
- type BackendPath
- type BackendPathConfig
- type BackendPathItem
- type BackendTLSConfig
- type BackendTimeoutConfig
- type Backends
- func (b *Backends) AcquireBackend(namespace, name, port string) *Backend
- func (b *Backends) BuildSortedItems() []*Backend
- func (b *Backends) BuildSortedShard(shardRef int) []*Backend
- func (b *Backends) Changed() bool
- func (b *Backends) ChangedShards() []int
- func (b *Backends) Commit()
- func (b *Backends) FindBackend(namespace, name, port string) *Backend
- func (b *Backends) FindBackendID(backendID BackendID) *Backend
- func (b *Backends) Items() map[string]*Backend
- func (b *Backends) ItemsAdd() map[string]*Backend
- func (b *Backends) ItemsDel() map[string]*Backend
- func (b *Backends) RemoveAll(backendID []BackendID)
- func (b *Backends) Shrink()
- func (b *Backends) ShuffleAllEndpoints()
- func (b *Backends) SortChangedEndpoints(sortBy string)
- type BlueGreenConfig
- type Cookie
- type CookieConfig
- type Cors
- type DHParamConfig
- type DNSConfig
- type DNSNameserver
- type DNSResolver
- type DrainConfig
- type DynBackendConfig
- type Endpoint
- type EndpointCookieStrategy
- type EndpointNaming
- type ExternalConfig
- type Frontend
- type FrontendMaps
- type Global
- type GlobalBindConfig
- type HSTS
- type HealthCheck
- type HealthzConfig
- type Host
- type HostAliasConfig
- type HostBackend
- type HostPath
- type HostTLSConfig
- type Hosts
- func (h *Hosts) AcquireHost(hostname string) *Host
- func (h *Hosts) BuildSortedItems() []*Host
- func (h *Hosts) Changed() bool
- func (h *Hosts) Commit()
- func (h *Hosts) DefaultHost() *Host
- func (h *Hosts) FindHost(hostname string) *Host
- func (h *Hosts) HasCommit() bool
- func (h *Hosts) HasSSLPassthrough() bool
- func (h *Hosts) HasVarNamespace() bool
- func (h *Hosts) Items() map[string]*Host
- func (h *Hosts) ItemsAdd() map[string]*Host
- func (h *Hosts) ItemsDel() map[string]*Host
- func (h *Hosts) RemoveAll(hostnames []string)
- func (h *Hosts) Shrink()
- type HostsMap
- func (hm *HostsMap) AddAliasPathMapping(alias HostAliasConfig, path *HostPath, target string)
- func (hm *HostsMap) AddHostnameMapping(hostname, target string)
- func (hm *HostsMap) AddHostnamePathMapping(hostname string, hostPath *HostPath, target string)
- func (hm *HostsMap) HasHost() bool
- func (hm *HostsMap) MatchFiles() []*MatchFile
- type HostsMapEntry
- type HostsMaps
- type MasterConfig
- type MatchFile
- type MatchType
- type ModSecurityConfig
- type ModSecurityTimeoutConfig
- type OAuthConfig
- type PathLink
- type ProcsConfig
- type PromConfig
- type SSLConfig
- type SecurityConfig
- type ServerConfig
- type StatsConfig
- type SyslogConfig
- type TCPBackend
- type TCPBackends
- type TCPEndpoint
- type TCPProxyProt
- type TCPSSL
- type TimeoutConfig
- type User
- type Userlist
- type UserlistConfig
- type Userlists
- type WAF
Constants ¶
const ( MatchBegin = MatchType("begin") MatchExact = MatchType("exact") MatchPrefix = MatchType("prefix") MatchRegex = MatchType("regex") )
...
const DefaultHost = "<default>"
DefaultHost ...
Variables ¶
var DefaultMatchOrder = []MatchType{MatchExact, MatchPrefix, MatchBegin, MatchRegex}
DefaultMatchOrder ...
Functions ¶
This section is empty.
Types ¶
type AccessConfig ¶ added in v0.12.1
AccessConfig ...
type AcmeCerts ¶ added in v0.11.1
type AcmeCerts struct {
// contains filtered or unexported fields
}
AcmeCerts ...
func (*AcmeCerts) AddDomains ¶ added in v0.11.1
AddDomains ...
type AcmeData ¶ added in v0.9.1
type AcmeData struct { Emails string Endpoint string Expiring time.Duration TermsAgreed bool // contains filtered or unexported fields }
AcmeData ...
func (*AcmeData) Storages ¶ added in v0.11.1
func (acme *AcmeData) Storages() *AcmeStorages
Storages ...
type AcmeStorages ¶ added in v0.11.1
type AcmeStorages struct {
// contains filtered or unexported fields
}
AcmeStorages ...
func (*AcmeStorages) Acquire ¶ added in v0.11.1
func (c *AcmeStorages) Acquire(name string) *AcmeCerts
Acquire ...
func (*AcmeStorages) BuildAcmeStorages ¶ added in v0.11.1
func (c *AcmeStorages) BuildAcmeStorages() []string
BuildAcmeStorages ...
func (*AcmeStorages) BuildAcmeStoragesAdd ¶ added in v0.11.1
func (c *AcmeStorages) BuildAcmeStoragesAdd() []string
BuildAcmeStoragesAdd ...
func (*AcmeStorages) BuildAcmeStoragesDel ¶ added in v0.11.1
func (c *AcmeStorages) BuildAcmeStoragesDel() []string
BuildAcmeStoragesDel ...
func (*AcmeStorages) RemoveAll ¶ added in v0.11.1
func (c *AcmeStorages) RemoveAll(names []string)
RemoveAll ...
type AgentCheck ¶
AgentCheck ...
type Backend ¶
type Backend struct { ID string Namespace string Name string Port string Endpoints []*Endpoint EpNaming EndpointNaming // // Paths // Paths []*BackendPath PathsMap *HostsMap // // per backend config // AgentCheck AgentCheck AllowedIPTCP AccessConfig BalanceAlgorithm string BlueGreen BlueGreenConfig Cookie Cookie CustomConfig []string DeniedIPTCP AccessConfig Dynamic DynBackendConfig EpCookieStrategy EndpointCookieStrategy Headers []*BackendHeader HealthCheck HealthCheck Limit BackendLimit ModeTCP bool Resolver string Server ServerConfig Timeout BackendTimeoutConfig TLS BackendTLSConfig // contains filtered or unexported fields }
Backend ...
func (*Backend) AcquireEndpoint ¶
AcquireEndpoint ...
func (*Backend) AddBackendPath ¶ added in v0.11.1
func (b *Backend) AddBackendPath(link PathLink) *BackendPath
AddBackendPath ...
func (*Backend) AddEmptyEndpoint ¶
AddEmptyEndpoint ...
func (*Backend) CookieAffinity ¶ added in v0.12.1
CookieAffinity ...
func (*Backend) FindBackendPath ¶ added in v0.11.1
func (b *Backend) FindBackendPath(link PathLink) *BackendPath
FindBackendPath ...
func (*Backend) FindEndpoint ¶
FindEndpoint ...
func (*Backend) HasSSLRedirectPaths ¶
func (b *Backend) HasSSLRedirectPaths(paths []*BackendPath) bool
HasSSLRedirectPaths ...
func (*Backend) PathConfig ¶ added in v0.12.1
func (b *Backend) PathConfig(attr string) *BackendPathConfig
PathConfig ...
type BackendHeader ¶ added in v0.11.1
BackendHeader ...
type BackendID ¶ added in v0.11.1
type BackendID struct { Namespace string Name string Port string // contains filtered or unexported fields }
BackendID ...
type BackendLimit ¶
BackendLimit ...
type BackendPath ¶
type BackendPath struct { // // core fields, filter out new fields in `Backend.createPathConfig()` // ID string Link PathLink // // config fields // AllowedIPHTTP AccessConfig AuthHTTP AuthHTTP Cors Cors DeniedIPHTTP AccessConfig HSTS HSTS MaxBodySize int64 OAuth OAuthConfig RewriteURL string SSLRedirect bool WAF WAF }
BackendPath ...
type BackendPathConfig ¶ added in v0.12.1
type BackendPathConfig struct {
// contains filtered or unexported fields
}
BackendPathConfig ...
func (*BackendPathConfig) Items ¶ added in v0.12.1
func (b *BackendPathConfig) Items() []interface{}
Items ...
func (*BackendPathConfig) NeedACL ¶ added in v0.12.1
func (b *BackendPathConfig) NeedACL() bool
NeedACL ...
func (*BackendPathConfig) PathIDs ¶ added in v0.12.1
func (b *BackendPathConfig) PathIDs(index int) []string
PathIDs ...
func (*BackendPathConfig) Paths ¶ added in v0.12.1
func (b *BackendPathConfig) Paths(index int) []*BackendPath
Paths ...
type BackendPathItem ¶ added in v0.12.1
type BackendPathItem struct {
// contains filtered or unexported fields
}
BackendPathItem ...
type BackendTLSConfig ¶
BackendTLSConfig ...
type BackendTimeoutConfig ¶
type BackendTimeoutConfig struct { Connect string HTTPRequest string KeepAlive string Queue string Server string ServerFin string Tunnel string }
BackendTimeoutConfig ...
type Backends ¶ added in v0.11.1
type Backends struct { DefaultBackend *Backend // contains filtered or unexported fields }
Backends ...
func CreateBackends ¶ added in v0.11.1
CreateBackends ...
func (*Backends) AcquireBackend ¶ added in v0.11.1
AcquireBackend ...
func (*Backends) BuildSortedItems ¶ added in v0.11.1
BuildSortedItems ...
func (*Backends) BuildSortedShard ¶ added in v0.11.1
BuildSortedShard ...
func (*Backends) ChangedShards ¶ added in v0.11.1
ChangedShards ...
func (*Backends) FindBackend ¶ added in v0.11.1
FindBackend ...
func (*Backends) FindBackendID ¶ added in v0.11.1
FindBackendID ...
func (*Backends) Shrink ¶ added in v0.11.1
func (b *Backends) Shrink()
Shrink compares deleted and added backends with the same name - ie changed objects - and remove both from the changing hashmap tracker when they match.
func (*Backends) ShuffleAllEndpoints ¶ added in v0.11.1
func (b *Backends) ShuffleAllEndpoints()
ShuffleAllEndpoints ...
func (*Backends) SortChangedEndpoints ¶ added in v0.11.1
SortChangedEndpoints ...
type BlueGreenConfig ¶ added in v0.9.1
BlueGreenConfig ...
type Cookie ¶
type Cookie struct { Name string Dynamic bool Preserve bool SameSite bool Strategy string Keywords string }
Cookie ...
type Cors ¶
type Cors struct { Enabled bool // AllowCredentials bool AllowHeaders string AllowMethods string AllowOrigin string ExposeHeaders string MaxAge int }
Cors ...
type DHParamConfig ¶
DHParamConfig ...
type DNSConfig ¶
type DNSConfig struct { ClusterDomain string Resolvers []*DNSResolver }
DNSConfig ...
type DNSNameserver ¶
DNSNameserver ...
func (*DNSNameserver) String ¶
func (dns *DNSNameserver) String() string
type DNSResolver ¶
type DNSResolver struct { Name string Nameservers []*DNSNameserver AcceptedPayloadSize int HoldObsolete string HoldValid string TimeoutRetry string }
DNSResolver ...
func (*DNSResolver) String ¶
func (dns *DNSResolver) String() string
type DynBackendConfig ¶
DynBackendConfig ...
type Endpoint ¶
type Endpoint struct { Enabled bool Label string IP string Name string Port int Target string TargetRef string Weight int CookieValue string }
Endpoint ...
type EndpointCookieStrategy ¶ added in v0.12.1
type EndpointCookieStrategy int
EndpointCookieStrategy ...
const ( EpCookieName EndpointCookieStrategy = iota EpCookiePodUid )
...
type EndpointNaming ¶
type EndpointNaming int
EndpointNaming ...
const ( EpSequence EndpointNaming = iota EpIPPort EpTargetRef )
...
type ExternalConfig ¶ added in v0.12.1
ExternalConfig ...
func (*ExternalConfig) IsExternal ¶ added in v0.12.1
func (e *ExternalConfig) IsExternal() bool
IsExternal ...
type Frontend ¶
type Frontend struct { Maps *FrontendMaps BindName string BindSocket string BindID int AcceptProxy bool // DefaultCrtFile string DefaultCrtHash string CrtListFile string }
Frontend ...
type FrontendMaps ¶ added in v0.11.1
type FrontendMaps struct { HTTPHostMap *HostsMap HTTPSHostMap *HostsMap HTTPSSNIMap *HostsMap // RedirFromRootMap *HostsMap SSLPassthroughMap *HostsMap VarNamespaceMap *HostsMap // TLSAuthList *HostsMap TLSNeedCrtList *HostsMap TLSInvalidCrtPagesMap *HostsMap TLSMissingCrtPagesMap *HostsMap }
FrontendMaps ...
type Global ¶
type Global struct { Bind GlobalBindConfig Procs ProcsConfig Syslog SyslogConfig MaxConn int Timeout TimeoutConfig SSL SSLConfig DNS DNSConfig ModSecurity ModSecurityConfig Cookie CookieConfig DrainSupport DrainConfig Acme Acme ForwardFor string LoadServerState bool AdminSocket string External ExternalConfig Healthz HealthzConfig Master MasterConfig MatchOrder []MatchType Prometheus PromConfig Security SecurityConfig Stats StatsConfig StrictHost bool UseHTX bool DefaultBackendRedir string DefaultBackendRedirCode int CustomConfig []string CustomDefaults []string CustomFrontend []string }
Global ...
type GlobalBindConfig ¶
type GlobalBindConfig struct { AcceptProxy bool HTTPBind string HTTPSBind string TCPBindIP string FrontingBind string FrontingSockID int FrontingUseProto bool }
GlobalBindConfig ...
func (GlobalBindConfig) HasFrontingProxy ¶
func (b GlobalBindConfig) HasFrontingProxy() bool
HasFrontingProxy ...
func (GlobalBindConfig) ShareHTTPPort ¶
func (b GlobalBindConfig) ShareHTTPPort() bool
ShareHTTPPort ...
type HealthCheck ¶
type HealthCheck struct { Addr string FallCount int Interval string Port int RiseCount int URI string }
HealthCheck ...
type Host ¶
type Host struct { Hostname string Paths []*HostPath // Alias HostAliasConfig HTTPPassthroughBackend string RootRedirect string TLS HostTLSConfig VarNamespace bool // contains filtered or unexported fields }
Host ...
Wildcard `*` hostname is a catch all and will be used if no other hostname, alias or regex matches the request. If wildcard hostname is not declared, the default backend will be used. If the default backend is empty, a default 404 page generated by HAProxy will be used.
func (*Host) SetSSLPassthrough ¶ added in v0.11.1
SetSSLPassthrough ...
type HostAliasConfig ¶
HostAliasConfig ...
type HostBackend ¶
HostBackend ...
type HostPath ¶
type HostPath struct { Path string Link PathLink Match MatchType Backend HostBackend }
HostPath ...
Root context `/` path is a catch all and will be used if no other path matches the request on this host. If a root context path is not declared, the default backend will be used. If the default backend is empty, a default 404 page generated by HAProxy will be used.
type HostTLSConfig ¶
type HostTLSConfig struct { ALPN string CAErrorPage string CAFilename string CAHash string CAVerifyOptional bool Ciphers string CipherSuites string CRLFilename string CRLHash string Options string TLSCommonName string TLSFilename string TLSHash string TLSNotAfter time.Time }
HostTLSConfig ...
type Hosts ¶ added in v0.11.1
type Hosts struct {
// contains filtered or unexported fields
}
Hosts ...
func (*Hosts) AcquireHost ¶ added in v0.11.1
AcquireHost ...
func (*Hosts) BuildSortedItems ¶ added in v0.11.1
BuildSortedItems ...
func (*Hosts) HasSSLPassthrough ¶ added in v0.11.1
HasSSLPassthrough ...
func (*Hosts) HasVarNamespace ¶ added in v0.11.1
HasVarNamespace ...
type HostsMap ¶
type HostsMap struct {
// contains filtered or unexported fields
}
HostsMap ...
func (*HostsMap) AddAliasPathMapping ¶ added in v0.11.1
func (hm *HostsMap) AddAliasPathMapping(alias HostAliasConfig, path *HostPath, target string)
AddAliasPathMapping ...
func (*HostsMap) AddHostnameMapping ¶ added in v0.11.1
AddHostnameMapping ...
func (*HostsMap) AddHostnamePathMapping ¶ added in v0.11.1
AddHostnamePathMapping ...
func (*HostsMap) MatchFiles ¶ added in v0.11.2
MatchFiles ...
type HostsMapEntry ¶
HostsMapEntry ...
func (*HostsMapEntry) String ¶ added in v0.11.1
func (he *HostsMapEntry) String() string
type HostsMaps ¶
type HostsMaps struct { Items []*HostsMap // contains filtered or unexported fields }
HostsMaps ...
type MasterConfig ¶ added in v0.12.1
MasterConfig ...
type MatchFile ¶ added in v0.11.2
type MatchFile struct {
// contains filtered or unexported fields
}
MatchFile ...
type ModSecurityConfig ¶
type ModSecurityConfig struct { Endpoints []string Timeout ModSecurityTimeoutConfig }
ModSecurityConfig ...
type ModSecurityTimeoutConfig ¶
type ModSecurityTimeoutConfig struct { // Backend Connect string Server string // SPOE Hello string Idle string Processing string }
ModSecurityTimeoutConfig ...
type OAuthConfig ¶
type OAuthConfig struct { Impl string BackendName string URIPrefix string Headers map[string]string }
OAuthConfig ...
type PathLink ¶ added in v0.11.1
type PathLink struct {
// contains filtered or unexported fields
}
PathLink is a unique identifier of a request configuration. Several request based configurations uses this identifier to distinguish if an acl should or should not be applied.
func CreatePathLink ¶ added in v0.11.1
CreatePathLink ...
type ProcsConfig ¶
type ProcsConfig struct { Nbproc int Nbthread int NbprocBalance int NbprocSSL int BindprocBalance string BindprocSSL string CPUMap string }
ProcsConfig ...
type SSLConfig ¶
type SSLConfig struct { ALPN string BackendCiphers string BackendCipherSuites string Ciphers string // TLS up to 1.2 CipherSuites string // TLS 1.3 DHParam DHParamConfig Engine string HeadersPrefix string ModeAsync bool Options string RedirectCode int }
SSLConfig ...
type SecurityConfig ¶ added in v0.12.1
SecurityConfig ...
type ServerConfig ¶
type ServerConfig struct { CAFilename string CAHash string Ciphers string // TLS up to 1.2 CipherSuites string // TLS 1.3 CRLFilename string CRLHash string CrtFilename string CrtHash string InitialWeight int MaxConn int MaxQueue int Options string Protocol string Secure bool SendProxy string SNI string VerifyHost string }
ServerConfig ...
type StatsConfig ¶
type StatsConfig struct { AcceptProxy bool Auth string BindIP string Port int TLSFilename string TLSHash string }
StatsConfig ...
type SyslogConfig ¶
type SyslogConfig struct { Endpoint string Format string HTTPLogFormat string HTTPSLogFormat string Length int Tag string TCPLogFormat string }
SyslogConfig ...
type TCPBackend ¶
type TCPBackend struct { Name string Port int Endpoints []*TCPEndpoint CheckInterval string SSL TCPSSL ProxyProt TCPProxyProt }
TCPBackend ...
func (*TCPBackend) AddEndpoint ¶
func (b *TCPBackend) AddEndpoint(ip string, port int) *TCPEndpoint
AddEndpoint ...
type TCPBackends ¶ added in v0.11.1
type TCPBackends struct {
// contains filtered or unexported fields
}
TCPBackends ...
func CreateTCPBackends ¶ added in v0.11.1
func CreateTCPBackends() *TCPBackends
CreateTCPBackends ...
func (*TCPBackends) Acquire ¶ added in v0.11.1
func (b *TCPBackends) Acquire(servicename string, port int) *TCPBackend
Acquire ...
func (*TCPBackends) BuildSortedItems ¶ added in v0.11.1
func (b *TCPBackends) BuildSortedItems() []*TCPBackend
BuildSortedItems ...
type TCPEndpoint ¶
TCPEndpoint ...
type TimeoutConfig ¶
type TimeoutConfig struct { BackendTimeoutConfig Client string ClientFin string Stop string }
TimeoutConfig ...