[log] logLevel = "DEBUG" [global] debug = true [api] [entrypoints] [entrypoints.web] address = ":8000" [tracing] backend = "{{.TracingBackend}}" servicename = "tracing" [tracing.zipkin] httpEndpoint = "http://{{.ZipkinIP}}:9411/api/v1/spans" debug = true [tracing.jaeger] samplingType = "const" samplingParam = 1.0 [providers] [providers.file] [http.routers] [http.routers.router1] Service = "service1" Middlewares = ["retry", "ratelimit"] Rule = "Path(`/ratelimit`)" [http.routers.router2] Service = "service2" Middlewares = ["retry"] Rule = "Path(`/retry`)" [http.routers.router3] Service = "service3" Middlewares = ["retry", "basic-auth"] Rule = "Path(`/auth`)" [http.middlewares] [http.middlewares.retry.retry] attempts = 3 [http.middlewares.basic-auth.BasicAuth] users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"] [http.middlewares.ratelimit.RateLimit] extractorfunc = "client.ip" [http.middlewares.ratelimit.RateLimit.rateset.rateset1] period = "60s" average = 4 burst = 5 [http.middlewares.ratelimit.RateLimit.rateset.rateset2] period = "3s" average = 1 burst = 2 [http.services] [http.services.service1] [http.services.service1.LoadBalancer] passHostHeader = true [[http.services.service1.LoadBalancer.Servers]] URL = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}" Weight = 1 [http.services.service2] passHostHeader = true [http.services.service2.LoadBalancer] [[http.services.service2.LoadBalancer.Servers]] URL = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}" Weight = 1 [http.services.service3] passHostHeader = true [http.services.service3.LoadBalancer] [[http.services.service3.LoadBalancer.Servers]] URL = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}" Weight = 1