diff --git a/docs/content/middlewares/addprefix.md b/docs/content/middlewares/addprefix.md index ac9ba6538..66ab2160c 100644 --- a/docs/content/middlewares/addprefix.md +++ b/docs/content/middlewares/addprefix.md @@ -9,34 +9,28 @@ The AddPrefix middleware updates the URL Path of the request before forwarding i ## Configuration Examples -??? example "File -- Prefixing with /foo" +```yaml tab="Docker" +# Prefixing with /foo +labels: +- "traefik.http.middlewares.add-bar.addprefix.prefix=/foo" +``` - ```toml - [http.middlewares] - [http.middlewares.add-foo.AddPrefix] - prefix = "/foo" - ``` +```yaml tab="Kubernetes" +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: addprefix +spec: + addprefix: + prefix: /bar +``` -??? example "Docker -- Prefixing with /bar" - - ```yaml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.add-bar.addprefix.prefix=/bar" - ``` - -??? example "Kubernetes -- Prefixing with /bar" - - ```yaml - apiVersion: traefik.containo.us/v1alpha1 - kind: Middleware - metadata: - name: addprefix - spec: - addprefix: - prefix: /bar - ``` +```toml tab="File" +# Prefixing with /foo +[http.middlewares] + [http.middlewares.add-foo.AddPrefix] + prefix = "/foo" +``` ## Configuration Options diff --git a/docs/content/middlewares/basicauth.md b/docs/content/middlewares/basicauth.md index 7060bf11b..f07e56d09 100644 --- a/docs/content/middlewares/basicauth.md +++ b/docs/content/middlewares/basicauth.md @@ -9,23 +9,19 @@ The BasicAuth middleware is a quick way to restrict access to your services to k ## Configuration Examples -??? example "File -- Declaring the user list" +```yaml tab="Docker" +# Declaring the user list +labels: + - "traefik.http.middlewares.declared-users-only.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0", +``` - ```toml - [http.middlewares] - [http.middlewares.test-auth.basicauth] - users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"] - ``` - -??? example "Docker -- Using an external file for the authorized users" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.declared-users-only.basicauth.usersFile=path-to-file.ext", - ``` +```toml tab="File" +# Declaring the user list +[http.middlewares] + [http.middlewares.test-auth.basicauth] + users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/", + "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"] +``` ## Configuration Options diff --git a/docs/content/middlewares/buffering.md b/docs/content/middlewares/buffering.md index 917edab4b..f1b9d2746 100644 --- a/docs/content/middlewares/buffering.md +++ b/docs/content/middlewares/buffering.md @@ -13,22 +13,18 @@ This can help services deal with large data (multipart/form-data for example), a ## Configuration Examples -??? example "File -- Sets the maximum request body to 2Mb" - - ```toml - [http.middlewares] - [http.middlewares.2Mb-limit.buffering] - maxRequestBodyBytes = 250000 - ``` +```yaml tab="Docker" +# Sets the maximum request body to 2Mb +labels: +- "traefik.http.middlewares.2Mb-memory.buffering.maxRequestBodyBytes=250000", +``` -??? example "Docker -- Buffers 1Mb of the request in memory, then writes to disk" - - ```yaml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.1Mb-memory.buffering.memRequestBodyBytes=125000", - ``` +```toml tab="File" +# Sets the maximum request body to 2Mb +[http.middlewares] + [http.middlewares.2Mb-limit.buffering] + maxRequestBodyBytes = 250000 +``` ## Configuration Options diff --git a/docs/content/middlewares/circuitbreaker.md b/docs/content/middlewares/circuitbreaker.md index c1e4e3f21..9c6913cd3 100644 --- a/docs/content/middlewares/circuitbreaker.md +++ b/docs/content/middlewares/circuitbreaker.md @@ -23,23 +23,18 @@ To assess if your system is healthy, the circuit breaker constantly monitors the ## Configuration Examples -??? example "Latency Check -- Using Toml" +```yaml tab="Docker" +# Latency Check +labels: +- "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100" +``` - ```toml - [http.middlewares] - [http.middlewares.latency-check.circuitbreaker] - expression = "LatencyAtQuantileMS(50.0) > 100" - ``` - -??? example "Latency Check -- Using Docker Labels" - - ```yaml - # in a docker compose file - container-definition: - image: image-name - labels: - - "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100" - ``` +```toml tab="File" +# Latency Check +[http.middlewares] + [http.middlewares.latency-check.circuitbreaker] + expression = "LatencyAtQuantileMS(50.0) > 100" +``` ## Possible States diff --git a/docs/content/middlewares/compress.md b/docs/content/middlewares/compress.md index cc19cd2ee..c0b15691d 100644 --- a/docs/content/middlewares/compress.md +++ b/docs/content/middlewares/compress.md @@ -9,21 +9,17 @@ The Compress middleware enables the gzip compression. ## Configuration Examples -??? example "File -- enable gzip compression" +```yaml tab="Docker" +# Enable gzip compression +labels: +- "traefik.http.middlewares.test-compress.compress=true", +``` - ```toml - [http.middlewares] - [http.middlewares.test-compress.Compress] - ``` - -??? example "Docker -- enable gzip compression" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.test-compress.compress=true", - ``` +```toml tab="File" +# Enable gzip compression +[http.middlewares] + [http.middlewares.test-compress.Compress] +``` ## Notes diff --git a/docs/content/middlewares/digestauth.md b/docs/content/middlewares/digestauth.md index e57f49cb9..72b87f544 100644 --- a/docs/content/middlewares/digestauth.md +++ b/docs/content/middlewares/digestauth.md @@ -9,23 +9,17 @@ The DigestAuth middleware is a quick way to restrict access to your services to ## Configuration Examples -??? example "File -- Declaring the user list" +```yaml tab="Docker" +labels: +- "traefik.http.middlewares.declared-users-only.digestauth.usersFile=path-to-file.ext", +``` - ```toml - [http.middlewares] - [http.middlewares.test-auth.digestauth] - users = ["test:traefik:a2688e031edb4be6a3797f3882655c05", - "test2:traefik:518845800f9e2bfb1f1f740ec24f074e"] - ``` - -??? example "Docker -- Using an external file for the authorized users" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.declared-users-only.digestauth.usersFile=path-to-file.ext", - ``` +```toml tab="File" +[http.middlewares] + [http.middlewares.test-auth.digestauth] + users = ["test:traefik:a2688e031edb4be6a3797f3882655c05", + "test2:traefik:518845800f9e2bfb1f1f740ec24f074e"] +``` !!! tip diff --git a/docs/content/middlewares/errorpages.md b/docs/content/middlewares/errorpages.md index d5f99393c..f890c1605 100644 --- a/docs/content/middlewares/errorpages.md +++ b/docs/content/middlewares/errorpages.md @@ -12,38 +12,33 @@ The ErrorPage middleware returns a custom page in lieu of the default, according ## Configuration Examples -??? example "File -- Custom Error Page for 5XX" +```yaml tab="Docker" +# Dynamic Custom Error Page for 5XX Status Code +labels: +- "traefik.http.middlewares.test-errorpage.errors.status=500-599", +- "traefik.http.middlewares.test-errorpage.errors.service=serviceError", +- "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html", +``` - ```toml - [http.routers] - [http.routers.router1] - Service = "my-service" - Rule = Host(`my-domain`) +```toml tab="File" +# Custom Error Page for 5XX +[http.routers] + [http.routers.router1] + Service = "my-service" + Rule = Host(`my-domain`) - [http.middlewares] - [http.middlewares.5XX-errors.Errors] - status = ["500-599"] - service = "error-handler-service" - query = "/error.html" - - [http.services] - # ... definition of error-handler-service and my-service - ``` +[http.middlewares] + [http.middlewares.5XX-errors.Errors] + status = ["500-599"] + service = "error-handler-service" + query = "/error.html" + +[http.services] + # ... definition of error-handler-service and my-service +``` -??? example "Docker -- Dynamic Custom Error Page for 5XX Status Code" - - ```yaml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.test-errorpage.errors.status=500-599", - - "traefik.http.middlewares.test-errorpage.errors.service=serviceError", - - "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html", - - ``` - - !!! note - In this example, the error page URL is based on the status code (`query=/{status}.html)`. +!!! note + In this example, the error page URL is based on the status code (`query=/{status}.html)`. ## Configuration Options diff --git a/docs/content/middlewares/forwardauth.md b/docs/content/middlewares/forwardauth.md index ffac859c8..53e0dc33a 100644 --- a/docs/content/middlewares/forwardauth.md +++ b/docs/content/middlewares/forwardauth.md @@ -11,38 +11,33 @@ Otherwise, the response from the authentication server is returned. ## Configuration Examples -??? example "File -- Forward authentication to authserver.com" +```toml tab="File" +# Forward authentication to authserver.com +[http.middlewares] + [http.middlewares.test-auth.forwardauth] + address = "https://authserver.com/auth" + trustForwardHeader = true + authResponseHeaders = ["X-Auth-User", "X-Secret"] - ```toml - [http.middlewares] - [http.middlewares.test-auth.forwardauth] - address = "https://authserver.com/auth" - trustForwardHeader = true - authResponseHeaders = ["X-Auth-User", "X-Secret"] + [http.middlewares.test-auth.forwardauth.tls] + ca = "path/to/local.crt" + caOptional = true + cert = "path/to/foo.cert" + key = "path/to/foo.key" +``` - [http.middlewares.test-auth.forwardauth.tls] - ca = "path/to/local.crt" - caOptional = true - cert = "path/to/foo.cert" - key = "path/to/foo.key" - ``` - -??? example "Docker -- Forward authentication to authserver.com" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.test-auth.ForwardAuth.Address=https://authserver.com/auth" - - "traefik.http.middlewares.test-auth.ForwardAuth.AuthResponseHeaders=X-Auth-User, X-Secret" - - "traefik.http.middlewares.test-auth.ForwardAuth.TLS.CA=path/to/local.crt" - - "traefik.http.middlewares.test-auth.ForwardAuth.TLS.CAOptional=true" - - "traefik.http.middlewares.test-auth.ForwardAuth.TLS.Cert=path/to/foo.cert" - - "traefik.http.middlewares.test-auth.ForwardAuth.TLS.InsecureSkipVerify=true" - - "traefik.http.middlewares.test-auth.ForwardAuth.TLS.Key=path/to/foo.key" - - "traefik.http.middlewares.test-auth.ForwardAuth.TrustForwardHeader=true" - - ``` +```yaml tab="Docker" +# Forward authentication to authserver.com +labels: +- "traefik.http.middlewares.test-auth.ForwardAuth.Address=https://authserver.com/auth" +- "traefik.http.middlewares.test-auth.ForwardAuth.AuthResponseHeaders=X-Auth-User, X-Secret" +- "traefik.http.middlewares.test-auth.ForwardAuth.TLS.CA=path/to/local.crt" +- "traefik.http.middlewares.test-auth.ForwardAuth.TLS.CAOptional=true" +- "traefik.http.middlewares.test-auth.ForwardAuth.TLS.Cert=path/to/foo.cert" +- "traefik.http.middlewares.test-auth.ForwardAuth.TLS.InsecureSkipVerify=true" +- "traefik.http.middlewares.test-auth.ForwardAuth.TLS.Key=path/to/foo.key" +- "traefik.http.middlewares.test-auth.ForwardAuth.TrustForwardHeader=true" +``` ## Configuration Options diff --git a/docs/content/middlewares/headers.md b/docs/content/middlewares/headers.md index 0f6924dc8..3fdc4930a 100644 --- a/docs/content/middlewares/headers.md +++ b/docs/content/middlewares/headers.md @@ -13,26 +13,22 @@ The Headers middleware can manage the requests/responses headers. Add the `X-Script-Name` header to the proxied request and the `X-Custom-Response-Header` to the response -??? example "File" +```yaml tab="Docker" +a-container: +image: a-container-image +labels: +- "traefik.http.middlewares.testHeader.Headers.CustomRequestHeaders.X-Script-Name=test", +- "traefik.http.middlewares.testHeader.Headers.CustomResponseHeaders.X-Custom-Response-Header=True", +``` - ```toml - [http.middlewares] - [http.middlewares.testHeader.headers] - [http.middlewares.testHeader.headers.CustomRequestHeaders] - X-Script-Name = "test" - [http.middlewares.testHeader.headers.CustomResponseHeaders] - X-Custom-Response-Header = "True" - ``` - -??? example "Docker" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.testHeader.Headers.CustomRequestHeaders.X-Script-Name=test", - - "traefik.http.middlewares.testHeader.Headers.CustomResponseHeaders.X-Custom-Response-Header=True", - ``` +```toml tab="File" +[http.middlewares] + [http.middlewares.testHeader.headers] + [http.middlewares.testHeader.headers.CustomRequestHeaders] + X-Script-Name = "test" + [http.middlewares.testHeader.headers.CustomResponseHeaders] + X-Custom-Response-Header = "True" +``` ### Adding and Removing Headers diff --git a/docs/content/middlewares/ipwhitelist.md b/docs/content/middlewares/ipwhitelist.md index 3e979b8e1..0be532b4c 100644 --- a/docs/content/middlewares/ipwhitelist.md +++ b/docs/content/middlewares/ipwhitelist.md @@ -9,22 +9,18 @@ IPWhitelist accepts / refuses requests based on the client IP. ## Configuration Examples -??? example "File -- Accepts request from defined IP" +```yaml tab="Docker" +# Accepts request from defined IP +labels: +- "traefik.http.middlewares.Middleware9.IPWhiteList.SourceRange=127.0.0.1/32, 192.168.1.7" +``` - ```toml - [http.middlewares] - [http.middlewares.test-ipwhitelist.ipWhiteList] - sourceRange = ["127.0.0.1/32", "192.168.1.7"] - ``` - -??? example "Docker -- Accepts request from defined IP" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.Middleware9.IPWhiteList.SourceRange=127.0.0.1/32, 192.168.1.7" - ``` +```toml tab="File" +# Accepts request from defined IP +[http.middlewares] + [http.middlewares.test-ipwhitelist.ipWhiteList] + sourceRange = ["127.0.0.1/32", "192.168.1.7"] +``` ## Configuration Options diff --git a/docs/content/middlewares/maxconnection.md b/docs/content/middlewares/maxconnection.md index 9b5e9e70e..2863ea5dd 100644 --- a/docs/content/middlewares/maxconnection.md +++ b/docs/content/middlewares/maxconnection.md @@ -9,22 +9,18 @@ To proactively prevent services from being overwhelmed with high load, a maximum ## Configuration Examples -??? example "File -- Limiting to 10 simultaneous connections" +```yaml tab="Docker" +# Limiting to 10 simultaneous connections +labels: +- "traefik.http.middlewares.test-maxconn.maxconn.amount=10" +``` - ```toml - [http.middlewares] - [http.middlewares.test-maxconn.maxconn] - amount = 10 - ``` - -??? example "Docker -- Limiting to 10 simultaneous connections" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.test-maxconn.maxconn.amount=10" - ``` +```toml tab="File" +# Limiting to 10 simultaneous connections +[http.middlewares] + [http.middlewares.test-maxconn.maxconn] + amount = 10 +``` ## Configuration Options diff --git a/docs/content/middlewares/overview.md b/docs/content/middlewares/overview.md index 90cd6febe..1d1dec3f6 100644 --- a/docs/content/middlewares/overview.md +++ b/docs/content/middlewares/overview.md @@ -13,79 +13,75 @@ Pieces of middleware can be combined in chains to fit every scenario. ## Configuration Example -??? example "As Toml Configuration File" +```yaml tab="Docker" +# As a Docker Label +whoami: + image: containous/whoami # A container that exposes an API to show its IP address + labels: + - "traefik.http.middlewares.foo-add-prefix.addprefix.prefix=/foo", +``` - ```toml - [providers] - [providers.file] - - [http.routers] - [http.routers.router1] - Service = "myService" - Middlewares = ["foo-add-prefix"] - Rule = "Host(`example.com`)" - - [http.middlewares] - [http.middlewares.foo-add-prefix.AddPrefix] - prefix = "/foo" - - [http.services] - [http.services.service1] - [http.services.service1.LoadBalancer] - - [[http.services.service1.LoadBalancer.Servers]] - URL = "http://127.0.0.1:80" - Weight = 1 - ``` - -??? example "As a Docker Label" - - ```yaml - # A container that exposes a simple API - whoami: - image: containous/whoami # A container that exposes an API to show its IP address - labels: - - "traefik.http.middlewares.foo-add-prefix.addprefix.prefix=/foo", - ``` - -??? example "As a Kubernetes Traefik IngressRoute" - - ```yaml - apiVersion: apiextensions.k8s.io/v1beta1 - kind: CustomResourceDefinition - metadata: - name: middlewares.traefik.containo.us - spec: - group: traefik.containo.us - version: v1alpha1 - names: - kind: Middleware - plural: middlewares - singular: middleware - scope: Namespaced - - --- - apiVersion: traefik.containo.us/v1alpha1 +```yaml tab="Kubernetes" +# As a Kubernetes Traefik IngressRoute +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: middlewares.traefik.containo.us +spec: + group: traefik.containo.us + version: v1alpha1 + names: kind: Middleware - metadata: - name: stripprefix - spec: - stripprefix: - prefixes: - - /stripit + plural: middlewares + singular: middleware + scope: Namespaced - --- - apiVersion: traefik.containo.us/v1alpha1 - kind: IngressRoute - metadata: - name: ingressroute.crd - spec: +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: stripprefix +spec: + stripprefix: + prefixes: + - /stripit + +--- +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: ingressroute.crd +spec: +# more fields... + routes: # more fields... - routes: - # more fields... - middleware: - - name: stripprefix - ``` + middleware: + - name: stripprefix +``` + +```toml tab="File" +# As Toml Configuration File +[providers] + [providers.file] + +[http.routers] + [http.routers.router1] + Service = "myService" + Middlewares = ["foo-add-prefix"] + Rule = "Host(`example.com`)" + +[http.middlewares] + [http.middlewares.foo-add-prefix.AddPrefix] + prefix = "/foo" + +[http.services] + [http.services.service1] + [http.services.service1.LoadBalancer] + + [[http.services.service1.LoadBalancer.Servers]] + URL = "http://127.0.0.1:80" + Weight = 1 +``` ## Advanced Configuration diff --git a/docs/content/middlewares/passtlsclientcert.md b/docs/content/middlewares/passtlsclientcert.md index 6d7640157..f1a9c5774 100644 --- a/docs/content/middlewares/passtlsclientcert.md +++ b/docs/content/middlewares/passtlsclientcert.md @@ -9,26 +9,47 @@ PassTLSClientCert adds in header the selected data from the passed client tls ce ## Configuration Examples -??? example "File -- Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header" +Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. + +```yaml tab="Docker" +# Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. +labels: +- "traefik.http.middlewares.Middleware11.passtlsclientcert.pem=true" +``` + +```toml tab="File" +# Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. +[http.middlewares] + [http.middlewares.test-passtlsclientcert.passtlsclientcert] + pem = true +``` + +??? example "Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header" + + ```yaml tab="Docker" + # Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header + labels: + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.notafter=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.notbefore=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.sans=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.commonname=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.country=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.domaincomponent=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.locality=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.organization=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.province=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.serialnumber=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.commonname=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.country=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.domaincomponent=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.locality=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.organization=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.province=true" + - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.serialnumber=true" + ``` - ```toml - [http.middlewares] - [http.middlewares.test-passtlsclientcert.passtlsclientcert] - pem = true - ``` - -??? example "Docker -- Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.Middleware11.passtlsclientcert.pem=true" - ``` - -??? example "File -- Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header" - - ```toml + ```toml tab="File" + # Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header [http.middlewares] [http.middlewares.test-passtlsclientcert.passtlsclientcert] [http.middlewares.test-passtlsclientcert.passtlsclientcert.info] @@ -53,31 +74,6 @@ PassTLSClientCert adds in header the selected data from the passed client tls ce domainComponent = true ``` -??? example "Docker -- Pass all the available info in the `X-Forwarded-Tls-Client-Cert-Info` header" - - ```yml - a-container: - image: a-container-image - labels: - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.notafter=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.notbefore=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.sans=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.commonname=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.country=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.domaincomponent=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.locality=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.organization=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.province=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.subject.serialnumber=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.commonname=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.country=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.domaincomponent=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.locality=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.organization=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.province=true" - - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.info.issuer.serialnumber=true" - ``` - ## Configuration Options ### General diff --git a/docs/content/middlewares/ratelimit.md b/docs/content/middlewares/ratelimit.md index 2ed64c38b..065723e28 100644 --- a/docs/content/middlewares/ratelimit.md +++ b/docs/content/middlewares/ratelimit.md @@ -10,34 +10,34 @@ The RateLimit middleware ensures that services will receive a _fair_ number of r ## Configuration Example ??? example "Limit to 100 requests every 10 seconds (with a possible burst of 200)" - + ```toml [http.middlewares] - [http.middlewares.fair-ratelimit.ratelimit] - extractorfunc = "client.ip" - - [http.middlewares.fair-ratelimit.ratelimit.rateset1] - period = "10s" - average = 100 - burst = 200 + [http.middlewares.fair-ratelimit.ratelimit] + extractorfunc = "client.ip" + + [http.middlewares.fair-ratelimit.ratelimit.rateset1] + period = "10s" + average = 100 + burst = 200 ``` ??? example "Combine multiple limits" - + ```toml [http.middlewares] - [http.middlewares.fair-ratelimit.ratelimit] - extractorfunc = "client.ip" + [http.middlewares.fair-ratelimit.ratelimit] + extractorfunc = "client.ip" - [http.middlewares.fair-ratelimit.ratelimit.rateset1] - period = "10s" - average = 100 - burst = 200 - - [http.middlewares.fair-ratelimit.ratelimit.rateset2] - period = "3s" - average = 5 - burst = 10 + [http.middlewares.fair-ratelimit.ratelimit.rateset1] + period = "10s" + average = 100 + burst = 200 + + [http.middlewares.fair-ratelimit.ratelimit.rateset2] + period = "3s" + average = 5 + burst = 10 ``` Here, an average of 5 requests every 3 seconds is allowed and an average of 100 requests every 10 seconds. These can "burst" up to 10 and 200 in each period, respectively. diff --git a/docs/requirements.txt b/docs/requirements.txt index 4fbf20cb8..e6552aa6a 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.0.4 pymdown-extensions==6.0 mkdocs-bootswatch==1.0 -mkdocs-material==3.3.0 +mkdocs-material==4.0.2 markdown-include==0.5.1