[backends] {{range $service := .Services}} {{$sname := $service.ServiceName}} {{ $circuitBreaker := getCircuitBreaker $service.Attributes }} {{if $circuitBreaker }} [backends."backend-{{ $sname }}".circuitBreaker] expression = "{{ $circuitBreaker.Expression }}" {{end}} {{ $loadBalancer := getLoadBalancer $service.Attributes }} {{if $loadBalancer }} [backends."backend-{{ $sname }}".loadBalancer] method = "{{ $loadBalancer.Method }}" sticky = {{ $loadBalancer.Sticky }} {{if $loadBalancer.Stickiness }} [backends."backend-{{ $sname }}".loadBalancer.stickiness] cookieName = "{{ $loadBalancer.Stickiness.CookieName }}" {{end}} {{end}} {{ $maxConn := getMaxConn $service.Attributes }} {{if $maxConn }} [backends."backend-{{ $sname }}".maxConn] extractorFunc = "{{ $maxConn.ExtractorFunc }}" amount = {{ $maxConn.Amount }} {{end}} {{end}} {{range $index, $node := .Nodes}} [backends."backend-{{ getBackend $node }}".servers."{{ getServerName $node $index }}"] url = "{{ getProtocol $node.Service.Tags }}://{{ getBackendAddress $node }}:{{ $node.Service.Port }}" weight = {{ getWeight $node.Service.Tags }} {{end}} [frontends] {{range $service := .Services}} [frontends."frontend-{{ $service.ServiceName }}"] backend = "backend-{{ $service.ServiceName }}" priority = {{ getPriority $service.Attributes }} passHostHeader = {{ getPassHostHeader $service.Attributes }} entryPoints = [{{range getFrontEndEntryPoints $service.Attributes }} "{{.}}", {{end}}] basicAuth = [{{range getBasicAuth $service.Attributes }} "{{.}}", {{end}}] [frontends."frontend-{{$service.ServiceName}}".routes."route-host-{{$service.ServiceName}}"] rule = "{{ getFrontendRule $service }}" {{end}}