Dynamic Configuration Refactoring
This commit is contained in:
parent
d3ae88f108
commit
a09dfa3ce1
452 changed files with 21023 additions and 9419 deletions
|
@ -39,4 +39,4 @@ checkNewVersion = false
|
|||
[docker]
|
||||
exposedByDefault = false
|
||||
domain = "docker.local"
|
||||
watch = true
|
||||
watch = true
|
||||
|
|
|
@ -40,14 +40,14 @@ defaultEntryPoints = ["http", "https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend]
|
||||
[backends.backend.servers.server1]
|
||||
[services]
|
||||
[services.test.loadbalancer]
|
||||
[[services.test.loadbalancer.servers]]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend]
|
||||
backend = "backend"
|
||||
[frontends.frontend.routes.test]
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
[routers]
|
||||
[routers.test]
|
||||
service = "test"
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
entryPoints = ["https"]
|
||||
|
|
|
@ -37,14 +37,14 @@ path="/traefik"
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend]
|
||||
[backends.backend.servers.server1]
|
||||
[services]
|
||||
[services.test.loadbalancer]
|
||||
[[services.test.loadbalancer.servers]]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend]
|
||||
backend = "backend"
|
||||
[frontends.frontend.routes.test]
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
[routers]
|
||||
[routers.test]
|
||||
service = "test"
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
entryPoints = ["https"]
|
||||
|
|
|
@ -43,14 +43,14 @@ defaultEntryPoints = ["http", "https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend]
|
||||
[backends.backend.servers.server1]
|
||||
[services]
|
||||
[services.test.loadbalancer]
|
||||
[[services.test.loadbalancer.servers]]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend]
|
||||
backend = "backend"
|
||||
[frontends.frontend.routes.test]
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
[routers]
|
||||
[routers.test]
|
||||
service = "test"
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
entryPoints = ["https"]
|
||||
|
|
|
@ -43,17 +43,3 @@ defaultEntryPoints = ["http", "https"]
|
|||
{{end}}
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend]
|
||||
[backends.backend.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend]
|
||||
backend = "backend"
|
||||
[frontends.frontend.routes.test]
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
[backends]
|
||||
[backends.backend]
|
||||
[backends.backend.servers.server1]
|
||||
[services]
|
||||
[services.test.loadbalancer]
|
||||
[[services.test.loadbalancer.servers]]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend]
|
||||
backend = "backend"
|
||||
[frontends.frontend.routes.test]
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
[routers]
|
||||
[routers.test]
|
||||
service = "test"
|
||||
rule = "Host:traefik.acme.wtf"
|
||||
entryPoints = ["https"]
|
||||
|
||||
|
||||
[[tls]]
|
||||
entryPoints = ["https"]
|
||||
[tls.certificate]
|
||||
certFile = "fixtures/acme/ssl/wildcard.crt"
|
||||
keyFile = "fixtures/acme/ssl/wildcard.key"
|
||||
keyFile = "fixtures/acme/ssl/wildcard.key"
|
||||
|
|
|
@ -7,24 +7,29 @@ logLevel = "DEBUG"
|
|||
address = ":8080"
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:8989474"
|
||||
weight = 1
|
||||
[backends.error]
|
||||
[backends.error.servers.error]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
passHostHeader = true
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:test.local"
|
||||
[frontends.frontend1.errors]
|
||||
[frontends.frontend1.errors.networks]
|
||||
status = ["500-502", "503-599"]
|
||||
backend = "error"
|
||||
query = "/50x.html"
|
||||
[routers]
|
||||
[routers.router1]
|
||||
middlewares = ["error"]
|
||||
service = "service1"
|
||||
|
||||
[routers.router1.routes.test_1]
|
||||
rule = "Host:test.local"
|
||||
|
||||
[middlewares]
|
||||
[middlewares.error.errors]
|
||||
status = ["500-502", "503-599"]
|
||||
service = "error"
|
||||
query = "/50x.html"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
passHostHeader = true
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server1}}:8989474"
|
||||
weight = 1
|
||||
|
||||
[services.error.loadbalancer]
|
||||
[[services.error.loadbalancer.servers]]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
|
|
@ -7,24 +7,29 @@ logLevel = "DEBUG"
|
|||
address = ":8080"
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[backends.error]
|
||||
[backends.error.servers.error]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
passHostHeader = true
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:test.local"
|
||||
[frontends.frontend1.errors]
|
||||
[frontends.frontend1.errors.networks]
|
||||
status = ["500-502", "503-599"]
|
||||
backend = "error"
|
||||
query = "/50x.html"
|
||||
[routers]
|
||||
[routers.router1]
|
||||
middlewares = ["error"]
|
||||
service = "service1"
|
||||
|
||||
[routers.router1.routes.test_1]
|
||||
rule = "Host:test.local"
|
||||
|
||||
[middlewares]
|
||||
[middlewares.error.errors]
|
||||
status = ["500-502", "503-599"]
|
||||
service = "error"
|
||||
query = "/50x.html"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
passHostHeader = true
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
|
||||
[services.error.loadbalancer]
|
||||
[[services.error.loadbalancer.servers]]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
# rules
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://172.17.0.2:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Path:/test1"
|
||||
service = "service1"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://172.17.0.2:80"
|
||||
weight = 1
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
# rules
|
||||
[backends]
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://172.17.0.123:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
[routers]
|
||||
[routers.router2]
|
||||
rule = "Path:/test2"
|
||||
service = "service2"
|
||||
|
||||
[services]
|
||||
[services.service2.loadbalancer]
|
||||
[[services.service2.loadbalancer.servers]]
|
||||
url = "http://172.17.0.123:80"
|
||||
weight = 1
|
||||
|
|
|
@ -2,39 +2,41 @@ defaultEntryPoints = ["http"]
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
|
||||
logLevel = "DEBUG"
|
||||
|
||||
[file]
|
||||
|
||||
# rules
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.circuitbreaker]
|
||||
expression = "NetworkErrorRatio() > 0.5"
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://172.17.0.2:80"
|
||||
weight = 10
|
||||
[backends.backend1.servers.server2]
|
||||
url = "http://172.17.0.3:80"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.LoadBalancer]
|
||||
method = "drr"
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://172.17.0.4:80"
|
||||
weight = 1
|
||||
[backends.backend2.servers.server2]
|
||||
url = "http://172.17.0.5:80"
|
||||
weight = 2
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend2"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Host:test.localhost"
|
||||
[frontends.frontend2]
|
||||
backend = "backend1"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
service = "service2"
|
||||
|
||||
[routers.router2]
|
||||
rule = "Path:/test"
|
||||
middlewares = ["circuitbreaker"]
|
||||
service = "service1"
|
||||
|
||||
[middlewares]
|
||||
[middlewares.circuitbreaker.circuitbreaker]
|
||||
expression = "NetworkErrorRatio() > 0.5"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://172.17.0.2:80"
|
||||
weight = 10
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://172.17.0.3:80"
|
||||
weight = 1
|
||||
|
||||
[services.service2]
|
||||
[services.service2.loadbalancer]
|
||||
method = "drr"
|
||||
[[services.service2.loadbalancer.servers]]
|
||||
url = "http://172.17.0.4:80"
|
||||
weight = 1
|
||||
[[services.service2.loadbalancer.servers]]
|
||||
url = "http://172.17.0.5:80"
|
||||
weight = 2
|
||||
|
|
|
@ -2,28 +2,27 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
rootCAs = [ """{{ .CertContent }}""" ]
|
||||
|
||||
debug = true
|
||||
|
||||
[entryPoints]
|
||||
[entryPoints.https]
|
||||
address = ":4443"
|
||||
address = ":4443"
|
||||
[entryPoints.https.tls]
|
||||
[[entryPoints.https.tls.certificates]]
|
||||
certFile = """{{ .CertContent }}"""
|
||||
keyFile = """{{ .KeyContent }}"""
|
||||
|
||||
certFile = """{{ .CertContent }}"""
|
||||
keyFile = """{{ .KeyContent }}"""
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "https://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Host:127.0.0.1"
|
||||
service = "service1"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "https://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
defaultEntryPoints = ["http"]
|
||||
|
||||
debug=true
|
||||
debug = true
|
||||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8081"
|
||||
address = ":8081"
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "h2c://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Host:127.0.0.1"
|
||||
service = "service1"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "h2c://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
defaultEntryPoints = ["https"]
|
||||
|
||||
debug = true
|
||||
|
||||
[entryPoints]
|
||||
[entryPoints.https]
|
||||
address = ":4443"
|
||||
address = ":4443"
|
||||
[entryPoints.https.tls]
|
||||
[[entryPoints.https.tls.certificates]]
|
||||
certFile = """{{ .CertContent }}"""
|
||||
keyFile = """{{ .KeyContent }}"""
|
||||
certFile = """{{ .CertContent }}"""
|
||||
keyFile = """{{ .KeyContent }}"""
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Host:127.0.0.1"
|
||||
service = "service1"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "h2c://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:127.0.0.1"
|
||||
|
|
|
@ -2,28 +2,29 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
insecureSkipVerify = true
|
||||
|
||||
debug = true
|
||||
|
||||
[entryPoints]
|
||||
[entryPoints.https]
|
||||
address = ":4443"
|
||||
address = ":4443"
|
||||
[entryPoints.https.tls]
|
||||
[[entryPoints.https.tls.certificates]]
|
||||
certFile = """{{ .CertContent }}"""
|
||||
keyFile = """{{ .KeyContent }}"""
|
||||
certFile = """{{ .CertContent }}"""
|
||||
keyFile = """{{ .KeyContent }}"""
|
||||
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "https://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Host:127.0.0.1"
|
||||
service = "service1"
|
||||
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "https://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
|
|
@ -15,17 +15,15 @@ rootCAs = [ """{{ .CertContent }}""" ]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.responseForwarding]
|
||||
flushInterval="1ms"
|
||||
[backends.backend1.servers.server1]
|
||||
url = "https://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
rule = "Host:127.0.0.1"
|
||||
service = "service1"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[services.service1.loadbalancer.responseForwarding]
|
||||
flushInterval="1ms"
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "https://127.0.0.1:{{ .GRPCServerPort }}"
|
||||
weight = 1
|
||||
|
|
|
@ -4,30 +4,28 @@ logLevel = "DEBUG"
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http1]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
[entryPoints.http2]
|
||||
address = ":9000"
|
||||
address = ":9000"
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.LoadBalancer]
|
||||
method = "drr"
|
||||
[backends.backend1.healthcheck]
|
||||
path = "/health"
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[backends.backend1.servers.server2]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
service = "service1"
|
||||
rule = "Host:test.localhost"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
method = "drr"
|
||||
[services.service1.loadbalancer.healthcheck]
|
||||
path = "/health"
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
|
|
@ -4,30 +4,29 @@ logLevel = "DEBUG"
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http1]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
[entryPoints.http2]
|
||||
address = ":9000"
|
||||
address = ":9000"
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.LoadBalancer]
|
||||
method = "wrr"
|
||||
[backends.backend1.healthcheck]
|
||||
path = "/health"
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[backends.backend1.servers.server2]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
service = "service1"
|
||||
rule = "Host:test.localhost"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
method = "wrr"
|
||||
[services.service1.loadbalancer.healthcheck]
|
||||
path = "/health"
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
|
|
@ -4,24 +4,25 @@ logLevel = "DEBUG"
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.healthcheck]
|
||||
path = "/health"
|
||||
port = 80
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:81"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
service = "service1"
|
||||
rule = "Host:test.localhost"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
method = "drr"
|
||||
[services.service1.loadbalancer.healthcheck]
|
||||
path = "/health"
|
||||
port = 80
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server1}}:81"
|
||||
weight = 1
|
||||
|
|
|
@ -4,26 +4,26 @@ logLevel = "DEBUG"
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.healthcheck]
|
||||
path = "/health"
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[backends.backend1.servers.server2]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
[routers]
|
||||
[routers.router1]
|
||||
service = "service1"
|
||||
rule = "Host:test.localhost"
|
||||
|
||||
[services]
|
||||
[services.service1.loadbalancer]
|
||||
[services.service1.loadbalancer.healthcheck]
|
||||
path = "/health"
|
||||
interval = "1s"
|
||||
timeout = "0.9s"
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
[[services.service1.loadbalancer.servers]]
|
||||
url = "http://{{.Server2}}:80"
|
||||
weight = 1
|
||||
|
|
|
@ -20,22 +20,24 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://127.0.0.1:9020"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Rule = "Host:snitest.org"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
rule = "Host:snitest.org"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9020"
|
||||
Weight = 1
|
||||
|
|
|
@ -19,22 +19,24 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://127.0.0.1:9020"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Rule = "Host:snitest.org"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
rule = "Host:snitest.org"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9020"
|
||||
Weight = 1
|
||||
|
|
|
@ -19,23 +19,24 @@ defaultEntryPoints = ["https"]
|
|||
[api]
|
||||
|
||||
[file]
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Rule = "Host:snitest.org"
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://127.0.0.1:9020"
|
||||
weight = 1
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
rule = "Host:snitest.org"
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9020"
|
||||
Weight = 1
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://127.0.0.1:9020"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Rule = "Host:snitest.org"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
rule = "Host:snitest.org"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9020"
|
||||
Weight = 1
|
||||
|
||||
[[tls]]
|
||||
entryPoints = ["https"]
|
||||
|
|
|
@ -6,6 +6,7 @@ defaultEntryPoints = ["https"]
|
|||
[entryPoints.https]
|
||||
address = ":4443"
|
||||
[entryPoints.https.tls]
|
||||
|
||||
[entryPoints.https02]
|
||||
address = ":8443"
|
||||
[entryPoints.https02.tls]
|
||||
|
@ -15,4 +16,4 @@ defaultEntryPoints = ["https"]
|
|||
[file]
|
||||
|
||||
fileName = "{{.DynamicConfFileName}}"
|
||||
watch = true
|
||||
watch = true
|
||||
|
|
|
@ -14,21 +14,21 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service1"
|
||||
Rule = "Host:www.snitest.com"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend1"
|
||||
[frontends.frontend2.routes.test_1]
|
||||
rule = "Host:www.snitest.com"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
|
||||
[[tls]]
|
||||
entryPoints = ["https"]
|
||||
|
|
|
@ -5,8 +5,10 @@ defaultEntryPoints = ["http", "https"]
|
|||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8888"
|
||||
|
||||
[entryPoints.http.redirect]
|
||||
entryPoint = "https"
|
||||
|
||||
[entryPoints.https]
|
||||
address = ":8443"
|
||||
[entryPoints.https.tls]
|
||||
|
@ -15,56 +17,88 @@ defaultEntryPoints = ["http", "https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:80"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https"]
|
||||
Rule = "Host: example.com"
|
||||
|
||||
[frontends]
|
||||
[Routers.router2]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "api-slash-strip"]
|
||||
Rule = "Host: example2.com"
|
||||
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host: example.com; PathPrefixStrip: /api"
|
||||
[frontends.frontend2]
|
||||
backend = "backend1"
|
||||
[frontends.frontend2.routes.test_1]
|
||||
rule = "Host: example2.com; PathPrefixStrip: /api/"
|
||||
[Routers.router3]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "foo-add-prefix"]
|
||||
Rule = "Host: test.com"
|
||||
|
||||
[frontends.frontend3]
|
||||
backend = "backend1"
|
||||
[frontends.frontend3.routes.test_1]
|
||||
rule = "Host: test.com; AddPrefix: /foo"
|
||||
[frontends.frontend4]
|
||||
backend = "backend1"
|
||||
[frontends.frontend4.routes.test_1]
|
||||
rule = "Host: test2.com; AddPrefix: /foo/"
|
||||
[Routers.router4]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "foo-slash-add-prefix"]
|
||||
Rule = "Host: test2.com"
|
||||
|
||||
[frontends.frontend5]
|
||||
backend = "backend1"
|
||||
[frontends.frontend5.routes.test_1]
|
||||
rule = "Host: foo.com; PathPrefixStripRegex: /{id:[a-z]+}"
|
||||
[frontends.frontend6]
|
||||
backend = "backend1"
|
||||
[frontends.frontend6.routes.test_1]
|
||||
rule = "Host: foo2.com; PathPrefixStripRegex: /{id:[a-z]+}/"
|
||||
[Routers.router5]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "id-strip-regex-prefix"]
|
||||
Rule = "Host: foo.com"
|
||||
|
||||
[frontends.frontend7]
|
||||
backend = "backend1"
|
||||
[frontends.frontend7.routes.test_1]
|
||||
rule = "Host: bar.com; ReplacePathRegex: /api /"
|
||||
[frontends.frontend8]
|
||||
backend = "backend1"
|
||||
[frontends.frontend8.routes.test_1]
|
||||
rule = "Host: bar2.com; ReplacePathRegex: /api/ /"
|
||||
[Routers.router6]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "id-slash-strip-regex-prefix"]
|
||||
Rule = "Host: foo2.com"
|
||||
|
||||
[frontends.frontend9]
|
||||
backend = "backend1"
|
||||
[frontends.frontend9.routes.test_1]
|
||||
rule = "Host: pow.com; ReplacePath: /api"
|
||||
[frontends.frontend10]
|
||||
backend = "backend1"
|
||||
[frontends.frontend10.routes.test_1]
|
||||
rule = "Host: pow2.com; ReplacePath: /api/"
|
||||
[Routers.router7]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "api-regex-replace"]
|
||||
Rule = "Host: bar.com"
|
||||
|
||||
[Routers.router8]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "api-slash-regex-replace"]
|
||||
Rule = "Host: bar2.com"
|
||||
|
||||
[Routers.router9]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "api-replace-path"]
|
||||
Rule = "Host: pow.com"
|
||||
|
||||
[Routers.router10]
|
||||
Service = "service1"
|
||||
Middlewares = ["redirect-https", "api-slash-replace-path"]
|
||||
Rule = "Host: pow2.com"
|
||||
|
||||
[Middlewares]
|
||||
[Middlewares.api-strip.StripPrefix]
|
||||
prefixes = ["/api"]
|
||||
[Middlewares.api-slash-strip.StripPrefix]
|
||||
prefixes = ["/api/"]
|
||||
[Middlewares.foo-add-prefix.AddPrefix]
|
||||
prefix = "/foo"
|
||||
[Middlewares.foo-slash-add-prefix.AddPrefix]
|
||||
prefix = "/foo/"
|
||||
[Middlewares.id-strip-regex-prefix.StripPrefixRegex]
|
||||
regex = ["/{id:[a-z]+}"]
|
||||
[Middlewares.id-slash-strip-regex-prefix.StripPrefixRegex]
|
||||
regex = ["/{id:[a-z]+}/"]
|
||||
[Middlewares.api-regex-replace.ReplacePathRegex]
|
||||
regex = "/api"
|
||||
replacement = "/"
|
||||
[Middlewares.api-slash-regex-replace.ReplacePathRegex]
|
||||
regex = "/api/"
|
||||
replacement = "/"
|
||||
[Middlewares.api-replace-path.ReplacePath]
|
||||
path = "/api"
|
||||
[Middlewares.api-slash-replace-path.ReplacePath]
|
||||
path = "/api/"
|
||||
[Middlewares.redirect-https.redirect]
|
||||
regex = "^(?:https?://)?([\\w\\._-]+)(?::\\d+)?(.*)$"
|
||||
replacement = "https://${1}:8443${2}"
|
||||
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:80"
|
||||
Weight = 1
|
||||
|
|
|
@ -17,22 +17,24 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "http://127.0.0.1:9020"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Rule = "Host:snitest.org"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
rule = "Host:snitest.org"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9020"
|
||||
Weight = 1
|
||||
|
|
|
@ -20,18 +20,18 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
[Routers.router2]
|
||||
Service = "service1"
|
||||
Rule = "Host:www.snitest.com"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[frontends.frontend2]
|
||||
backend = "backend1"
|
||||
[frontends.frontend2.routes.test_1]
|
||||
rule = "Host:www.snitest.com"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
|
|
|
@ -15,14 +15,15 @@ defaultEntryPoints = ["https"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:9010"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Host:snitest.com"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Host:snitest.com"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:9010"
|
||||
Weight = 1
|
||||
|
|
|
@ -28,14 +28,15 @@ fblo6RBxUQ==
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "{{ .BackendHost }}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path: /ping"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path: /ping"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "{{ .BackendHost }}"
|
||||
Weight = 1
|
||||
|
|
|
@ -13,14 +13,15 @@ rootCAs = [ "fixtures/https/rootcas/local.crt"]
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "{{ .BackendHost }}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path: /ping"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path: /ping"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "{{ .BackendHost }}"
|
||||
Weight = 1
|
||||
|
|
|
@ -27,14 +27,15 @@ entryPoint = "api"
|
|||
################################################################
|
||||
# rules
|
||||
################################################################
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://127.0.0.1:8081"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path: /test1"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path: /test1"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://127.0.0.1:8081"
|
||||
Weight = 1
|
||||
|
|
|
@ -14,14 +14,15 @@ watch = true
|
|||
exposedByDefault = false
|
||||
|
||||
[file]
|
||||
[frontends]
|
||||
[frontends.frontend-1]
|
||||
backend = "backend-test"
|
||||
[frontends.frontend-1.routes.test_1]
|
||||
rule = "PathPrefix:/file"
|
||||
[Routers]
|
||||
[Routers.router-1]
|
||||
Service = "service-test"
|
||||
Rule = "PathPrefix:/file"
|
||||
|
||||
[backends]
|
||||
[backends.backend-test]
|
||||
[backends.backend-test.servers.website]
|
||||
url = "http://{{ .IP }}"
|
||||
weight = 1
|
||||
[Services]
|
||||
[Services.service-test]
|
||||
[Services.service-test.LoadBalancer]
|
||||
|
||||
[[Services.service-test.LoadBalancer.Servers]]
|
||||
URL = "http://{{ .IP }}"
|
||||
Weight = 1
|
||||
|
|
|
@ -3,22 +3,23 @@ defaultEntryPoints = ["http"]
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
[entryPoints.http.proxyProtocol]
|
||||
trustedIPs = ["{{.HaproxyIP}}"]
|
||||
trustedIPs = ["{{.HaproxyIP}}"]
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.WhoamiIP}}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path:/whoami"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path:/whoami"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoamiIP}}"
|
||||
Weight = 1
|
||||
|
|
|
@ -3,22 +3,22 @@ defaultEntryPoints = ["http"]
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
[entryPoints.http.proxyProtocol]
|
||||
trustedIPs = ["1.2.3.4"]
|
||||
trustedIPs = ["1.2.3.4"]
|
||||
|
||||
[api]
|
||||
|
||||
[file]
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path:/whoami"
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.WhoamiIP}}"
|
||||
weight = 1
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path:/whoami"
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoamiIP}}"
|
||||
Weight = 1
|
||||
|
|
|
@ -8,25 +8,29 @@ logLevel = "DEBUG"
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.Server1}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
passHostHeader = true
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path:/"
|
||||
[frontends.frontend1.ratelimit]
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Middlewares = [ "ratelimit" ]
|
||||
Rule = "Path:/"
|
||||
|
||||
[Middlewares]
|
||||
[Middlewares.ratelimit.RateLimit]
|
||||
extractorfunc = "client.ip"
|
||||
[frontends.frontend1.ratelimit.rateset.rateset1]
|
||||
[Middlewares.ratelimit.RateLimit.rateset.rateset1]
|
||||
period = "60s"
|
||||
average = 4
|
||||
burst = 5
|
||||
[frontends.frontend1.ratelimit.rateset.rateset2]
|
||||
[Middlewares.ratelimit.RateLimit.rateset.rateset2]
|
||||
period = "3s"
|
||||
average = 1
|
||||
burst = 2
|
||||
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
passHostHeader = true
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://{{.Server1}}:80"
|
||||
Weight = 1
|
||||
|
|
|
@ -13,16 +13,17 @@ logLevel = "DEBUG"
|
|||
requestAcceptGraceTimeout = "10s"
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend]
|
||||
[backends.backend.servers.server]
|
||||
url = "{{.Server}}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router]
|
||||
Service = "service"
|
||||
Rule = "Path:/service"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend]
|
||||
backend = "backend"
|
||||
[frontends.frontend.routes.service]
|
||||
rule = "Path:/service"
|
||||
[Services]
|
||||
[Services.service]
|
||||
[Services.service.LoadBalancer]
|
||||
|
||||
[[Services.service.LoadBalancer.Servers]]
|
||||
URL = "{{.Server}}"
|
||||
Weight = 1
|
||||
|
||||
[ping]
|
||||
|
|
|
@ -8,20 +8,25 @@ logLevel = "DEBUG"
|
|||
|
||||
[api]
|
||||
|
||||
[retry]
|
||||
|
||||
[file]
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "http://{{.WhoamiEndpoint}}:8080" # not valid
|
||||
weight = 1
|
||||
[backends.backend1.servers.server2]
|
||||
url = "http://{{.WhoamiEndpoint}}:80"
|
||||
weight = 1
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "PathPrefix:/"
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Middlewares = [ "retry" ]
|
||||
Rule = "PathPrefix:/"
|
||||
|
||||
[Middlewares.retry.Retry]
|
||||
Attempts = 3
|
||||
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoamiEndpoint}}:8080"
|
||||
Weight = 1
|
||||
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoamiEndpoint}}:80"
|
||||
Weight = 1
|
||||
|
|
|
@ -7,10 +7,12 @@ defaultEntryPoints = ["http"]
|
|||
|
||||
[entryPoints.traefik]
|
||||
address = ":8001"
|
||||
[entryPoints.traefik.auth.basic]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]
|
||||
|
||||
|
||||
[api]
|
||||
middlewares = ["authentication"]
|
||||
|
||||
[middleware.authentication.basic-auth]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]
|
||||
|
||||
[ping]
|
||||
|
|
|
@ -8,26 +8,26 @@ debug=true
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "{{ .Server1 }}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
EntryPoints = ["http"]
|
||||
Service = "service1"
|
||||
Rule = "PathPrefix:/whoami"
|
||||
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server1]
|
||||
url = "{{ .Server2 }}"
|
||||
weight = 1
|
||||
[Routers.router2]
|
||||
EntryPoints = ["traefik"]
|
||||
Service = "service2"
|
||||
Rule = "PathPrefix:/whoami"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
entrypoints=["http"]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "PathPrefix:/whoami"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "{{ .Server1 }}"
|
||||
Weight = 1
|
||||
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
entrypoints=["traefik"]
|
||||
[frontends.frontend2.routes.test_1]
|
||||
rule = "PathPrefix:/whoami"
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "{{ .Server2 }}"
|
||||
Weight = 1
|
||||
|
|
|
@ -3,37 +3,37 @@ defaultEntryPoints = ["http"]
|
|||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":8000"
|
||||
address = ":8000"
|
||||
|
||||
[accessLog]
|
||||
format = "json"
|
||||
format = "json"
|
||||
|
||||
[api]
|
||||
|
||||
[forwardingTimeouts]
|
||||
dialTimeout = "300ms"
|
||||
responseHeaderTimeout = "300ms"
|
||||
dialTimeout = "300ms"
|
||||
responseHeaderTimeout = "300ms"
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
# Non-routable IP address that should always deliver a dial timeout.
|
||||
# See: https://stackoverflow.com/questions/100841/artificially-create-a-connection-timeout-error#answer-904609
|
||||
url = "http://50.255.255.1"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server2]
|
||||
url = "http://{{.TimeoutEndpoint}}:9000"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path:/dialTimeout"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path:/dialTimeout"
|
||||
[frontends.frontend2]
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_2]
|
||||
rule = "Path:/responseHeaderTimeout"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Rule = "Path:/responseHeaderTimeout"
|
||||
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://50.255.255.1"
|
||||
Weight = 1
|
||||
|
||||
[Services.service2]
|
||||
[Services.service2.LoadBalancer]
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://{{.TimeoutEndpoint}}:9000"
|
||||
Weight = 1
|
||||
|
|
|
@ -19,53 +19,57 @@ debug = true
|
|||
samplingType = "const"
|
||||
samplingParam = 1.0
|
||||
|
||||
[retry]
|
||||
attempts = 3
|
||||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server-ratelimit]
|
||||
url = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
|
||||
weight = 1
|
||||
[backends.backend2]
|
||||
[backends.backend2.servers.server-retry]
|
||||
url = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
|
||||
weight = 1
|
||||
[backends.backend3]
|
||||
[backends.backend3.servers.server-auth]
|
||||
url = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Middlewares = ["retry", "ratelimit"]
|
||||
Rule = "Path:/ratelimit"
|
||||
[Routers.router2]
|
||||
Service = "service2"
|
||||
Middlewares = ["retry"]
|
||||
Rule = "Path:/retry"
|
||||
[Routers.router3]
|
||||
Service = "service3"
|
||||
Middlewares = ["retry", "basic-auth"]
|
||||
Rule = "Path:/auth"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
[Middlewares]
|
||||
[Middlewares.retry.retry]
|
||||
attempts = 3
|
||||
[Middlewares.basic-auth.BasicAuth]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"]
|
||||
[Middlewares.ratelimit.RateLimit]
|
||||
extractorfunc = "client.ip"
|
||||
[Middlewares.ratelimit.RateLimit.rateset.rateset1]
|
||||
period = "60s"
|
||||
average = 4
|
||||
burst = 5
|
||||
[Middlewares.ratelimit.RateLimit.rateset.rateset2]
|
||||
period = "3s"
|
||||
average = 1
|
||||
burst = 2
|
||||
|
||||
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
passHostHeader = true
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
|
||||
Weight = 1
|
||||
|
||||
[Services.service2]
|
||||
passHostHeader = true
|
||||
backend = "backend1"
|
||||
[frontends.frontend1.routes.test_ratelimit]
|
||||
rule = "Path:/ratelimit"
|
||||
[frontends.frontend1.ratelimit]
|
||||
extractorfunc = "client.ip"
|
||||
[frontends.frontend1.ratelimit.rateset.rateset1]
|
||||
period = "60s"
|
||||
average = 4
|
||||
burst = 5
|
||||
[frontends.frontend1.ratelimit.rateset.rateset2]
|
||||
period = "3s"
|
||||
average = 1
|
||||
burst = 2
|
||||
[frontends.frontend2]
|
||||
[Services.service2.LoadBalancer]
|
||||
[[Services.service2.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
|
||||
Weight = 1
|
||||
|
||||
[Services.service3]
|
||||
passHostHeader = true
|
||||
backend = "backend2"
|
||||
[frontends.frontend2.routes.test_retry]
|
||||
rule = "Path:/retry"
|
||||
[frontends.frontend3]
|
||||
passHostHeader = true
|
||||
backend = "backend3"
|
||||
[frontends.frontend3.auth.basic]
|
||||
users = [
|
||||
"test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
|
||||
"test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
|
||||
]
|
||||
[frontends.frontend3.routes.test_auth]
|
||||
rule = "Path:/auth"
|
||||
[Services.service3.LoadBalancer]
|
||||
[[Services.service3.LoadBalancer.Servers]]
|
||||
URL = "http://{{.WhoAmiIP}}:{{.WhoAmiPort}}"
|
||||
Weight = 1
|
||||
|
|
|
@ -22,4 +22,4 @@ checkNewVersion = false
|
|||
[docker]
|
||||
exposedByDefault = false
|
||||
domain = "docker.local"
|
||||
watch = true
|
||||
watch = true
|
||||
|
|
|
@ -10,15 +10,15 @@ logLevel = "DEBUG"
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "{{ .WebsocketServer }}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "PathPrefix:/ws"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
passHostHeader = true
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "PathPrefix:/ws"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
passHostHeader = true
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "{{ .WebsocketServer }}"
|
||||
Weight = 1
|
||||
|
|
|
@ -15,15 +15,15 @@ insecureSkipVerify=true
|
|||
|
||||
[file]
|
||||
|
||||
[backends]
|
||||
[backends.backend1]
|
||||
[backends.backend1.servers.server1]
|
||||
url = "{{ .WebsocketServer }}"
|
||||
weight = 1
|
||||
[Routers]
|
||||
[Routers.router1]
|
||||
Service = "service1"
|
||||
Rule = "Path:/echo,/ws"
|
||||
|
||||
[frontends]
|
||||
[frontends.frontend1]
|
||||
backend = "backend1"
|
||||
passHostHeader = true
|
||||
[frontends.frontend1.routes.test_1]
|
||||
rule = "Path:/echo,/ws"
|
||||
[Services]
|
||||
[Services.service1]
|
||||
[Services.service1.LoadBalancer]
|
||||
PassHostHeader = true
|
||||
[[Services.service1.LoadBalancer.Servers]]
|
||||
URL = "{{ .WebsocketServer }}"
|
||||
Weight = 1
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue