[backends] {{range $backendName, $backend := .Backends}} [backends."{{$backendName}}"] {{if $backend.CircuitBreaker}} [backends."{{$backendName}}".circuitBreaker] expression = "{{$backend.CircuitBreaker.Expression}}" {{end}} [backends."{{$backendName}}".loadBalancer] method = "{{$backend.LoadBalancer.Method}}" {{if $backend.LoadBalancer.Sticky}} sticky = true {{end}} {{if $backend.LoadBalancer.Stickiness}} [backends."{{$backendName}}".loadBalancer.stickiness] cookieName = "{{$backend.LoadBalancer.Stickiness.CookieName}}" {{end}} {{if $backend.Buffering }} [backends."{{ $backendName }}".buffering] maxRequestBodyBytes = {{ $backend.Buffering.MaxRequestBodyBytes }} memRequestBodyBytes = {{ $backend.Buffering.MemRequestBodyBytes }} maxResponseBodyBytes = {{ $backend.Buffering.MaxResponseBodyBytes }} memResponseBodyBytes = {{ $backend.Buffering.MemResponseBodyBytes }} retryExpression = "{{ $backend.Buffering.RetryExpression }}" {{end}} {{range $serverName, $server := $backend.Servers}} [backends."{{$backendName}}".servers."{{$serverName}}"] url = "{{$server.URL}}" weight = {{$server.Weight}} {{end}} {{end}} [frontends] {{range $frontendName, $frontend := .Frontends}} [frontends."{{$frontendName}}"] backend = "{{$frontend.Backend}}" priority = {{$frontend.Priority}} passHostHeader = {{$frontend.PassHostHeader}} entryPoints = [{{range $frontend.EntryPoints}} "{{.}}", {{end}}] basicAuth = [{{range $frontend.BasicAuth}} "{{.}}", {{end}}] whitelistSourceRange = [{{range $frontend.WhitelistSourceRange}} "{{.}}", {{end}}] {{if $frontend.Redirect}} [frontends."{{$frontendName}}".redirect] entryPoint = "{{$frontend.RedirectEntryPoint}}" regex = "{{$frontend.RedirectRegex}}" replacement = "{{$frontend.RedirectReplacement}}" {{end}} {{if $frontend.Headers }} [frontends."{{$frontendName}}".headers] SSLRedirect = {{$frontend.Headers.SSLRedirect}} SSLTemporaryRedirect = {{$frontend.Headers.SSLTemporaryRedirect}} SSLHost = "{{$frontend.Headers.SSLHost}}" STSSeconds = {{$frontend.Headers.STSSeconds}} STSIncludeSubdomains = {{$frontend.Headers.STSIncludeSubdomains}} STSPreload = {{$frontend.Headers.STSPreload}} ForceSTSHeader = {{$frontend.Headers.ForceSTSHeader}} FrameDeny = {{$frontend.Headers.FrameDeny}} CustomFrameOptionsValue = "{{$frontend.Headers.CustomFrameOptionsValue}}" ContentTypeNosniff = {{$frontend.Headers.ContentTypeNosniff}} BrowserXSSFilter = {{$frontend.Headers.BrowserXSSFilter}} ContentSecurityPolicy = "{{$frontend.Headers.ContentSecurityPolicy}}" PublicKey = "{{$frontend.Headers.PublicKey}}" ReferrerPolicy = "{{$frontend.Headers.ReferrerPolicy}}" IsDevelopment = {{$frontend.Headers.IsDevelopment}} {{if $frontend.Headers.AllowedHosts}} AllowedHosts = [{{range $frontend.Headers.AllowedHosts}} "{{.}}", {{end}}] {{end}} {{if $frontend.Headers.HostsProxyHeaders}} HostsProxyHeaders = [{{range $frontend.Headers.HostsProxyHeaders}} "{{.}}", {{end}}] {{end}} {{if $frontend.Headers.CustomRequestHeaders}} [frontends."{{$frontendName}}".headers.customrequestheaders] {{range $k, $v := $frontend.Headers.CustomRequestHeaders}} {{$k}} = "{{$v}}" {{end}} {{end}} {{if $frontend.Headers.CustomResponseHeaders}} [frontends."{{$frontendName}}".headers.customresponseheaders] {{range $k, $v := $frontend.Headers.CustomResponseHeaders}} {{$k}} = "{{$v}}" {{end}} {{end}} {{if $frontend.Headers.SSLProxyHeaders}} [frontends."{{$frontendName}}".headers.SSLProxyHeaders] {{range $k, $v := $frontend.Headers.SSLProxyHeaders}} {{$k}} = "{{$v}}" {{end}} {{end}} {{end}} {{range $routeName, $route := $frontend.Routes}} [frontends."{{$frontendName}}".routes."{{$routeName}}"] rule = "{{$route.Rule}}" {{end}} {{end}} {{range $tls := .TLS }} [[tls]] entryPoints = [{{range $tls.EntryPoints }} "{{.}}", {{end}}] [tls.certificate] certFile = """{{ $tls.Certificate.CertFile }}""" keyFile = """{{ $tls.Certificate.KeyFile }}""" {{end}}