types

package
v0.13.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2023 License: Apache-2.0 Imports: 11 Imported by: 3

Documentation

Index

Constants

View Source
const (
	MatchBegin  = MatchType("begin")
	MatchExact  = MatchType("exact")
	MatchPrefix = MatchType("prefix")
	MatchRegex  = MatchType("regex")
)

...

View Source
const DefaultHost = "<default>"

DefaultHost ...

Variables

DefaultMatchOrder ...

Functions

This section is empty.

Types

type AccessConfig added in v0.12.1

type AccessConfig struct {
	Rule         []string
	Exception    []string
	SourceHeader string
}

AccessConfig ...

type Acme added in v0.9.1

type Acme struct {
	Enabled bool
	Prefix  string
	Shared  bool
	Socket  string
}

Acme ...

type AcmeCerts added in v0.11.1

type AcmeCerts struct {
	// contains filtered or unexported fields
}

AcmeCerts ...

func (*AcmeCerts) AddDomains added in v0.11.1

func (c *AcmeCerts) AddDomains(domains []string)

AddDomains ...

func (*AcmeCerts) AssignPreferredChain added in v0.13.5

func (c *AcmeCerts) AssignPreferredChain(preferredChain string) error

AssignPreferredChain ...

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) Commit added in v0.11.1

func (c *AcmeStorages) Commit()

Commit ...

func (*AcmeStorages) RemoveAll added in v0.11.1

func (c *AcmeStorages) RemoveAll(names []string)

RemoveAll ...

func (*AcmeStorages) Updated added in v0.11.1

func (c *AcmeStorages) Updated() bool

Updated ...

type AgentCheck

type AgentCheck struct {
	Addr     string
	Interval string
	Port     int
	Send     string
}

AgentCheck ...

type AuthExternal added in v0.13.0

type AuthExternal struct {
	AllowedPath     string
	AlwaysDeny      bool
	AuthBackendName string
	AuthPath        string
	HeadersFail     []string
	HeadersRequest  []string
	HeadersSucceed  []string
	HeadersVars     map[string]string
	Method          string
	RedirectOnFail  string
}

AuthExternal ...

type AuthHTTP added in v0.12.1

type AuthHTTP struct {
	UserlistName string
	Realm        string
}

AuthHTTP ...

type AuthProxy added in v0.13.0

type AuthProxy struct {
	BindList   []*AuthProxyBind
	Name       string
	RangeEnd   int
	RangeStart int
}

AuthProxy ...

type AuthProxyBind added in v0.13.0

type AuthProxyBind struct {
	AuthBackendName string
	Backend         BackendID
	LocalPort       int
	SocketID        int
}

AuthProxyBind ...

type Backend

type Backend struct {
	ID        string
	Namespace string
	Name      string
	Port      string
	DNSPort   string
	SourceIPs []net.IP
	Endpoints []*Endpoint
	EpNaming  EndpointNaming
	//
	// Paths
	//
	Paths               []*BackendPath
	PathsMap            *HostsMap
	PathsDefaultHostMap *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

func (b *Backend) AcquireEndpoint(ip string, port int, targetRef string) *Endpoint

AcquireEndpoint ...

func (*Backend) AddBackendPath added in v0.11.1

func (b *Backend) AddBackendPath(link PathLink) *BackendPath

AddBackendPath ...

func (*Backend) AddEmptyEndpoint

func (b *Backend) AddEmptyEndpoint() *Endpoint

AddEmptyEndpoint ...

func (*Backend) BackendID added in v0.11.1

func (b *Backend) BackendID() BackendID

BackendID ...

func (*Backend) CookieAffinity added in v0.12.1

func (b *Backend) CookieAffinity() bool

CookieAffinity ...

func (*Backend) FindBackendPath added in v0.11.1

func (b *Backend) FindBackendPath(link PathLink) *BackendPath

FindBackendPath ...

func (*Backend) FindEndpoint

func (b *Backend) FindEndpoint(target string) *Endpoint

FindEndpoint ...

func (*Backend) HasCorsEnabled

func (b *Backend) HasCorsEnabled() bool

HasCorsEnabled ...

func (*Backend) HasHSTS added in v0.12.1

func (b *Backend) HasHSTS() bool

HasHSTS ...

func (*Backend) HasModsec

func (b *Backend) HasModsec() bool

HasModsec is a method to verify if a Backend has ModSecurity Enabled

func (*Backend) HasSSLRedirect

func (b *Backend) HasSSLRedirect() bool

HasSSLRedirect ...

func (*Backend) HasSSLRedirectPaths

func (b *Backend) HasSSLRedirectPaths(paths []*BackendPath) bool

HasSSLRedirectPaths ...

func (*Backend) Hostnames

func (b *Backend) Hostnames() []string

Hostnames ...

func (*Backend) NeedACL

func (b *Backend) NeedACL() bool

NeedACL ...

func (*Backend) PathConfig added in v0.12.1

func (b *Backend) PathConfig(attr string) *BackendPathConfig

PathConfig ...

type BackendHeader added in v0.11.1

type BackendHeader struct {
	Name  string
	Value string
}

BackendHeader ...

func (*BackendHeader) String added in v0.11.1

func (h *BackendHeader) String() string

String ...

type BackendID added in v0.11.1

type BackendID struct {
	Namespace string
	Name      string
	Port      string
	// contains filtered or unexported fields
}

BackendID ...

func (BackendID) IsEmpty added in v0.13.0

func (b BackendID) IsEmpty() bool

IsEmpty ...

func (BackendID) String added in v0.11.1

func (b BackendID) String() string

type BackendLimit

type BackendLimit struct {
	Connections int
	RPS         int
	Whitelist   []string
}

BackendLimit ...

type BackendPath

type BackendPath struct {
	//
	// core fields, filter out new fields in `Backend.createPathConfig()`
	//
	ID   string
	Link PathLink
	Host HostResolver
	//
	// config fields
	//
	AllowedIPHTTP AccessConfig
	AuthHTTP      AuthHTTP
	AuthExternal  AuthExternal
	Cors          Cors
	DeniedIPHTTP  AccessConfig
	HSTS          HSTS
	MaxBodySize   int64
	RewriteURL    string
	SSLRedirect   bool
	WAF           WAF
}

BackendPath ...

func (*BackendPath) Hostname

func (p *BackendPath) Hostname() string

Hostname ...

func (*BackendPath) IsDefaultHost added in v0.12.4

func (p *BackendPath) IsDefaultHost() bool

IsDefaultHost ...

func (*BackendPath) Match added in v0.13.0

func (p *BackendPath) Match() MatchType

Match ...

func (*BackendPath) Path

func (p *BackendPath) Path() string

Path ...

func (*BackendPath) String

func (p *BackendPath) String() string

String ...

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

type BackendTLSConfig struct {
	AddCertHeader    bool
	FingerprintLower bool
	HasTLSAuth       bool
}

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

func CreateBackends(shardCount int) *Backends

CreateBackends ...

func (*Backends) AcquireAuthBackend added in v0.13.0

func (b *Backends) AcquireAuthBackend(ipList []string, port int, hostname string) *Backend

AcquireAuthBackend ...

func (*Backends) AcquireBackend added in v0.11.1

func (b *Backends) AcquireBackend(namespace, name, port string) *Backend

AcquireBackend ...

func (*Backends) BackendChanged added in v0.11.9

func (b *Backends) BackendChanged(backend *Backend)

BackendChanged ...

func (*Backends) BuildSortedItems added in v0.11.1

func (b *Backends) BuildSortedItems() []*Backend

BuildSortedItems ...

func (*Backends) BuildSortedShard added in v0.11.1

func (b *Backends) BuildSortedShard(shardRef int) []*Backend

BuildSortedShard ...

func (*Backends) BuildUsedAuthBackends added in v0.13.0

func (b *Backends) BuildUsedAuthBackends() map[string]bool

BuildUsedAuthBackends ...

func (*Backends) Changed added in v0.11.1

func (b *Backends) Changed() bool

Changed ...

func (*Backends) ChangedShards added in v0.11.1

func (b *Backends) ChangedShards() []int

ChangedShards ...

func (*Backends) Clear added in v0.12.18

func (b *Backends) Clear()

func (*Backends) Commit added in v0.11.1

func (b *Backends) Commit()

Commit ...

func (*Backends) FillSourceIPs added in v0.13.0

func (b *Backends) FillSourceIPs()

FillSourceIPs ...

func (*Backends) FindBackend added in v0.11.1

func (b *Backends) FindBackend(namespace, name, port string) *Backend

FindBackend ...

func (*Backends) FindBackendID added in v0.11.1

func (b *Backends) FindBackendID(backendID BackendID) *Backend

FindBackendID ...

func (*Backends) Items added in v0.11.1

func (b *Backends) Items() map[string]*Backend

Items ...

func (*Backends) ItemsAdd added in v0.11.1

func (b *Backends) ItemsAdd() map[string]*Backend

ItemsAdd ...

func (*Backends) ItemsDel added in v0.11.1

func (b *Backends) ItemsDel() map[string]*Backend

ItemsDel ...

func (*Backends) RemoveAll added in v0.11.1

func (b *Backends) RemoveAll(backendID []BackendID)

RemoveAll ...

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

func (b *Backends) SortChangedEndpoints(sortBy string)

SortChangedEndpoints ...

type BlueGreenConfig added in v0.9.1

type BlueGreenConfig struct {
	CookieName string
	HeaderName string
}

BlueGreenConfig ...

type Cookie struct {
	Name     string
	Domain   string
	Dynamic  bool
	Preserve bool
	SameSite bool
	Shared   bool
	Strategy string
	Keywords string
}

Cookie ...

type CookieConfig

type CookieConfig struct {
	Key string
}

CookieConfig ...

type Cors

type Cors struct {
	Enabled bool
	//
	AllowCredentials bool
	AllowHeaders     string
	AllowMethods     string
	AllowOrigin      []string
	ExposeHeaders    string
	MaxAge           int
}

Cors ...

type DHParamConfig

type DHParamConfig struct {
	Filename       string
	DefaultMaxSize int
}

DHParamConfig ...

type DNSConfig

type DNSConfig struct {
	ClusterDomain string
	Resolvers     []*DNSResolver
}

DNSConfig ...

func (*DNSConfig) String

func (dns *DNSConfig) String() string

type DNSNameserver

type DNSNameserver struct {
	Name     string
	Endpoint string
}

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 DrainConfig

type DrainConfig struct {
	Drain      bool
	Redispatch bool
}

DrainConfig ...

type DynBackendConfig

type DynBackendConfig struct {
	BlockSize    int
	DynUpdate    bool
	MinFreeSlots int
}

DynBackendConfig ...

type Endpoint

type Endpoint struct {
	Enabled     bool
	Label       string
	IP          string
	Name        string
	Port        int
	SourceIP    string
	Target      string
	TargetRef   string
	Weight      int
	CookieValue string
	PUID        int32 // Proxy Unique ID, referenced as "id" in haproxy server lines
}

Endpoint ...

func (*Endpoint) IsEmpty

func (ep *Endpoint) IsEmpty() bool

IsEmpty ...

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

type ExternalConfig struct {
	HasLua       bool
	MasterSocket string
}

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
	AuthProxy   AuthProxy
	//
	DefaultCrtFile string
	DefaultCrtHash string
	CrtListFile    string
	//
	RedirectFromCode int
	RedirectToCode   int
	// contains filtered or unexported fields
}

Frontend ...

func (*Frontend) AcquireAuthBackendName added in v0.13.0

func (f *Frontend) AcquireAuthBackendName(backend BackendID) (authBackendName string, err error)

AcquireAuthBackendName ...

func (*Frontend) Changed added in v0.13.0

func (f *Frontend) Changed() bool

Changed ...

func (*Frontend) Commit added in v0.13.0

func (f *Frontend) Commit()

Commit ...

func (*Frontend) RemoveAuthBackendByTarget added in v0.13.0

func (f *Frontend) RemoveAuthBackendByTarget(backends []BackendID)

func (*Frontend) RemoveAuthBackendExcept added in v0.13.0

func (f *Frontend) RemoveAuthBackendExcept(used map[string]bool)

RemoveAuthBackendExcept ...

func (*Frontend) String

func (f *Frontend) String() string

String ...

type FrontendMaps added in v0.11.1

type FrontendMaps struct {
	HTTPHostMap  *HostsMap
	HTTPSHostMap *HostsMap
	HTTPSSNIMap  *HostsMap
	//
	RedirFromRootMap  *HostsMap
	RedirFromMap      *HostsMap
	RedirToMap        *HostsMap
	SSLPassthroughMap *HostsMap
	VarNamespaceMap   *HostsMap
	//
	TLSAuthList           *HostsMap
	TLSNeedCrtList        *HostsMap
	TLSInvalidCrtPagesMap *HostsMap
	TLSMissingCrtPagesMap *HostsMap
	//
	DefaultHostMap *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
	CustomProxy             map[string][]string
	CustomSections          []string
	CustomTCP               []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 HSTS

type HSTS struct {
	Enabled    bool
	MaxAge     int
	Subdomains bool
	Preload    bool
}

HSTS ...

type HealthCheck

type HealthCheck struct {
	Addr      string
	FallCount int
	Interval  string
	Port      int
	RiseCount int
	URI       string
}

HealthCheck ...

type HealthzConfig

type HealthzConfig struct {
	BindIP string
	Port   int
}

HealthzConfig ...

type Host

type Host struct {
	Hostname string
	Paths    []*HostPath
	//
	Alias                  HostAliasConfig
	Redirect               HostRedirectConfig
	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) AddPath

func (h *Host) AddPath(backend *Backend, path string, match MatchType)

AddPath ...

func (*Host) AddRedirect added in v0.13.0

func (h *Host) AddRedirect(path string, match MatchType, redirTo string)

AddRedirect ...

func (*Host) FindPath

func (h *Host) FindPath(path string, match ...MatchType) (paths []*HostPath)

FindPath ...

func (*Host) HasTLS added in v0.12.4

func (h *Host) HasTLS() bool

HasTLS ...

func (*Host) HasTLSAuth

func (h *Host) HasTLSAuth() bool

HasTLSAuth ...

func (*Host) RemovePath added in v0.13.0

func (h *Host) RemovePath(hpath *HostPath)

RemovePath ...

func (*Host) SSLPassthrough

func (h *Host) SSLPassthrough() bool

SSLPassthrough ...

func (*Host) SetSSLPassthrough added in v0.11.1

func (h *Host) SetSSLPassthrough(value bool)

SetSSLPassthrough ...

func (*Host) String

func (h *Host) String() string

String ...

type HostAliasConfig

type HostAliasConfig struct {
	AliasName  string
	AliasRegex string
}

HostAliasConfig ...

type HostBackend

type HostBackend struct {
	ID        string
	Namespace string
	Name      string
	Port      string
	ModeTCP   *bool
}

HostBackend ...

type HostPath

type HostPath struct {
	Path    string
	Link    PathLink
	Match   MatchType
	Backend HostBackend
	RedirTo string
	// contains filtered or unexported fields
}

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 HostRedirectConfig added in v0.13.0

type HostRedirectConfig struct {
	RedirectHost      string
	RedirectHostRegex string
}

HostRedirectConfig ...

type HostResolver added in v0.12.4

type HostResolver interface {
	HasTLS() bool
}

HostResolver ...

type HostTLSConfig

type HostTLSConfig struct {
	TLSConfig
	CAErrorPage   string
	UseDefaultCrt bool
}

HostTLSConfig ...

func (*HostTLSConfig) HasTLS

func (h *HostTLSConfig) HasTLS() bool

HasTLS ...

type Hosts added in v0.11.1

type Hosts struct {
	// contains filtered or unexported fields
}

Hosts ...

func CreateHosts added in v0.11.1

func CreateHosts() *Hosts

CreateHosts ...

func (*Hosts) AcquireHost added in v0.11.1

func (h *Hosts) AcquireHost(hostname string) *Host

AcquireHost ...

func (*Hosts) BuildSortedItems added in v0.11.1

func (h *Hosts) BuildSortedItems() []*Host

BuildSortedItems ...

func (*Hosts) Changed added in v0.11.1

func (h *Hosts) Changed() bool

Changed ...

func (*Hosts) Commit added in v0.11.1

func (h *Hosts) Commit()

Commit ...

func (*Hosts) DefaultHost added in v0.11.1

func (h *Hosts) DefaultHost() *Host

DefaultHost ...

func (*Hosts) FindHost added in v0.11.1

func (h *Hosts) FindHost(hostname string) *Host

FindHost ...

func (*Hosts) FindTargetRedirect added in v0.13.0

func (h *Hosts) FindTargetRedirect(redirfrom string, isRegex bool) *Host

FindTargetRedirect ...

func (*Hosts) HasCommit added in v0.11.2

func (h *Hosts) HasCommit() bool

HasCommit ...

func (*Hosts) HasSSLPassthrough added in v0.11.1

func (h *Hosts) HasSSLPassthrough() bool

HasSSLPassthrough ...

func (*Hosts) HasVarNamespace added in v0.11.1

func (h *Hosts) HasVarNamespace() bool

HasVarNamespace ...

func (*Hosts) Items added in v0.11.1

func (h *Hosts) Items() map[string]*Host

Items ...

func (*Hosts) ItemsAdd added in v0.11.1

func (h *Hosts) ItemsAdd() map[string]*Host

ItemsAdd ...

func (*Hosts) ItemsDel added in v0.11.1

func (h *Hosts) ItemsDel() map[string]*Host

ItemsDel ...

func (*Hosts) RemoveAll added in v0.11.1

func (h *Hosts) RemoveAll(hostnames []string)

RemoveAll ...

func (*Hosts) Shrink added in v0.11.1

func (h *Hosts) Shrink()

Shrink removes matching added and deleted hosts from the changing hashmap tracker that has the same content. A matching added+deleted pair means that a hostname was reparsed but its content wasn't changed.

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

func (hm *HostsMap) AddHostnameMapping(hostname, target string)

AddHostnameMapping ...

func (*HostsMap) AddHostnameMappingRegex added in v0.13.0

func (hm *HostsMap) AddHostnameMappingRegex(hostname, target string)

AddHostnameMappingRegex ...

func (*HostsMap) AddHostnamePathMapping added in v0.11.1

func (hm *HostsMap) AddHostnamePathMapping(hostname string, hostPath *HostPath, target string)

AddHostnamePathMapping ...

func (*HostsMap) HasHost

func (hm *HostsMap) HasHost() bool

HasHost ...

func (*HostsMap) MatchFiles added in v0.11.2

func (hm *HostsMap) MatchFiles() []*MatchFile

MatchFiles ...

type HostsMapEntry

type HostsMapEntry struct {
	Key   string
	Value string
	// contains filtered or unexported fields
}

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 ...

func CreateMaps

func CreateMaps(matchOrder []MatchType) *HostsMaps

CreateMaps ...

func (*HostsMaps) AddMap

func (hm *HostsMaps) AddMap(basename string) *HostsMap

AddMap ...

type MasterConfig added in v0.12.1

type MasterConfig struct {
	ExitOnFailure    bool
	WorkerMaxReloads int
}

MasterConfig ...

type MatchFile added in v0.11.2

type MatchFile struct {
	// contains filtered or unexported fields
}

MatchFile ...

func (MatchFile) Filename added in v0.11.2

func (m MatchFile) Filename() string

Filename ...

func (MatchFile) First added in v0.11.2

func (m MatchFile) First() bool

First ...

func (MatchFile) Last added in v0.13.0

func (m MatchFile) Last() bool

Last ...

func (MatchFile) Lower added in v0.11.2

func (m MatchFile) Lower() bool

Lower ...

func (MatchFile) Method added in v0.11.2

func (m MatchFile) Method() string

Method ...

func (MatchFile) Values added in v0.11.2

func (m MatchFile) Values() []*HostsMapEntry

Values ...

type MatchType added in v0.11.1

type MatchType string

MatchType ...

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 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(hostname, path string, match MatchType) PathLink

CreatePathLink ...

func (*PathLink) Hostname added in v0.13.0

func (l *PathLink) Hostname() string

Hostname ...

func (*PathLink) IsDefaultHost added in v0.12.4

func (l *PathLink) IsDefaultHost() bool

IsDefaultHost ...

func (*PathLink) IsEmpty added in v0.11.1

func (l *PathLink) IsEmpty() bool

IsEmpty ...

func (*PathLink) Less added in v0.11.1

func (l *PathLink) Less(other PathLink, reversePath bool) bool

Less ...

type ProcsConfig

type ProcsConfig struct {
	Nbproc          int
	Nbthread        int
	NbprocBalance   int
	NbprocSSL       int
	BindprocBalance string
	BindprocSSL     string
	CPUMap          string
}

ProcsConfig ...

type PromConfig added in v0.10.1

type PromConfig struct {
	BindIP string
	Port   int
}

PromConfig ...

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

type SecurityConfig struct {
	Groupname string
	UseChroot bool
	Username  string
}

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
	Length   int
	Tag      string
	//
	AuthLogFormat  string
	HTTPLogFormat  string
	HTTPSLogFormat 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 ...

func (*TCPBackend) String

func (b *TCPBackend) String() string

String ...

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 ...

func (*TCPBackends) Changed added in v0.11.1

func (b *TCPBackends) Changed() bool

Changed ...

func (*TCPBackends) Commit added in v0.11.1

func (b *TCPBackends) Commit()

Commit ...

func (*TCPBackends) RemoveAll added in v0.11.1

func (b *TCPBackends) RemoveAll()

RemoveAll ...

type TCPEndpoint

type TCPEndpoint struct {
	Name   string
	IP     string
	Port   int
	Target string
}

TCPEndpoint ...

func (*TCPEndpoint) String

func (ep *TCPEndpoint) String() string

String ...

type TCPProxyProt

type TCPProxyProt struct {
	Decode        bool
	EncodeVersion string
}

TCPProxyProt ...

type TCPSSL

type TCPSSL struct {
	Filename    string
	CAFilename  string
	CRLFilename string
}

TCPSSL ...

type TCPServiceHost added in v0.13.0

type TCPServiceHost struct {
	Backend BackendID
	// contains filtered or unexported fields
}

TCPServiceHost ...

func (*TCPServiceHost) Hostname added in v0.13.0

func (s *TCPServiceHost) Hostname() string

Hostname ...

type TCPServicePort added in v0.13.0

type TCPServicePort struct {
	CustomConfig []string
	LogFormat    string
	ProxyProt    bool
	TLS          TLSConfig
	//
	SNIMap *HostsMap
	// contains filtered or unexported fields
}

TCPServicePort ...

func (*TCPServicePort) BuildSortedItems added in v0.13.0

func (s *TCPServicePort) BuildSortedItems() []*TCPServiceHost

BuildSortedItems ...

func (*TCPServicePort) DefaultHost added in v0.13.0

func (s *TCPServicePort) DefaultHost() *TCPServiceHost

DefaultHost ...

func (*TCPServicePort) Hosts added in v0.13.0

func (s *TCPServicePort) Hosts() map[string]*TCPServiceHost

Hosts ...

func (*TCPServicePort) Port added in v0.13.0

func (s *TCPServicePort) Port() int

Port ...

type TCPServices added in v0.13.0

type TCPServices struct {
	// contains filtered or unexported fields
}

TCPServices ...

func CreateTCPServices added in v0.13.0

func CreateTCPServices() *TCPServices

CreateTCPServices ...

func (*TCPServices) AcquireTCPService added in v0.13.0

func (s *TCPServices) AcquireTCPService(service string) (*TCPServicePort, *TCPServiceHost)

AcquireTCPService ...

func (*TCPServices) BuildSortedItems added in v0.13.0

func (s *TCPServices) BuildSortedItems() []*TCPServicePort

BuildSortedItems ...

func (*TCPServices) Changed added in v0.13.0

func (s *TCPServices) Changed() bool

Changed ...

func (*TCPServices) Commit added in v0.13.0

func (s *TCPServices) Commit()

Commit ...

func (*TCPServices) FindTCPPort added in v0.13.0

func (s *TCPServices) FindTCPPort(port int) *TCPServicePort

FindTCPPort ...

func (*TCPServices) Items added in v0.13.0

func (s *TCPServices) Items() map[int]*TCPServicePort

Items ...

func (*TCPServices) RemoveAll added in v0.13.0

func (s *TCPServices) RemoveAll(services []string)

RemoveAll removes services declared as a slice of <hostname>:<port>

func (*TCPServices) RemoveService added in v0.13.0

func (s *TCPServices) RemoveService(service string)

RemoveService ...

type TLSConfig added in v0.13.0

type TLSConfig struct {
	ALPN             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
}

TLSConfig ...

type TimeoutConfig

type TimeoutConfig struct {
	BackendTimeoutConfig
	Client    string
	ClientFin string
	Stop      string
}

TimeoutConfig ...

type User

type User struct {
	Name      string
	Passwd    string
	Encrypted bool
}

User ...

type Userlist

type Userlist struct {
	Name  string
	Users []User
}

Userlist ...

func (*Userlist) String

func (u *Userlist) String() string

type UserlistConfig

type UserlistConfig struct {
	Name  string
	Realm string
}

UserlistConfig ...

type Userlists added in v0.11.1

type Userlists struct {
	// contains filtered or unexported fields
}

Userlists ...

func CreateUserlists added in v0.11.1

func CreateUserlists() *Userlists

CreateUserlists ...

func (*Userlists) BuildSortedItems added in v0.11.1

func (u *Userlists) BuildSortedItems() []*Userlist

BuildSortedItems ...

func (*Userlists) Changed added in v0.11.1

func (u *Userlists) Changed() bool

Changed ...

func (*Userlists) Commit added in v0.11.1

func (u *Userlists) Commit()

Commit ...

func (*Userlists) Find added in v0.11.1

func (u *Userlists) Find(name string) *Userlist

Find ...

func (*Userlists) RemoveAll added in v0.11.1

func (u *Userlists) RemoveAll(userlists []string)

RemoveAll ...

func (*Userlists) Replace added in v0.11.1

func (u *Userlists) Replace(name string, users []User) *Userlist

Replace ...

type WAF added in v0.9.1

type WAF struct {
	// Mode defines On or DetectionOnly
	Mode string
	// Which WAF Module should be used
	Module string
}

WAF Defines the WAF Config structure for the Backend

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL