Documentation ¶
Index ¶
- type AccessLog
- type Backend
- type Config
- type CookieSessionAffinity
- type Endpoint
- type EventLog
- type Events
- type FastCGIParam
- type HTTP
- type Hash
- type Location
- type LogFormat
- type Nginx
- type Params
- type ProxyProtocol
- type ProxySetHeader
- type Queue
- type Random
- type Return
- type Rewrite
- type Server
- type SessionAffinityConfig
- type Size
- type Stream
- type Time
- type UServer
- type Upstream
- type Zone
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend struct { // Name represents an unique apiv1.Service name formatted as <namespace>-<name>-<port> Name string `json:"name"` Endpoints []Endpoint `json:"endpoints,omitempty"` // StickySessionAffinitySession contains the StickyConfig object with stickyness configuration SessionAffinity SessionAffinityConfig `json:"sessionAffinityConfig"` // Consistent hashing by NGINX variable UpstreamHashBy string `json:"upstream-hash-by,omitempty"` // LB algorithm configuration per ingress LoadBalancing string `json:"load-balance,omitempty"` }
Backend describes one or more remote server/s (endpoints) associated with a service
func CreateBackendByPool ¶
CreateBackendByPool create backend by pool
type CookieSessionAffinity ¶
type CookieSessionAffinity struct { Name string `json:"name"` Hash string `json:"hash"` Expires string `json:"expires,omitempty"` MaxAge string `json:"maxage,omitempty"` Locations map[string][]string `json:"locations,omitempty"` Path string `json:"path,omitempty"` }
CookieSessionAffinity defines the structure used in Affinity configured by Cookies. +k8s:deepcopy-gen=true
type Endpoint ¶
type Endpoint struct { // Address IP address of the endpoint Address string `json:"address"` // Port number of the TCP port Port string `json:"port"` // Weight weight of the endpoint Weight int `json:"weight"` // Target returns a reference to the object providing the endpoint Target *apiv1.ObjectReference `json:"target,omitempty"` }
Endpoint describes a kubernetes endpoint in a backend +k8s:deepcopy-gen=true
type FastCGIParam ¶
FastCGIParam sets a parameter that should be passed to the FastCGI server.
type HTTP ¶
type HTTP struct { DefaultType string SendFile bool KeepaliveTimeout Time ClientMaxBodySize Size ClientBodyBufferSize Size ProxyConnectTimeout Time ProxySendTimeout Time ProxyReadTimeout Time ProxyBufferSize Size ProxyBuffers Size ProxyBusyBuffersSize Size StatusPort int UpstreamsDict Size HTTPListen int HTTPSListen int AccessLogPath string DisableAccessLog bool AccessLogFormat string // contains filtered or unexported fields }
HTTP contains data for nginx http configuration
type Hash ¶
type Hash struct { Key bool // The key can contain text, variables, and their combinations. UseConsistent bool // If the consistent parameter is specified the ketama consistent hashing method will be used instead. }
Specifies a load balancing method for a server group where the client-server mapping is based on the hashed key value
type Location ¶
type Location struct { Path string Rewrite rewrite.Config Return Return // Sets the protocol and address of a proxied server and an optional URI to which a location should be mapped ProxyPass string // Sets the text that should be changed in the “Location” and “Refresh” header fields of a proxied server response // TODO: mv ProxyRedirect to Proxy ProxyRedirect string EnableMetrics bool //Enables or disables monitor DisableAccessLog bool //disable or enables access log AccessLogPath string ErrorLogPath string DisableProxyPass bool //PathRewrite if true, path will not passed to the upstream PathRewrite bool NameCondition map[string]*v1.Condition // Proxy contains information about timeouts and buffer sizes // to be used in connections against endpoints // +optional Proxy proxy.Config `json:"proxy,omitempty"` }
Location sets configuration depending on a request URI.
func (*Location) Validation ¶
Validation validation nginx parameters
type Nginx ¶
type Nginx struct { WorkerProcesses int WorkerRlimitNofile int ErrorLog string ErrorLogLevel string User string EventLog EventLog Events Events HTTP *HTTP Stream *Stream }
Nginx nginx config model
type Params ¶
type Params struct { Weight int // Default 1. Sets the weight of the server. MaxConns int // Default value is zero, meaning there is no limit. Limits the maximum number of simultaneous active connections to the proxied server. MaxFails int // Sets the number of unsuccessful attempts to communicate with the server. FailTimeout string // default 10s. The period of time the server will be considered unavailable. UseBackup bool // Marks the server as a backup server. UseDown bool // Marks the server as permanently unavailable. UseResolve bool // Monitors changes of the IP addresses that correspond to a domain name of the server, and automatically modifies the upstream configuration without the need of restarting nginx. Route string // Sets the server route name. Service string // Enables resolving of DNS SRV records and sets the service name SlowStart Time // Sets the time during which the server will recover its weight from zero to a nominal value, when unhealthy server becomes healthy, or when the server becomes available after a period of time it was considered unavailable. UseDrain bool // Puts the server into the “draining” mode }
parameters of a server in upstream
type ProxyProtocol ¶
ProxyProtocol describes the proxy protocol configuration
type ProxySetHeader ¶
ProxySetHeader allows redefining or appending fields to the request header passed to the proxied server.
type Queue ¶
type Queue struct { Num int // The maximum number of requests Timeout Time // Default 60s. The time a request can be kept in the queue. }
If an upstream server cannot be selected immediately while processing a request, the request will be placed into the queue
type Server ¶
type Server struct { Listen string // DefaultType: listen *:80 | *:8000; Sets the address and port for IP, or the path for a UNIX-domain socket on which the server will accept requests Protocol string Root string // Sets the root directory for requests. ServerName string // Sets names of a virtual server KeepaliveTimeout Time // DefaultType 60s. Sets a timeout during which an idle keepalive connection to an upstream server will stay open. DefaultType string // Defines the default MIME type of a response. Charset string // Adds the specified charset to the “Content-Type” response header field. ServerTokens bool // Enables or disables emitting nginx version on error pages and in the “Server” response header field. ClientMaxBodySize Size // Sets the maximum allowed size of the client request body ChunkedTransferEncoding bool // Allows disabling chunked transfer encoding in HTTP/1.1 ProxyConnectTimeout Time ProxyTimeout Time ProxyPass string SSLCertificate string // Specifies a file with the certificate in the PEM format. SSLCertificateKey string // Specifies a file with the secret key in the PEM format. EnableSSLStapling bool ForceSSLRedirect bool Return Return Rewrites []Rewrite Locations []*Location OptionValue map[string]string UpstreamName string //used for tcp and udp server // Sets the number of datagrams expected from the proxied server in response // to the client request if the UDP protocol is used. // http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_responses // Default: 1 ProxyStreamResponses int ProxyStreamTimeout string //proxy protocol for tcp real ip ProxyProtocol ProxyProtocol }
Server sets configuration for a virtual server...
func (*Server) Validation ¶
Validation validation nginx parameters
type SessionAffinityConfig ¶
type SessionAffinityConfig struct { AffinityType string `json:"name"` CookieSessionAffinity CookieSessionAffinity `json:"cookieSessionAffinity"` }
SessionAffinityConfig describes different affinity configurations for new sessions. Once a session is mapped to a backend based on some affinity setting, it retains that mapping till the backend goes down, or the ingress controller restarts. Exactly one of these values will be set on the upstream, since multiple affinity values are incompatible. Once set, the backend makes no guarantees about honoring updates.
type Upstream ¶
type Upstream struct { Name string UseIpHash bool // The method ensures that requests from the same client will always be passed to the same server except when this server is unavailable. Zone Zone State string // Specifies a file that keeps the state of the dynamically configurable group. Hash Hash Keepalive int // Sets the maximum number of idle keepalive connections to upstream servers that are preserved in the cache of each worker process KeepaliveRequests int // Default 100. Sets the maximum number of requests that can be served through one keepalive connection. KeepaliveTimeout Time // Default 60s. Sets a timeout during which an idle keepalive connection to an upstream server will stay open. UseNtlm bool // Allows proxying requests with NTLM Authentication. UseLeastConn bool // Pass the request to the sever with the least numbers of connections. Queue Queue // TODO [emerg] unknown directive "queue" Random Random Servers []UServer }
Defines a group of servers
func (Upstream) Validation ¶
Validation validation nginx parameters