YAML I love you

This commit is contained in:
Michael 2019-09-23 17:00:06 +02:00 committed by Traefiker Bot
parent bfde17b4d7
commit 17480abe85
37 changed files with 636 additions and 429 deletions

View file

@ -12,7 +12,7 @@ The AddPrefix middleware updates the URL Path of the request before forwarding i
```yaml tab="Docker" ```yaml tab="Docker"
# Prefixing with /foo # Prefixing with /foo
labels: labels:
- "traefik.http.middlewares.add-foo.addprefix.prefix=/foo" - "traefik.http.middlewares.add-foo.addprefix.prefix=/foo"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -35,7 +35,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Prefixing with /foo # Prefixing with /foo
labels: labels:
- "traefik.http.middlewares.add-foo.addprefix.prefix=/foo" - "traefik.http.middlewares.add-foo.addprefix.prefix=/foo"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -16,7 +16,7 @@ The BasicAuth middleware is a quick way to restrict access to your services to k
# To create user:password pair, it's possible to use this command: # To create user:password pair, it's possible to use this command:
# echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/g # echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/g
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0" - "traefik.http.middlewares.test-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -39,7 +39,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Declaring the user list # Declaring the user list
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" - "traefik.http.middlewares.test-auth.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -89,7 +89,7 @@ The `users` option is an array of authorized users. Each user will be declared u
# To create user:password pair, it's possible to use this command: # To create user:password pair, it's possible to use this command:
# echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/g # echo $(htpasswd -nb user password) | sed -e s/\\$/\\$\\$/g
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0" - "traefik.http.middlewares.test-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -124,7 +124,7 @@ data:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Declaring the user list # Declaring the user list
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" - "traefik.http.middlewares.test-auth.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/,test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -161,7 +161,7 @@ The file content is a list of `name:encoded-password`.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.usersfile=/path/to/my/usersfile" - "traefik.http.middlewares.test-auth.basicauth.usersfile=/path/to/my/usersfile"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -224,7 +224,7 @@ You can customize the realm for the authentication with the `realm` option. The
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.realm=MyRealm" - "traefik.http.middlewares.test-auth.basicauth.realm=MyRealm"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -268,7 +268,7 @@ You can define a header field to store the authenticated user using the `headerF
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.my-auth.basicauth.headerField=X-WebAuth-User" - "traefik.http.middlewares.my-auth.basicauth.headerField=X-WebAuth-User"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -309,7 +309,7 @@ Set the `removeHeader` option to `true` to remove the authorization header befor
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.removeheader=true" - "traefik.http.middlewares.test-auth.basicauth.removeheader=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -330,7 +330,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.basicauth.removeheader=true" - "traefik.http.middlewares.test-auth.basicauth.removeheader=true"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -16,7 +16,7 @@ This can help services deal with large data (multipart/form-data for example), a
```yaml tab="Docker" ```yaml tab="Docker"
# Sets the maximum request body to 2Mb # Sets the maximum request body to 2Mb
labels: labels:
- "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -39,7 +39,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Sets the maximum request body to 2Mb # Sets the maximum request body to 2Mb
labels: labels:
- "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -68,7 +68,7 @@ If the request exceeds the allowed size, it is not forwarded to the service and
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -89,7 +89,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=2000000"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -112,7 +112,7 @@ You can configure a threshold (in Bytes) from which the request will be buffered
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.limit.buffering.memRequestBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.memRequestBodyBytes=2000000"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -133,7 +133,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.limit.buffering.memRequestBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.memRequestBodyBytes=2000000"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -158,7 +158,7 @@ If the response exceeds the allowed size, it is not forwarded to the client. The
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=2000000"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -179,7 +179,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=2000000"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -202,7 +202,7 @@ You can configure a threshold (in Bytes) from which the response will be buffere
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.limit.buffering.memResponseBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.memResponseBodyBytes=2000000"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -223,7 +223,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.limit.buffering.memResponseBodyBytes=2000000" - "traefik.http.middlewares.limit.buffering.memResponseBodyBytes=2000000"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -14,14 +14,14 @@ Example "A Chain for WhiteList, BasicAuth, and HTTPS"
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.routers.router1.service=service1" - "traefik.http.routers.router1.service=service1"
- "traefik.http.routers.router1.middlewares=secured" - "traefik.http.routers.router1.middlewares=secured"
- "traefik.http.routers.router1.rule=Host(`mydomain`)" - "traefik.http.routers.router1.rule=Host(`mydomain`)"
- "traefik.http.middlewares.secured.chain.middlewares=https-only,known-ips,auth-users" - "traefik.http.middlewares.secured.chain.middlewares=https-only,known-ips,auth-users"
- "traefik.http.middlewares.auth-users.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "traefik.http.middlewares.auth-users.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
- "traefik.http.middlewares.https-only.redirectscheme.scheme=https" - "traefik.http.middlewares.https-only.redirectscheme.scheme=https"
- "traefik.http.middlewares.known-ips.ipwhitelist.sourceRange=192.168.1.7,127.0.0.1/32" - "traefik.http.middlewares.known-ips.ipwhitelist.sourceRange=192.168.1.7,127.0.0.1/32"
- "http.services.service1.loadbalancer.server.port=80" - "http.services.service1.loadbalancer.server.port=80"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -98,14 +98,14 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.routers.router1.service=service1" - "traefik.http.routers.router1.service=service1"
- "traefik.http.routers.router1.middlewares=secured" - "traefik.http.routers.router1.middlewares=secured"
- "traefik.http.routers.router1.rule=Host(`mydomain`)" - "traefik.http.routers.router1.rule=Host(`mydomain`)"
- "traefik.http.middlewares.secured.chain.middlewares=https-only,known-ips,auth-users" - "traefik.http.middlewares.secured.chain.middlewares=https-only,known-ips,auth-users"
- "traefik.http.middlewares.auth-users.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "traefik.http.middlewares.auth-users.basicauth.users=test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
- "traefik.http.middlewares.https-only.redirectscheme.scheme=https" - "traefik.http.middlewares.https-only.redirectscheme.scheme=https"
- "traefik.http.middlewares.known-ips.ipwhitelist.sourceRange=192.168.1.7,127.0.0.1/32" - "traefik.http.middlewares.known-ips.ipwhitelist.sourceRange=192.168.1.7,127.0.0.1/32"
- "http.services.service1.loadbalancer.server.port=80" - "http.services.service1.loadbalancer.server.port=80"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -31,7 +31,7 @@ To assess if your system is healthy, the circuit breaker constantly monitors the
```yaml tab="Docker" ```yaml tab="Docker"
# Latency Check # Latency Check
labels: labels:
- "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100" - "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -54,7 +54,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Latency Check # Latency Check
labels: labels:
- "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100" - "traefik.http.middlewares.latency-check.circuitbreaker.expression=LatencyAtQuantileMS(50.0) > 100"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -12,7 +12,7 @@ The Compress middleware enables the gzip compression.
```yaml tab="Docker" ```yaml tab="Docker"
# Enable gzip compression # Enable gzip compression
labels: labels:
- "traefik.http.middlewares.test-compress.compress=true" - "traefik.http.middlewares.test-compress.compress=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -34,7 +34,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Enable gzip compression # Enable gzip compression
labels: labels:
- "traefik.http.middlewares.test-compress.compress=true" - "traefik.http.middlewares.test-compress.compress=true"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -12,7 +12,7 @@ The DigestAuth middleware is a quick way to restrict access to your services to
```yaml tab="Docker" ```yaml tab="Docker"
# Declaring the user list # Declaring the user list
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e" - "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -35,7 +35,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Declaring the user list # Declaring the user list
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e" - "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -76,7 +76,7 @@ The `users` option is an array of authorized users. Each user will be declared u
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e" - "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -108,7 +108,7 @@ data:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e" - "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -143,7 +143,7 @@ The file content is a list of `name:realm:encoded-password`.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.usersfile=/path/to/my/usersfile" - "traefik.http.middlewares.test-auth.digestauth.usersfile=/path/to/my/usersfile"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -206,7 +206,7 @@ You can customize the realm for the authentication with the `realm` option. The
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.realm=MyRealm" - "traefik.http.middlewares.test-auth.digestauth.realm=MyRealm"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -296,7 +296,7 @@ Set the `removeHeader` option to `true` to remove the authorization header befor
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.digestauth.removeheader=true" - "traefik.http.middlewares.test-auth.digestauth.removeheader=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"

View file

@ -15,9 +15,9 @@ The ErrorPage middleware returns a custom page in lieu of the default, according
```yaml tab="Docker" ```yaml tab="Docker"
# Dynamic Custom Error Page for 5XX Status Code # Dynamic Custom Error Page for 5XX Status Code
labels: labels:
- "traefik.http.middlewares.test-errorpage.errors.status=500-599" - "traefik.http.middlewares.test-errorpage.errors.status=500-599"
- "traefik.http.middlewares.test-errorpage.errors.service=serviceError" - "traefik.http.middlewares.test-errorpage.errors.service=serviceError"
- "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html" - "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -46,9 +46,9 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Dynamic Custom Error Page for 5XX Status Code # Dynamic Custom Error Page for 5XX Status Code
labels: labels:
- "traefik.http.middlewares.test-errorpage.errors.status=500-599" - "traefik.http.middlewares.test-errorpage.errors.status=500-599"
- "traefik.http.middlewares.test-errorpage.errors.service=serviceError" - "traefik.http.middlewares.test-errorpage.errors.service=serviceError"
- "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html" - "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -14,7 +14,7 @@ Otherwise, the response from the authentication server is returned.
```yaml tab="Docker" ```yaml tab="Docker"
# Forward authentication to authserver.com # Forward authentication to authserver.com
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth" - "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -37,7 +37,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Forward authentication to authserver.com # Forward authentication to authserver.com
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth" - "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -64,7 +64,7 @@ The `address` option defines the authentication server address.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth" - "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -85,7 +85,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth" - "traefik.http.middlewares.test-auth.forwardauth.address=https://authserver.com/auth"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -108,7 +108,7 @@ Set the `trustForwardHeader` option to `true` to trust all the existing `X-Forwa
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.trustForwardHeader=true" - "traefik.http.middlewares.test-auth.forwardauth.trustForwardHeader=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -130,7 +130,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.trustForwardHeader=true" - "traefik.http.middlewares.test-auth.forwardauth.trustForwardHeader=true"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -155,7 +155,7 @@ The `authResponseHeaders` option is the list of the headers to copy from the aut
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.authResponseHeaders=X-Auth-User, X-Secret" - "traefik.http.middlewares.test-auth.forwardauth.authResponseHeaders=X-Auth-User, X-Secret"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -179,7 +179,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.authResponseHeaders=X-Auth-User, X-Secret" - "traefik.http.middlewares.test-auth.forwardauth.authResponseHeaders=X-Auth-User, X-Secret"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -210,7 +210,7 @@ Certificate Authority used for the secured connection to the authentication serv
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.ca=path/to/local.crt" - "traefik.http.middlewares.test-auth.forwardauth.tls.ca=path/to/local.crt"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -243,7 +243,7 @@ data:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.ca=path/to/local.crt" - "traefik.http.middlewares.test-auth.forwardauth.tls.ca=path/to/local.crt"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -275,7 +275,7 @@ Requires `tls.ca` to be defined.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.caOptional=true" - "traefik.http.middlewares.test-auth.forwardauth.tls.caOptional=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -298,7 +298,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.caOptional=true" - "traefik.http.middlewares.test-auth.forwardauth.tls.caOptional=true"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -325,8 +325,8 @@ Public certificate used for the secured connection to the authentication server.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert" - "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert"
- "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key" - "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -361,8 +361,8 @@ data:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert" - "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert"
- "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key" - "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -394,8 +394,8 @@ Private certificate used for the secure connection to the authentication server.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert" - "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert"
- "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key" - "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -430,8 +430,8 @@ data:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert" - "traefik.http.middlewares.test-auth.forwardauth.tls.cert=path/to/foo.cert"
- "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key" - "traefik.http.middlewares.test-auth.forwardauth.tls.key=path/to/foo.key"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -463,7 +463,7 @@ If `insecureSkipVerify` is `true`, TLS for the connection to authentication serv
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.insecureSkipVerify=true" - "traefik.http.middlewares.test-auth.forwardauth.tls.insecureSkipVerify=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -485,7 +485,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-auth.forwardauth.tls.InsecureSkipVerify=true" - "traefik.http.middlewares.test-auth.forwardauth.tls.InsecureSkipVerify=true"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -15,8 +15,8 @@ Add the `X-Script-Name` header to the proxied request and the `X-Custom-Response
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.testHeader.headers.customrequestheaders.X-Script-Name=test" - "traefik.http.middlewares.testHeader.headers.customrequestheaders.X-Script-Name=test"
- "traefik.http.middlewares.testHeader.headers.customresponseheaders.X-Custom-Response-Header=value" - "traefik.http.middlewares.testHeader.headers.customresponseheaders.X-Custom-Response-Header=value"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -41,8 +41,8 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Script-Name=test" - "traefik.http.middlewares.testheader.headers.customrequestheaders.X-Script-Name=test"
- "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=value" - "traefik.http.middlewares.testheader.headers.customresponseheaders.X-Custom-Response-Header=value"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -11,7 +11,7 @@ To proactively prevent services from being overwhelmed with high load, a limit o
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10" - "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -33,7 +33,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Limiting to 10 simultaneous connections # Limiting to 10 simultaneous connections
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10" - "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -61,7 +61,7 @@ The middleware will return an `HTTP 429 Too Many Requests` if there are already
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10" - "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -83,7 +83,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Limiting to 10 simultaneous connections # Limiting to 10 simultaneous connections
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10" - "traefik.http.middlewares.test-inflightreq.inflightreq.amount=10"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -131,7 +131,7 @@ The `depth` option tells Traefik to use the `X-Forwarded-For` header and take th
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.depth=2" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.depth=2"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -148,7 +148,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.depth=2" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.depth=2"
``` ```
```json tab="Marathon" ```json tab="Marathon"
@ -192,7 +192,7 @@ http:
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -209,17 +209,17 @@ spec:
- 192.168.1.7 - 192.168.1.7
``` ```
```yaml tab="Rancher"
labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
```
```json tab="Marathon" ```json tab="Marathon"
"labels": { "labels": {
"traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips": "127.0.0.1/32, 192.168.1.7" "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips": "127.0.0.1/32, 192.168.1.7"
} }
``` ```
```yaml tab="Rancher"
labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
[http.middlewares] [http.middlewares]
[http.middlewares.test-inflightreq.inflightreq] [http.middlewares.test-inflightreq.inflightreq]
@ -245,7 +245,7 @@ Requests having the same value for the given header are grouped as coming from t
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requestheadername=username" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requestheadername=username"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -261,7 +261,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requestheadername=username" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requestheadername=username"
``` ```
```json tab="Marathon" ```json tab="Marathon"
@ -292,7 +292,7 @@ Whether to consider the request host as the source.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requesthost=true" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requesthost=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -308,7 +308,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requesthost=true" - "traefik.http.middlewares.test-inflightreq.inflightreq.sourcecriterion.requesthost=true"
``` ```
```json tab="Marathon" ```json tab="Marathon"

View file

@ -12,7 +12,7 @@ IPWhitelist accepts / refuses requests based on the client IP.
```yaml tab="Docker" ```yaml tab="Docker"
# Accepts request from defined IP # Accepts request from defined IP
labels: labels:
- "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.7" - "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.7"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -36,7 +36,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Accepts request from defined IP # Accepts request from defined IP
labels: labels:
- "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.7" - "traefik.http.middlewares.test-ipwhitelist.ipwhitelist.sourcerange=127.0.0.1/32, 192.168.1.7"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -16,7 +16,7 @@ Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header.
```yaml tab="Docker" ```yaml tab="Docker"
# Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. # Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header.
labels: labels:
- "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.pem=true" - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.pem=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -38,7 +38,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header. # Pass the escaped pem in the `X-Forwarded-Tls-Client-Cert` header.
labels: labels:
- "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.pem=true" - "traefik.http.middlewares.test-passtlsclientcert.passtlsclientcert.pem=true"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -11,8 +11,8 @@ The RateLimit middleware ensures that services will receive a _fair_ number of r
# Here, an average of 100 requests per second is allowed. # Here, an average of 100 requests per second is allowed.
# In addition, a burst of 50 requests is allowed. # In addition, a burst of 50 requests is allowed.
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.average=100" - "traefik.http.middlewares.test-ratelimit.ratelimit.average=100"
- "traefik.http.middlewares.test-ratelimit.ratelimit.burst=50" - "traefik.http.middlewares.test-ratelimit.ratelimit.burst=50"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -39,8 +39,8 @@ spec:
# Here, an average of 100 requests per second is allowed. # Here, an average of 100 requests per second is allowed.
# In addition, a burst of 50 requests is allowed. # In addition, a burst of 50 requests is allowed.
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.average=100" - "traefik.http.middlewares.test-ratelimit.ratelimit.average=100"
- "traefik.http.middlewares.test-ratelimit.ratelimit.burst=50" - "traefik.http.middlewares.test-ratelimit.ratelimit.burst=50"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -72,7 +72,7 @@ It defaults to 0, which means no rate limiting.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.average=100" - "traefik.http.middlewares.test-ratelimit.ratelimit.average=100"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -93,7 +93,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.average=100" - "traefik.http.middlewares.test-ratelimit.ratelimit.average=100"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -117,7 +117,7 @@ It defaults to 1.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.burst=100" - "traefik.http.middlewares.test-ratelimit.ratelimit.burst=100"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -138,7 +138,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.burst=100" - "traefik.http.middlewares.test-ratelimit.ratelimit.burst=100"
``` ```
@ -187,7 +187,7 @@ The `depth` option tells Traefik to use the `X-Forwarded-For` header and take th
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7" - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -206,7 +206,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7" - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.ipstrategy.excludedips=127.0.0.1/32, 192.168.1.7"
``` ```
```json tab="Marathon" ```json tab="Marathon"
@ -254,7 +254,7 @@ Requests having the same value for the given header are grouped as coming from t
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requestheadername=username" - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requestheadername=username"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -270,7 +270,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requestheadername=username" - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requestheadername=username"
``` ```
```json tab="Marathon" ```json tab="Marathon"
@ -301,7 +301,7 @@ Whether to consider the request host as the source.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requesthost=true" - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requesthost=true"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -317,7 +317,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requesthost=true" - "traefik.http.middlewares.test-ratelimit.ratelimit.sourcecriterion.requesthost=true"
``` ```
```json tab="Marathon" ```json tab="Marathon"

View file

@ -15,8 +15,8 @@ RegexRedirect redirect a request from an url to another with regex matching and
# Redirect with domain replacement # Redirect with domain replacement
# Note: all dollar signs need to be doubled for escaping. # Note: all dollar signs need to be doubled for escaping.
labels: labels:
- "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^http://localhost/(.*)" - "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^http://localhost/(.*)"
- "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=http://mydomain/$${1}" - "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=http://mydomain/$${1}"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -42,8 +42,8 @@ spec:
# Redirect with domain replacement # Redirect with domain replacement
# Note: all dollar signs need to be doubled for escaping. # Note: all dollar signs need to be doubled for escaping.
labels: labels:
- "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^http://localhost/(.*)" - "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^http://localhost/(.*)"
- "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=http://mydomain/$${1}" - "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=http://mydomain/$${1}"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"
@ -85,4 +85,3 @@ The `regex` option is the regular expression to match and capture elements from
### `replacement` ### `replacement`
The `replacement` option defines how to modify the URL to have the new target URL. The `replacement` option defines how to modify the URL to have the new target URL.

View file

@ -14,7 +14,7 @@ RegexRedirect redirect request from a scheme to another.
```yaml tab="Docker" ```yaml tab="Docker"
# Redirect to https # Redirect to https
labels: labels:
- "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https" - "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -37,7 +37,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Redirect to https # Redirect to https
labels: labels:
- "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https" - "traefik.http.middlewares.test-redirectscheme.redirectscheme.scheme=https"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -14,7 +14,7 @@ Replace the path of the request url.
```yaml tab="Docker" ```yaml tab="Docker"
# Replace the path by /foo # Replace the path by /foo
labels: labels:
- "traefik.http.middlewares.test-replacepath.replacepath.path=/foo" - "traefik.http.middlewares.test-replacepath.replacepath.path=/foo"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -37,7 +37,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Replace the path by /foo # Replace the path by /foo
labels: labels:
- "traefik.http.middlewares.test-replacepath.replacepath.path=/foo" - "traefik.http.middlewares.test-replacepath.replacepath.path=/foo"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -14,8 +14,8 @@ The ReplaceRegex replace a path from an url to another with regex matching and r
```yaml tab="Docker" ```yaml tab="Docker"
# Replace path with regex # Replace path with regex
labels: labels:
- "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/foo/(.*)" - "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/foo/(.*)"
- "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1" - "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -40,8 +40,8 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Replace path with regex # Replace path with regex
labels: labels:
- "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/foo/(.*)" - "traefik.http.middlewares.test-replacepathregex.replacepathregex.regex=^/foo/(.*)"
- "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1" - "traefik.http.middlewares.test-replacepathregex.replacepathregex.replacement=/bar/$1"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -15,7 +15,7 @@ To be clear, as soon as the server answers, the middleware stops retrying, regar
```yaml tab="Docker" ```yaml tab="Docker"
# Retry to send request 4 times # Retry to send request 4 times
labels: labels:
- "traefik.http.middlewares.test-retry.retry.attempts=4" - "traefik.http.middlewares.test-retry.retry.attempts=4"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -38,7 +38,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Retry to send request 4 times # Retry to send request 4 times
labels: labels:
- "traefik.http.middlewares.test-retry.retry.attempts=4" - "traefik.http.middlewares.test-retry.retry.attempts=4"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -14,7 +14,7 @@ Remove the specified prefixes from the URL path.
```yaml tab="Docker" ```yaml tab="Docker"
# Strip prefix /foobar and /fiibar # Strip prefix /foobar and /fiibar
labels: labels:
- "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes=/foobar,/fiibar" - "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes=/foobar,/fiibar"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -39,7 +39,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
# Strip prefix /foobar and /fiibar # Strip prefix /foobar and /fiibar
labels: labels:
- "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes=/foobar,/fiibar" - "traefik.http.middlewares.test-stripprefix.stripprefix.prefixes=/foobar,/fiibar"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -9,7 +9,7 @@ Remove the matching prefixes from the URL path.
```yaml tab="Docker" ```yaml tab="Docker"
labels: labels:
- "traefik.http.middlewares.test-stripprefixregex.stripprefixregex.regex=/foo/[a-z0-9]+/[0-9]+/" - "traefik.http.middlewares.test-stripprefixregex.stripprefixregex.regex=/foo/[a-z0-9]+/[0-9]+/"
``` ```
```yaml tab="Kubernetes" ```yaml tab="Kubernetes"
@ -31,7 +31,7 @@ spec:
```yaml tab="Rancher" ```yaml tab="Rancher"
labels: labels:
- "traefik.http.middlewares.test-stripprefixregex.stripprefixregex.regex=/foo/[a-z0-9]+/[0-9]+/" - "traefik.http.middlewares.test-stripprefixregex.stripprefixregex.regex=/foo/[a-z0-9]+/[0-9]+/"
``` ```
```toml tab="File (TOML)" ```toml tab="File (TOML)"

View file

@ -40,6 +40,7 @@ api: {}
And then you will be able to reference it like this: And then you will be able to reference it like this:
```yaml tab="Docker" ```yaml tab="Docker"
labels:
- "traefik.http.routers.api.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)" - "traefik.http.routers.api.rule=PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
- "traefik.http.routers.api.service=api@internal" - "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.middlewares=auth" - "traefik.http.routers.api.middlewares=auth"

View file

@ -446,7 +446,8 @@ You can declare TCP Routers and/or Services using labels.
``` ```
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`" ??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
<!-- TODO doc terminationdelay in TCP services page -->
See [termination delay](../services/index.md#termination-delay) for more information.
```yaml ```yaml
- "traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay=100" - "traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay=100"

View file

@ -276,8 +276,101 @@ You can declare TCP Routers and/or Services using labels.
!!! warning "TCP and HTTP" !!! warning "TCP and HTTP"
If you declare a TCP Router/Service, it will prevent Traefik from automatically creating an HTTP Router/Service (as it would by default if no TCP Router/Service is defined). If you declare a TCP Router/Service, it will prevent Traefik from automatically creating an HTTP Router/Service (like it does by default if no TCP Router/Service is defined).
Both a TCP Router/Service and an HTTP Router/Service can be created for the same application, but it has to be done explicitly in the config. You can declare both a TCP Router/Service and an HTTP Router/Service for the same container (but you have to do so manually).
#### TCP Routers
??? info "`traefik.tcp.routers.<router_name>.entrypoints`"
See [entry points](../routers/index.md#entrypoints_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.entrypoints": "ep1,ep2"
```
??? info "`traefik.tcp.routers.<router_name>.rule`"
See [rule](../routers/index.md#rule_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.rule": "HostSNI(`myhost.com`)"
```
??? info "`traefik.tcp.routers.<router_name>.service`"
See [service](../routers/index.md#services) for more information.
```json
"traefik.tcp.routers.mytcprouter.service": "myservice"
```
??? info "`traefik.tcp.routers.<router_name>.tls`"
See [TLS](../routers/index.md#tls_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.tls": "true
```
??? info "`traefik.tcp.routers.<router_name>.tls.certresolver`"
See [certResolver](../routers/index.md#certresolver_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.tls.certresolver": "myresolver"
```
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].main`"
See [domains](../routers/index.md#domains_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.tls.domains[0].main": "foobar.com"
```
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].sans`"
See [domains](../routers/index.md#domains_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.tls.domains[0].sans": "test.foobar.com,dev.foobar.com"
```
??? info "`traefik.tcp.routers.<router_name>.tls.options`"
See [options](../routers/index.md#options_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.tls.options": "mysoptions"
```
??? info "`traefik.tcp.routers.<router_name>.tls.passthrough`"
See [TLS](../routers/index.md#tls_1) for more information.
```json
"traefik.tcp.routers.mytcprouter.tls.passthrough": "true"
```
#### TCP Services
??? info "`traefik.tcp.services.<service_name>.loadbalancer.server.port`"
Registers a port of the application.
```json
"traefik.tcp.services.mytcpservice.loadbalancer.server.port": "423"
```
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
See [termination delay](../services/index.md#termination-delay) for more information.
```json
"traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay": "100"
```
### Specific Provider Options ### Specific Provider Options

View file

@ -262,6 +262,119 @@ More information about available middlewares in the dedicated [middlewares secti
If you declare multiple middleware with the same name but with different parameters, the middleware fails to be declared. If you declare multiple middleware with the same name but with different parameters, the middleware fails to be declared.
### TCP
You can declare TCP Routers and/or Services using labels.
??? example "Declaring TCP Routers and Services"
```yaml
services:
my-container:
# ...
labels:
- "traefik.tcp.routers.my-router.rule=HostSNI(`my-host.com`)"
- "traefik.tcp.routers.my-router.tls=true"
- "traefik.tcp.services.my-service.loadbalancer.server.port=4123"
```
!!! warning "TCP and HTTP"
If you declare a TCP Router/Service, it will prevent Traefik from automatically creating an HTTP Router/Service (like it does by default if no TCP Router/Service is defined).
You can declare both a TCP Router/Service and an HTTP Router/Service for the same container (but you have to do so manually).
#### TCP Routers
??? info "`traefik.tcp.routers.<router_name>.entrypoints`"
See [entry points](../routers/index.md#entrypoints_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.entrypoints=ep1,ep2"
```
??? info "`traefik.tcp.routers.<router_name>.rule`"
See [rule](../routers/index.md#rule_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.rule=HostSNI(`myhost.com`)"
```
??? info "`traefik.tcp.routers.<router_name>.service`"
See [service](../routers/index.md#services) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.service=myservice"
```
??? info "`traefik.tcp.routers.<router_name>.tls`"
See [TLS](../routers/index.md#tls_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.tls=true"
```
??? info "`traefik.tcp.routers.<router_name>.tls.certresolver`"
See [certResolver](../routers/index.md#certresolver_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.tls.certresolver=myresolver"
```
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].main`"
See [domains](../routers/index.md#domains_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.tls.domains[0].main=foobar.com"
```
??? info "`traefik.tcp.routers.<router_name>.tls.domains[n].sans`"
See [domains](../routers/index.md#domains_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.tls.domains[0].sans=test.foobar.com,dev.foobar.com"
```
??? info "`traefik.tcp.routers.<router_name>.tls.options`"
See [options](../routers/index.md#options_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.tls.options=mysoptions"
```
??? info "`traefik.tcp.routers.<router_name>.tls.passthrough`"
See [TLS](../routers/index.md#tls_1) for more information.
```yaml
- "traefik.tcp.routers.mytcprouter.tls.passthrough=true"
```
#### TCP Services
??? info "`traefik.tcp.services.<service_name>.loadbalancer.server.port`"
Registers a port of the application.
```yaml
- "traefik.tcp.services.mytcpservice.loadbalancer.server.port=423"
```
??? info "`traefik.tcp.services.<service_name>.loadbalancer.terminationdelay`"
See [termination delay](../services/index.md#termination-delay) for more information.
```yaml
- "traefik.tcp.services.mytcpservice.loadbalancer.terminationdelay=100"
```
### Specific Provider Options ### Specific Provider Options
#### `traefik.enable` #### `traefik.enable`

View file

@ -87,9 +87,9 @@ nav:
- 'Services': 'routing/services/index.md' - 'Services': 'routing/services/index.md'
- 'Providers': - 'Providers':
- 'Docker': 'routing/providers/docker.md' - 'Docker': 'routing/providers/docker.md'
- 'Kubernetes IngressRoute': 'routing/providers/kubernetes-crd.md'
- 'Rancher': 'routing/providers/rancher.md' - 'Rancher': 'routing/providers/rancher.md'
- 'Marathon': 'routing/providers/marathon.md' - 'Marathon': 'routing/providers/marathon.md'
- 'Kubernetes IngressRoute': 'routing/providers/kubernetes-crd.md'
- 'HTTPS & TLS': - 'HTTPS & TLS':
- 'Overview': 'https/overview.md' - 'Overview': 'https/overview.md'
- 'TLS': 'https/tls.md' - 'TLS': 'https/tls.md'