func NewDefault()

in internal/ingress/controller/config/config.go [770:937]


func NewDefault() Configuration {
	defIPCIDR := make([]string, 0)
	defBindAddress := make([]string, 0)
	defBlockEntity := make([]string, 0)
	defNginxStatusIpv4Whitelist := make([]string, 0)
	defNginxStatusIpv6Whitelist := make([]string, 0)
	defResponseHeaders := make([]string, 0)
	defIPCIDR = append(defIPCIDR, "0.0.0.0/0")
	defNginxStatusIpv4Whitelist = append(defNginxStatusIpv4Whitelist, "127.0.0.1")
	defNginxStatusIpv6Whitelist = append(defNginxStatusIpv6Whitelist, "::1")
	defProxyDeadlineDuration := time.Duration(5) * time.Second
	defGlobalExternalAuth := GlobalExternalAuth{"", "", "", "", "", append(defResponseHeaders, ""), "", "", "", []string{}, map[string]string{}}

	cfg := Configuration{

		AllowSnippetAnnotations:          true,
		AllowBackendServerHeader:         false,
		AnnotationValueWordBlocklist:     "",
		AccessLogPath:                    "/var/log/nginx/access.log",
		AccessLogParams:                  "",
		EnableAccessLogForDefaultBackend: false,
		WorkerCPUAffinity:                "",
		ErrorLogPath:                     "/var/log/nginx/error.log",
		BlockCIDRs:                       defBlockEntity,
		BlockUserAgents:                  defBlockEntity,
		BlockReferers:                    defBlockEntity,
		BrotliLevel:                      4,
		BrotliMinLength:                  20,
		BrotliTypes:                      brotliTypes,
		ClientHeaderBufferSize:           "1k",
		ClientHeaderTimeout:              60,
		ClientBodyBufferSize:             "8k",
		ClientBodyTimeout:                60,
		EnableUnderscoresInHeaders:       false,
		ErrorLogLevel:                    errorLevel,
		UseForwardedHeaders:              false,
		EnableRealIp:                     false,
		ForwardedForHeader:               "X-Forwarded-For",
		ComputeFullForwardedFor:          false,
		ProxyAddOriginalURIHeader:        false,
		GenerateRequestID:                true,
		HTTP2MaxFieldSize:                "4k",
		HTTP2MaxHeaderSize:               "16k",
		HTTP2MaxRequests:                 1000,
		HTTP2MaxConcurrentStreams:        128,
		HTTPRedirectCode:                 308,
		HSTS:                             true,
		HSTSIncludeSubdomains:            true,
		HSTSMaxAge:                       hstsMaxAge,
		HSTSPreload:                      false,
		IgnoreInvalidHeaders:             true,
		GzipLevel:                        1,
		GzipMinLength:                    256,
		GzipTypes:                        gzipTypes,
		KeepAlive:                        75,
		KeepAliveRequests:                100,
		LargeClientHeaderBuffers:         "4 8k",
		LogFormatEscapeJSON:              false,
		LogFormatStream:                  logFormatStream,
		LogFormatUpstream:                logFormatUpstream,
		EnableMultiAccept:                true,
		MaxWorkerConnections:             16384,
		MaxWorkerOpenFiles:               0,
		MapHashBucketSize:                64,
		NginxStatusIpv4Whitelist:         defNginxStatusIpv4Whitelist,
		NginxStatusIpv6Whitelist:         defNginxStatusIpv6Whitelist,
		ProxyRealIPCIDR:                  defIPCIDR,
		ProxyProtocolHeaderTimeout:       defProxyDeadlineDuration,
		ServerNameHashMaxSize:            1024,
		ProxyHeadersHashMaxSize:          512,
		ProxyHeadersHashBucketSize:       64,
		ProxyStreamResponses:             1,
		ReusePort:                        true,
		ShowServerTokens:                 false,
		SSLBufferSize:                    sslBufferSize,
		SSLCiphers:                       sslCiphers,
		SSLECDHCurve:                     "auto",
		SSLProtocols:                     sslProtocols,
		SSLEarlyData:                     sslEarlyData,
		SSLRejectHandshake:               false,
		SSLSessionCache:                  true,
		SSLSessionCacheSize:              sslSessionCacheSize,
		SSLSessionTickets:                false,
		SSLSessionTimeout:                sslSessionTimeout,
		EnableBrotli:                     false,
		UseGzip:                          false,
		UseGeoIP:                         true,
		UseGeoIP2:                        false,
		WorkerProcesses:                  strconv.Itoa(runtime.NumCPU()),
		WorkerShutdownTimeout:            "240s",
		VariablesHashBucketSize:          256,
		VariablesHashMaxSize:             2048,
		UseHTTP2:                         true,
		ProxyStreamTimeout:               "600s",
		ProxyStreamNextUpstream:          true,
		ProxyStreamNextUpstreamTimeout:   "600s",
		ProxyStreamNextUpstreamTries:     3,
		Backend: defaults.Backend{
			ProxyBodySize:            bodySize,
			ProxyConnectTimeout:      5,
			ProxyReadTimeout:         60,
			ProxySendTimeout:         60,
			ProxyBuffersNumber:       4,
			ProxyBufferSize:          "4k",
			ProxyCookieDomain:        "off",
			ProxyCookiePath:          "off",
			ProxyNextUpstream:        "error timeout",
			ProxyNextUpstreamTimeout: 0,
			ProxyNextUpstreamTries:   3,
			ProxyRequestBuffering:    "on",
			ProxyRedirectFrom:        "off",
			ProxyRedirectTo:          "off",
			PreserveTrailingSlash:    false,
			SSLRedirect:              true,
			CustomHTTPErrors:         []int{},
			WhitelistSourceRange:     []string{},
			SkipAccessLogURLs:        []string{},
			LimitRate:                0,
			LimitRateAfter:           0,
			ProxyBuffering:           "off",
			ProxyHTTPVersion:         "1.1",
			ProxyMaxTempFileSize:     "1024m",
			ServiceUpstream:          false,
		},
		UpstreamKeepaliveConnections:           320,
		UpstreamKeepaliveTimeout:               60,
		UpstreamKeepaliveRequests:              10000,
		LimitConnZoneVariable:                  defaultLimitConnZoneVariable,
		BindAddressIpv4:                        defBindAddress,
		BindAddressIpv6:                        defBindAddress,
		OpentracingTrustIncomingSpan:           true,
		ZipkinCollectorPort:                    9411,
		ZipkinServiceName:                      "nginx",
		ZipkinSampleRate:                       1.0,
		JaegerCollectorPort:                    6831,
		JaegerPropagationFormat:                "jaeger",
		JaegerServiceName:                      "nginx",
		JaegerSamplerType:                      "const",
		JaegerSamplerParam:                     "1",
		JaegerSamplerPort:                      5778,
		JaegerSamplerHost:                      "http://127.0.0.1",
		DatadogServiceName:                     "nginx",
		DatadogEnvironment:                     "prod",
		DatadogCollectorPort:                   8126,
		DatadogOperationNameOverride:           "nginx.handle",
		DatadogSampleRate:                      1.0,
		DatadogPrioritySampling:                true,
		LimitReqStatusCode:                     503,
		LimitConnStatusCode:                    503,
		SyslogPort:                             514,
		NoTLSRedirectLocations:                 "/.well-known/acme-challenge",
		NoAuthLocations:                        "/.well-known/acme-challenge",
		GlobalExternalAuth:                     defGlobalExternalAuth,
		ProxySSLLocationOnly:                   false,
		DefaultType:                            "text/html",
		GlobalRateLimitMemcachedPort:           11211,
		GlobalRateLimitMemcachedConnectTimeout: 50,
		GlobalRateLimitMemcachedMaxIdleTimeout: 10000,
		GlobalRateLimitMemcachedPoolSize:       50,
		GlobalRateLimitStatucCode:              429,
	}

	if klog.V(5).Enabled() {
		cfg.ErrorLogLevel = "debug"
	}

	return cfg
}